Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return
self._get_scanner_info()
except Exception as exc:
logger.exception(exc)
finally:
self.emit('scan-done')
def stop(self, will_resume=False):
logger.info("InfoGetter interrupted")
self.can_run = False
GObject.type_register(JobInfoGetter)
class JobFactoryInfoGetter(JobFactory):
def __init__(self, diag_win, main_win):
super(JobFactoryInfoGetter, self).__init__("InfoGetter")
self.diag_win = diag_win
self.main_win = main_win
def make(self):
job = JobInfoGetter(self, next(self.id_generator), self.main_win)
job.connect(
'scan-progression',
lambda job, step, progression: GLib.idle_add(
self.diag_win.on_scan_progression_cb, step, progression
)
)
job.connect(
'scan-done',
doc.name)
def do(self):
self.emit('label-updating-start')
self._wait(0.5) # give a little bit of time to Gtk to update
try:
self.__docsearch.update_label(self.__old_label, self.__new_label,
self.__progress_cb)
finally:
self.emit('label-updating-end')
GObject.type_register(JobLabelUpdater)
class JobFactoryLabelUpdater(JobFactory):
def __init__(self, doc_list):
JobFactory.__init__(self, "LabelUpdater")
self.__doc_list = doc_list
def make(self, docsearch, old_label, new_label):
job = JobLabelUpdater(self, next(self.id_generator), docsearch,
old_label, new_label)
job.connect('label-updating-start',
lambda updater:
GLib.idle_add(
self.__doc_list.on_label_updating_start_cb,
updater))
job.connect('label-updating-doc-updated',
lambda updater, progression, doc_name:
GLib.idle_add(
self.__doc_list.on_label_updating_doc_updated_cb,
self.optimize = False
self.emit('index-update-progression', 1.0, "")
self.emit('index-update-end')
def stop(self, will_resume=False):
self.can_run = False
if not will_resume:
self.connect('index-update-interrupted',
lambda job:
GLib.idle_add(self.index_updater.cancel))
GObject.type_register(JobIndexUpdater)
class JobFactoryIndexUpdater(JobFactory):
def __init__(self, main_win, config):
JobFactory.__init__(self, "IndexUpdater")
self.__main_win = main_win
self.__config = config
def make(self, docsearch,
new_docs=set(), upd_docs=set(), del_docs=set(),
optimize=True, reload_list=False):
job = JobIndexUpdater(self, next(self.id_generator), self.__config,
docsearch, new_docs, upd_docs, del_docs,
optimize)
job.connect('index-update-start',
lambda updater:
GLib.idle_add(self.__main_win.on_index_update_start_cb,
updater))
job.connect('index-update-progression',
if not self.can_run:
logger.info("Search cancelled. Won't look for suggestions")
return
suggestions = self.__docsearch.find_suggestions(self.search)
self.emit('search-suggestions', suggestions)
def stop(self, will_resume=False):
self.can_run = False
self._stop_wait()
GObject.type_register(JobDocSearcher)
class JobFactoryDocSearcher(JobFactory):
def __init__(self, main_win, config):
JobFactory.__init__(self, "Search")
self.__main_win = main_win
self.__config = config
def make(self, docsearch, sort_func, search_type, search):
job = JobDocSearcher(self, next(self.id_generator), self.__config,
docsearch, sort_func, search_type, search)
job.connect('search-start', lambda searcher:
GLib.idle_add(self.__main_win.on_search_start_cb))
job.connect('search-results',
lambda searcher, search, documents:
GLib.idle_add(self.__main_win.on_search_results_cb,
search, documents))
job.connect('search-invalid',
lambda searcher: GLib.idle_add(
res_array.append(res)
resolutions = res_array
for resolution in resolutions:
name = self.__get_resolution_name(resolution)
self.emit('resolution-found', name, resolution,
(resolution == self.__selected_resolution))
logger.info("Got all the resolutions")
finally:
self.emit("resolution-finding-end")
GObject.type_register(JobResolutionFinder)
class JobFactoryResolutionFinder(JobFactory):
def __init__(self, settings_win, selected_resolution,
recommended_resolution):
JobFactory.__init__(self, "ResolutionFinder")
self.__settings_win = settings_win
self.__selected_resolution = selected_resolution
self.__recommended_resolution = recommended_resolution
def make(self, devid):
job = JobResolutionFinder(self, next(self.id_generator),
self.__selected_resolution,
self.__recommended_resolution, devid)
job.connect('resolution-finding-start',
lambda job: GLib.idle_add(
self.__settings_win.on_finding_start_cb,
self.__settings_win.device_settings['resolution']))
self.__current_idx = idx
logger.info("End of thumbnailing [%s]", self)
self.emit('doc-thumbnailing-end')
def stop(self, will_resume=False):
self.can_run = False
self._stop_wait()
if not will_resume and self.__current_idx >= 0:
self.emit('doc-thumbnailing-end')
GObject.type_register(JobDocThumbnailer)
class JobFactoryDocThumbnailer(JobFactory):
def __init__(self, doclist):
JobFactory.__init__(self, "DocThumbnailer")
self.__doclist = doclist
def make(self, doclist, already_loaded=()):
"""
Arguments:
doclist --- must be an array of (position, document), position
being the position of the document
"""
job = JobDocThumbnailer(
self, next(self.id_generator), doclist, already_loaded
)
job.connect(
'doc-thumbnailing-start',
lambda thumbnailer:
sources = []
logger.info("Sources found: %s" % str(sources))
sys.stdout.flush()
for source in sources:
name = self.__get_source_name_translated(source)
self.emit('source-found', name, source,
(source == self.__selected_source))
logger.info("Got all the sources")
finally:
self.emit("source-finding-end")
GObject.type_register(JobSourceFinder)
class JobFactorySourceFinder(JobFactory):
def __init__(self, settings_win, selected_source):
JobFactory.__init__(self, "SourceFinder")
self.__settings_win = settings_win
self.__selected_source = selected_source
def make(self, devid):
job = JobSourceFinder(self, next(self.id_generator),
self.__selected_source, devid)
job.connect('source-finding-start',
lambda job: GLib.idle_add(
self.__settings_win.on_finding_start_cb,
self.__settings_win.device_settings['source']))
job.connect('source-found',
lambda job, user_name, store_name, active:
GLib.idle_add(
devices = pyinsane2.get_devices()
for device in devices:
selected = (self.__selected_devid == device.name)
name = self.__get_dev_name(device)
logger.info("Device found: [%s] -> [%s]" % (name, device.name))
sys.stdout.flush()
self.emit('device-found', name, device.name, selected)
logger.info("End of scan for device")
finally:
self.emit("device-finding-end")
GObject.type_register(JobDeviceFinder)
class JobFactoryDeviceFinder(JobFactory):
def __init__(self, settings_win, selected_devid):
JobFactory.__init__(self, "DeviceFinder")
self.__selected_devid = selected_devid
self.__settings_win = settings_win
def make(self):
job = JobDeviceFinder(self, next(self.id_generator),
self.__selected_devid)
job.connect('device-finding-start',
lambda job: GLib.idle_add(
self.__settings_win.on_device_finding_start_cb))
job.connect('device-found',
lambda job, user_name, store_name, active:
GLib.idle_add(self.__settings_win.on_value_found_cb,
self.__settings_win.device_settings['devid'],
def do(self):
self._wait(0.5)
if not self.can_run:
return
GLib.idle_add(self.__progressive_list.display_extra)
def stop(self, will_resume=True):
self.can_run = False
self._stop_wait()
GObject.type_register(JobProgressiveList)
class JobFactoryProgressiveList(JobFactory):
def __init__(self, progressive_list):
JobFactory.__init__(self, "Progressive List")
self.progressive_list = progressive_list
def make(self):
return JobProgressiveList(self, next(self.id_generator),
self.progressive_list)
class ProgressiveList(GObject.GObject):
"""
We use GtkIconView to display documents and pages. However this widget
doesn't like having too many elements to display: it keeps redrawing the
list when the mouse goes over it --> with 600 documents, this may be
def __init__(self, settings_win, selected_devid):
JobFactory.__init__(self, "DeviceFinder")
self.__selected_devid = selected_devid
self.__settings_win = settings_win