Update
svn: r7198
This commit is contained in:
parent
da339a9004
commit
ac405dee06
@ -63,6 +63,7 @@ class MediaMan(Tool.Tool):
|
|||||||
|
|
||||||
self.build_batch_ops()
|
self.build_batch_ops()
|
||||||
self.batch_settings = None
|
self.batch_settings = None
|
||||||
|
self.settings_page = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.w = Assistant.Assistant(uistate,self.__class__,self.complete,
|
self.w = Assistant.Assistant(uistate,self.__class__,self.complete,
|
||||||
@ -74,9 +75,7 @@ class MediaMan(Tool.Tool):
|
|||||||
self.get_info_text())
|
self.get_info_text())
|
||||||
self.selection_page = self.w.add_page(_('Selecting operation'),
|
self.selection_page = self.w.add_page(_('Selecting operation'),
|
||||||
self.build_selection_page())
|
self.build_selection_page())
|
||||||
#self.settings_page = self.w.add_page(_('Selecting settings'),
|
self.confirm_page = self.w.add_text_page('','')
|
||||||
# self.build_settings_page())
|
|
||||||
self.confirm_page = self.w.add_text_page('Confirm page','confirm text')
|
|
||||||
self.conclusion_page = self.w.add_text_page('','')
|
self.conclusion_page = self.w.add_text_page('','')
|
||||||
|
|
||||||
self.w.connect('before-page-next',self.on_before_page_next)
|
self.w.connect('before-page-next',self.on_before_page_next)
|
||||||
@ -89,9 +88,9 @@ class MediaMan(Tool.Tool):
|
|||||||
def on_before_page_next(self,obj,page,data=None):
|
def on_before_page_next(self,obj,page,data=None):
|
||||||
if page == self.selection_page:
|
if page == self.selection_page:
|
||||||
self.build_settings_page()
|
self.build_settings_page()
|
||||||
## self.suggest_filename()
|
self.build_confirmation()
|
||||||
## elif page == self.selection_page:
|
elif page == self.settings_page:
|
||||||
## self.build_confirmation()
|
self.build_confirmation()
|
||||||
elif page == self.confirm_page:
|
elif page == self.confirm_page:
|
||||||
success = self.run()
|
success = self.run()
|
||||||
self.build_conclusion(success)
|
self.build_conclusion(success)
|
||||||
@ -152,7 +151,7 @@ class MediaMan(Tool.Tool):
|
|||||||
def build_batch_ops(self):
|
def build_batch_ops(self):
|
||||||
self.batch_ops = []
|
self.batch_ops = []
|
||||||
batches_to_use = [
|
batches_to_use = [
|
||||||
PathChange
|
PathChange,
|
||||||
]
|
]
|
||||||
|
|
||||||
for batch_class in batches_to_use:
|
for batch_class in batches_to_use:
|
||||||
@ -199,6 +198,20 @@ class MediaMan(Tool.Tool):
|
|||||||
self.w.remove_page(self.settings_page)
|
self.w.remove_page(self.settings_page)
|
||||||
self.batch_settings = None
|
self.batch_settings = None
|
||||||
|
|
||||||
|
def build_confirmation(self):
|
||||||
|
"""
|
||||||
|
Build the text of the confirmation label. This should query
|
||||||
|
the selected options (format, filename) and present the summary
|
||||||
|
of the proposed action.
|
||||||
|
"""
|
||||||
|
ix = self.get_selected_op_index()
|
||||||
|
confirm_text_builder = self.batch_ops[ix][4]
|
||||||
|
confirm_text = confirm_text_builder()
|
||||||
|
self.w.remove_page(self.confirm_page)
|
||||||
|
self.confirm_page = self.w.insert_text_page(_('Final confirmation'),
|
||||||
|
confirm_text,
|
||||||
|
self.confirm_page)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
Run selected batch op with selected settings.
|
Run selected batch op with selected settings.
|
||||||
@ -237,7 +250,6 @@ class MediaMan(Tool.Tool):
|
|||||||
conclusion_text,
|
conclusion_text,
|
||||||
self.conclusion_page)
|
self.conclusion_page)
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# These are the actuall sub-tools (batch-ops) for use from Assistant
|
# These are the actuall sub-tools (batch-ops) for use from Assistant
|
||||||
@ -250,10 +262,6 @@ class BatchOp:
|
|||||||
title = 'Untitled operation'
|
title = 'Untitled operation'
|
||||||
description = 'This operation needs to be described'
|
description = 'This operation needs to be described'
|
||||||
|
|
||||||
## def __init__(self,db,callback):
|
|
||||||
## self.db = db
|
|
||||||
## self.callback = callback
|
|
||||||
|
|
||||||
def build_config(self):
|
def build_config(self):
|
||||||
"""
|
"""
|
||||||
This method should return either None (if the batch op requires
|
This method should return either None (if the batch op requires
|
||||||
@ -261,12 +269,38 @@ class BatchOp:
|
|||||||
"""
|
"""
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def build_confirm_text(self):
|
||||||
|
"""
|
||||||
|
This method should return either None (if the batch op requires
|
||||||
|
no confirmation) or a string with the confirmation text.
|
||||||
|
"""
|
||||||
|
return "This confirmation text needs to be written"
|
||||||
|
|
||||||
def run_tool(self,db,callback):
|
def run_tool(self,db,callback):
|
||||||
|
self._prepare(db,callback)
|
||||||
|
success = self._run(db)
|
||||||
|
self._cleanup(db)
|
||||||
|
return success
|
||||||
|
|
||||||
|
def _prepare(self,db,callback):
|
||||||
|
uc = UpdateCallback(callback)
|
||||||
|
uc.set_total(db.get_number_of_media_objects())
|
||||||
|
self.update = uc.update
|
||||||
|
self.trans = db.transaction_begin("",batch=True)
|
||||||
|
db.disable_signals()
|
||||||
|
|
||||||
|
def _cleanup(self,db):
|
||||||
|
db.transaction_commit(self.trans,self.title)
|
||||||
|
db.enable_signals()
|
||||||
|
db.request_rebuild()
|
||||||
|
|
||||||
|
def _run(self,db,callback):
|
||||||
print "Running BatchOp tool... done."
|
print "Running BatchOp tool... done."
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_self(self):
|
def get_self(self):
|
||||||
return (self.run_tool,self.title,self.description,self.build_config())
|
return (self.run_tool,self.title,self.description,
|
||||||
|
self.build_config(),self.build_confirm_text)
|
||||||
|
|
||||||
class PathChange(BatchOp):
|
class PathChange(BatchOp):
|
||||||
title = _('Change path')
|
title = _('Change path')
|
||||||
@ -305,24 +339,26 @@ class PathChange(BatchOp):
|
|||||||
|
|
||||||
return (title,box)
|
return (title,box)
|
||||||
|
|
||||||
def run_tool(self,db,callback):
|
def build_confirm_text(self):
|
||||||
uc = UpdateCallback(callback)
|
from_text = unicode(self.from_entry.get_text())
|
||||||
uc.set_total(db.get_number_of_media_objects())
|
to_text = unicode(self.to_entry.get_text())
|
||||||
|
text = _(
|
||||||
|
'The following action is to be performed:\n\n'
|
||||||
|
'Operation:\t%s\nReplace:\t\t%s\nWith:\t\t%s\n\n'
|
||||||
|
'Press OK to proceed, Cancel to abort, or Back to '
|
||||||
|
'revisit your options.') % (self.title, from_text, to_text)
|
||||||
|
return text
|
||||||
|
|
||||||
|
def _run(self,db):
|
||||||
from_text = unicode(self.from_entry.get_text())
|
from_text = unicode(self.from_entry.get_text())
|
||||||
to_text = unicode(self.to_entry.get_text())
|
to_text = unicode(self.to_entry.get_text())
|
||||||
trans = db.transaction_begin("",batch=True)
|
|
||||||
db.disable_signals()
|
|
||||||
for handle in db.get_media_object_handles():
|
for handle in db.get_media_object_handles():
|
||||||
obj = db.get_object_from_handle(handle)
|
obj = db.get_object_from_handle(handle)
|
||||||
if obj.get_path().find(from_text) != -1:
|
if obj.get_path().find(from_text) != -1:
|
||||||
new_path = obj.get_path().replace(from_text,to_text)
|
new_path = obj.get_path().replace(from_text,to_text)
|
||||||
obj.set_path(new_path)
|
obj.set_path(new_path)
|
||||||
db.commit_media_object(obj,trans)
|
db.commit_media_object(obj,self.trans)
|
||||||
uc.update()
|
self.update()
|
||||||
db.transaction_commit(trans,self.title)
|
|
||||||
db.enable_signals()
|
|
||||||
db.request_rebuild()
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user