def do(self): SimpleAction.do(self) labeleditor = LabelEditor() if labeleditor.edit(self.__main_win.window): logger.info("Adding label %s to doc %s" % (labeleditor.label.name, self.__main_win.doc)) job = self.__doc_properties.job_factories['label_creator'].make( self.__main_win.docsearch, labeleditor.label, self.__main_win.doc) self.__main_win.schedulers['main'].schedule(job)
def do(self, new_text): SimpleAction.do(self, new_text=new_text) new_text = str(int(new_text)) # make sure it's a valid number docs_gui = self.__dialog.lists['docs']['gui'] (model, selection_iter) = docs_gui.get_selection().get_selected() if selection_iter is None: logger.warning("No doc selected") return line = model[selection_iter] int(new_text) # make sure it's a valid number line[1] = new_text
def do(self): SimpleAction.do(self) docs_gui = self.__dialog.lists['docs']['gui'] (model, selection_iter) = docs_gui.get_selection().get_selected() if selection_iter is None: logger.warning("No doc selected") return self.__dialog.lists['docs']['gui'].set_cursor( model.get_path(selection_iter), self.__dialog.lists['docs']['columns']['nb_pages'], start_editing=True)
def do(self): SimpleAction.do(self) selection = self.__dialog.lists['docs']['gui'].get_selection() if selection is None: logger.warning("No doc selected") return (model, selection_iter) = selection.get_selected() if selection_iter is None: logger.warning("No doc selected") return val = model.get_value(selection_iter, 5) self.__dialog.removeDocButton.set_sensitive(val)
def do(self): SimpleAction.do(self) docidx = len(self.__dialog.lists['docs']['model']) if not self.__dialog.lists['docs']['include_current_doc']: docidx += 1 self.__dialog.lists['docs']['model'].append([ _("Document %d") % docidx, "1", # nb_pages True, # can_edit (nb_pages) 0, # scan_progress_int "", # scan_progress_txt True # can_delete ])
def do(self): SimpleAction.do(self) docidx = len(self.__dialog.lists['docs']['model']) if not self.__dialog.lists['docs']['include_current_doc']: docidx += 1 self.__dialog.lists['docs']['model'].append( [ _("Document %d") % docidx, "1", # nb_pages True, # can_edit (nb_pages) 0, # scan_progress_int "", # scan_progress_txt True # can_delete ])
def do(self): SimpleAction.do(self) docs_gui = self.__dialog.lists['docs']['gui'] (model, selection_iter) = docs_gui.get_selection().get_selected() if selection_iter is None: logger.warning("No doc selected") return model.remove(selection_iter) for line_idx in range(0, len(self.__dialog.lists['docs']['model'])): line = self.__dialog.lists['docs']['model'][line_idx] if not self.__dialog.lists['docs']['include_current_doc']: line[0] = _("Document %d") % (line_idx + 1) elif line_idx != 0: line[0] = _("Document %d") % line_idx
def do(self): SimpleAction.do(self) docs_gui = self.__dialog.lists['docs']['gui'] (model, selection_iter) = docs_gui.get_selection().get_selected() if selection_iter is None: logger.warning("No doc selected") return model.remove(selection_iter) for (line_idx, line) in enumerate( self.__dialog.lists['docs']['model'] ): if not self.__dialog.lists['docs']['include_current_doc']: line[0] = _("Document %d") % (line_idx + 1) elif line_idx != 0: line[0] = _("Document %d") % line_idx
def do(self): SimpleAction.do(self) calendar = self.__main_win.doc_properties_panel.widgets['calendar'] popover = self.__main_win.doc_properties_panel.popovers['calendar'] date = calendar.get_date() date = datetime.datetime(year=date[0], month=date[1] + 1, day=date[2]) date_txt = BasicDoc.get_name(date) entry = self.__main_win.doc_properties_panel.widgets['name'] entry.set_text(date_txt) if self.__main_win.doc_properties_panel.doc.date != date: self.__main_win.doc_properties_panel.new_doc_date = date else: self.__main_win.doc_properties_panel.new_doc_date = None popover.set_visible(False)
def do(self): SimpleAction.do(self) doclist = self.__doclist.gui['list'] row = doclist.get_selected_row() if row is None: return docid = self.__doclist.model['by_row'][row] doc = self.__main_win.docsearch.get_doc_from_docid(docid, inst=False) if doc is None: # assume new doc doc = self.__doclist.get_new_doc() logger.info("Showing doc %s" % doc) if doc.nb_pages <= 1: self.__main_win.set_layout('paged', force_refresh=False) else: self.__main_win.set_layout('grid', force_refresh=False) self.__main_win.show_doc(doc)
def _do(self): SimpleAction.do(self) if self.__doc is None: doc = self.__main_win.doc else: doc = self.__doc self.__main_win.actions['new_doc'][1].do() logger.info("Deleting ...") job = self.__main_win.job_factories['index_updater'].make( self.__main_win.docsearch, del_docs={doc}, optimize=False, reload_list=True) job.connect( "index-update-end", lambda job: GLib.idle_add(self._on_doc_deleted_from_index, doc)) self.__main_win.new_doc() self.__main_win.schedulers['main'].schedule(job)
def do(self): SimpleAction.do(self) # Open the russian dolls to retrieve the selected label. label_list = self.__doc_properties.lists['labels']['gui'] selected_row = label_list.get_selected_row() if selected_row is None: logger.warning("No label selected") return True label_box = selected_row.get_children()[0] label_name = label_box.get_children()[2].get_text() label_color = label_box.get_children()[1].get_rgba().to_string() label = Label(label_name, label_color) new_label = copy(label) editor = LabelEditor(new_label) if not editor.edit(self.__main_win.window): logger.warning("Label edition cancelled") return logger.info("Label edited. Applying changes") job = self.__doc_properties.job_factories['label_updater'].make( self.__main_win.docsearch, label, new_label) self.__main_win.schedulers['main'].schedule(job)
def __init__(self, main_window): SimpleAction.__init__(self, "Switch back to doc list") self.__main_win = main_window
def __init__(self, settings_win): SimpleAction.__init__(self, "Scan calibration sheet") self.__settings_win = settings_win
def __init__(self, settings_win, config): SimpleAction.__init__(self, "Cancel settings") self.__settings_win = settings_win self.__config = config
def __init__(self, settings_win): SimpleAction.__init__(self, "Toggle OCR state") self.__settings_win = settings_win
def __init__(self, settings_win): SimpleAction.__init__(self, "New source selected") self.__settings_win = settings_win
def do(self): SimpleAction.do(self) self.__settings_win.set_ocr_opts_state()
def __init__(self, multiscan_dialog): SimpleAction.__init__(self, "Add doc to the multi-scan list") self.__dialog = multiscan_dialog
def do(self): SimpleAction.do(self) self.__main_win.doc_properties_panel.apply_properties() self.__main_win.switch_leftpane("doc_list")
def __init__(self, multiscan_dialog): SimpleAction.__init__(self, "End doc edit in multi-scan list") self.__dialog = multiscan_dialog
def __init__(self, main_window): SimpleAction.__init__(self, "Set document date") self.__main_win = main_window
def __init__(self, multiscan_win): SimpleAction.__init__(self, "Cancel multi-scan") self.__multiscan_win = multiscan_win
def __init__(self, multiscan_win, config, docsearch, main_win): SimpleAction.__init__(self, "Start multi-scan") self.__multiscan_win = multiscan_win self.__config = config self.__docsearch = docsearch self.__main_win = main_win
def __init__(self, main_window, doc_properties): SimpleAction.__init__(self, "Editing label") self.__main_win = main_window self.__doc_properties = doc_properties
def __init__(self, main_window, doc=None): SimpleAction.__init__(self, "Delete document") self.__main_win = main_window self.__doc = doc
def do(self): SimpleAction.do(self) try: (dev, resolution) = get_scanner(self.__config, preferred_sources=["ADF", "Feeder"]) except Exception as exc: logger.warning( "Exception while configuring scanner: %s: %s." " Assuming scanner is not connected", type(exc), exc) popup_no_scanner_found(self.__multiscan_win.window) raise try: scan_session = dev.scan(multiple=True) except Exception as exc: logger.warning("Exception while scanning: {}".format(exc)) self.__on_scan_error(exc) raise self.__multiscan_win.on_global_scan_start_cb() page_scans = [] MARGIN = 10 position = (MARGIN, MARGIN) rng = range(0, len(self.__multiscan_win.lists['docs']['model'])) for line_idx in rng: line = self.__multiscan_win.lists['docs']['model'][line_idx] doc = None if line_idx == 0: doc = self.__main_win.doc nb_pages = int(line[1]) total_pages = nb_pages doc_nb_pages = 0 if doc: total_pages += doc.nb_pages doc_nb_pages = doc.nb_pages doc_scan = DocScan(doc) drawer = None for page_nb in range(doc_nb_pages, doc_nb_pages + nb_pages): page_scan = PageScan(self.__main_win, self.__multiscan_win, self.__config, resolution, scan_session, line_idx, doc_scan, page_nb, total_pages) drawer = PageScanDrawer(position) self.__multiscan_win.scan_canvas.add_drawer(drawer) page_scan.connect("scanworkflow-inst", drawer.set_scan_workflow) page_scans.append(page_scan) position = (position[0] + drawer.size[0] + MARGIN, position[1]) new_height = position[1] + MARGIN if drawer: new_height += drawer.size[1] position = (MARGIN, new_height) first_page_scan = page_scans[0] last_page_scan = None for page_scan in page_scans: if last_page_scan: last_page_scan.connect_next_page_scan(page_scan) last_page_scan = page_scan if last_page_scan: last_page_scan.connect( "done", lambda _: GLib.idle_add(self.__multiscan_win. on_global_scan_end_cb)) if first_page_scan: first_page_scan.start_scan_workflow()
def do(self): SimpleAction.do(self) try: (dev, resolution) = get_scanner( self.__config, preferred_sources=["ADF", "Feeder"] ) except Exception as exc: logger.warning("Exception while configuring scanner: %s: %s." " Assuming scanner is not connected", type(exc), exc) logger.exception(exc) popup_no_scanner_found(self.__multiscan_win.window) raise try: scan_session = dev.scan(multiple=True) except Exception as exc: logger.error("Exception while scanning: {}".format(exc)) logger.exception(exc) self.__on_scan_error(exc) raise self.__multiscan_win.on_global_scan_start_cb() page_scans = [] MARGIN = 10 position = (MARGIN, MARGIN) rng = range(0, len(self.__multiscan_win.lists['docs']['model'])) for line_idx in rng: line = self.__multiscan_win.lists['docs']['model'][line_idx] doc = None if line_idx == 0: doc = self.__main_win.doc nb_pages = int(line[1]) total_pages = nb_pages doc_nb_pages = 0 if doc: total_pages += doc.nb_pages doc_nb_pages = doc.nb_pages doc_scan = DocScan(doc) drawer = None for page_nb in range(doc_nb_pages, doc_nb_pages + nb_pages): page_scan = PageScan(self.__main_win, self.__multiscan_win, self.__config, resolution, scan_session, line_idx, doc_scan, page_nb, total_pages) drawer = PageScanDrawer(position) self.__multiscan_win.scan_canvas.add_drawer(drawer) page_scan.connect("scanworkflow-inst", drawer.set_scan_workflow) page_scans.append(page_scan) position = (position[0] + drawer.size[0] + MARGIN, position[1]) new_height = position[1] + MARGIN if drawer: new_height += drawer.size[1] position = (MARGIN, new_height) first_page_scan = page_scans[0] last_page_scan = None for page_scan in page_scans: if last_page_scan: last_page_scan.connect_next_page_scan(page_scan) last_page_scan = page_scan if last_page_scan: last_page_scan.connect( "done", lambda _, scan_session: GLib.idle_add( self.__multiscan_win.on_global_scan_end_cb, scan_session ) ) if first_page_scan: first_page_scan.start_scan_workflow()
def do(self): SimpleAction.do(self) self.__multiscan_win.dialog.destroy()
def __init__(self, multiscan_dialog): SimpleAction.__init__(self, "Doc selected in multi-scan list") self.__dialog = multiscan_dialog
def __init__(self, main_window, config, doclist): SimpleAction.__init__(self, "Open selected document") self.__main_win = main_window self.__config = config self.__doclist = doclist