def __init__(self, main_window, config): gobject.GObject.__init__(self) self.scanned_pages = 0 self.__config = config widget_tree = load_uifile("multiscan.glade") self.lists = { 'docs' : { 'gui': widget_tree.get_object("treeviewScanList"), 'model': widget_tree.get_object("liststoreScanList"), 'columns' : { 'nb_pages' : \ widget_tree.get_object("treeviewcolumnNbPages"), }, 'include_current_doc': False, }, } self.removeDocButton = widget_tree.get_object("buttonRemoveDoc") self.removeDocButton.set_sensitive(False) actions = { 'add_doc' : ( [widget_tree.get_object("buttonAddDoc")], ActionAddDoc(self, config), ), 'select_doc' : ( [widget_tree.get_object("treeviewScanList")], ActionSelectDoc(self), ), 'start_edit_doc' : ( [widget_tree.get_object("buttonEditDoc")], ActionStartEditDoc(self), ), 'end_edit_doc' : ( [widget_tree.get_object("cellrenderertextNbPages")], ActionEndEditDoc(self), ), 'del_doc' : ( [self.removeDocButton], ActionRemoveDoc(self), ), 'cancel' : ( [widget_tree.get_object("buttonCancel")], ActionCancel(self) ), 'scan' : ( [widget_tree.get_object("buttonOk")], ActionScan(self, config, main_window.docsearch, main_window.doc), ), } for action in ['add_doc', 'select_doc', 'start_edit_doc', 'end_edit_doc', 'del_doc', 'scan', 'cancel']: actions[action][1].connect(actions[action][0]) self.to_disable_on_scan = [ actions['add_doc'][0][0], actions['start_edit_doc'][0][0], actions['del_doc'][0][0], actions['scan'][0][0], ] self.lists['docs']['model'].clear() if len(main_window.doc.pages) > 0 and main_window.doc.can_edit: self.lists['docs']['model'].append([ _("Current document (%s)") % (str(main_window.doc)), "0", # nb_pages True, # can_edit (nb_pages) 0, # scan_progress_int "", # scan_progress_txt False, # can_delete ]) self.lists['docs']['include_current_doc'] = True else: # add a first document to the list (the user will need one anyway) actions['add_doc'][1].do() self.scan_queue = WorkerQueue("Mutiple scans") self.scan_queue.connect("queue-start", lambda queue: \ gobject.idle_add(self.__on_global_scan_start_cb, queue)) self.scan_queue.connect("queue-stop", lambda queue, exc: \ gobject.idle_add(self.__on_global_scan_end_cb, queue, exc)) self.scan_queue.connect("scan-start", lambda worker, page, total: \ gobject.idle_add(self.__on_scan_start_cb, worker, page, total)) self.scan_queue.connect("ocr-start", lambda worker, page, total: \ gobject.idle_add(self.__on_ocr_start_cb, worker, page, total)) self.scan_queue.connect("scan-done", lambda worker, page, total: \ gobject.idle_add(self.__on_scan_done_cb, worker, page, total)) self.dialog = widget_tree.get_object("dialogMultiscan") self.dialog.connect("destroy", self.__on_destroy) self.dialog.set_transient_for(main_window.window) self.dialog.set_visible(True)