def __obtainScannersFinishedCb(self, dialog, devices, error): dialog.destroy() device = None if len(devices) > 1: scanner_chooser_dialog = widgetPresenter.ScannerChooserDialog(\ self.main_window.window, devices) gtk.gdk.threads_enter() response = scanner_chooser_dialog.run() gtk.gdk.threads_leave() scanner_chooser_dialog.destroy() if response == gtk.RESPONSE_ACCEPT: device = scanner_chooser_dialog.getSelectedDevice() else: return elif len(devices) == 1: device = devices[0][0] if device: dialog_scan = widgetPresenter.QueuedEventsProgressDialog(\ self.main_window.window) item_scan = AsyncItem(lib.scan,(device,), self.__scanFinishedCb,(dialog_scan,)) info_scan = (_('Scanning'), _(u'Please wait…')) dialog_scan.setItemsList([(info_scan, item_scan)]) dialog_scan.run() else: error = widgetPresenter.SimpleDialog(\ _("No scanner devices were found"), _("Error"), 'warning') gtk.gdk.threads_enter() error.run() gtk.gdk.threads_leave()
def __scanFinishedCb(self, dialog, image_path, error): dialog.destroy() if image_path: gtk.gdk.threads_enter() self.__addImagesToReviewer([image_path]) gtk.gdk.threads_leave() else: error = widgetPresenter.SimpleDialog(\ _("Error scanning page"), _("Error"), 'warning') gtk.gdk.threads_enter() error.run() gtk.gdk.threads_leave()