def do_real_clean_task(self):
if len(self.clean_tasks) != 0:
plugin, cruft_dict = self.clean_tasks.pop(0)
plugin.set_property('clean_finished', False)
for row in self.janitor_model:
for child_row in row.iterchildren():
if child_row[self.JANITOR_PLUGIN] == plugin:
plugin_iter = child_row.iter
log.debug("Call %s to clean cruft" % plugin)
self._object_clean_handler = plugin.connect('object_cleaned',
self.on_plugin_object_cleaned,
(plugin_iter, cruft_dict))
self._all_clean_handler = plugin.connect('all_cleaned', self.on_plugin_cleaned, plugin_iter)
self._error_handler = plugin.connect('clean_error', self.on_clean_error, plugin_iter)
self.janitor_view.scroll_to_cell(self.janitor_model.get_path(plugin_iter))
t = threading.Thread(target=plugin.clean_cruft,
kwargs={'cruft_list': cruft_dict.keys(),
'parent': self.get_toplevel()})
for row in self.result_model:
if row[self.RESULT_PLUGIN] == plugin:
self.result_view.get_selection().select_path(row.path)
self.result_view.scroll_to_cell(row.path)
row[self.RESULT_DISPLAY] = '<b>%s</b>' % _('Cleaning cruft for "%s"...') % plugin.get_title()
self.result_view.expand_row(self.result_model.get_path(row.iter), True)
self.janitor_model[plugin_iter][self.JANITOR_SPINNER_ACTIVE] = True
self.janitor_model[plugin_iter][self.JANITOR_SPINNER_PULSE] = 0
GObject.timeout_add(50, self._on_clean_spinner_timeout, plugin_iter, t)
t.start()
else:
self.on_scan_button_clicked()
self.unset_busy()
评论列表
文章目录