def __on_save_path(self, widget): "Save the paths in umit configuration file without recaching" # Simple create a list from ListStore # and then save to umit configuration file ret = [] def add_to(model, path, titer, ret): ret.append(model.get_value(titer, 1)) self.path_store.foreach(add_to, ret) self.p_window.engine.plugins.paths = ret self.p_window.engine.plugins.save_changes() PluginEngine().recache() if self.p_window.plug_page.clear(False) > 0: # Warn the user self.p_window.animated_bar.label = _("Remember that you have to " "restart PacketManipulator to changes makes" ". Plugins disable pending.") self.p_window.animated_bar.start_animation(True) def block_row(row, blah): row.activatable = False row.message = _("Need PacketManipulator restart to disable.") self.p_window.plug_page.richlist.foreach(block_row, None) self.p_window.plug_page.populate() self.p_window.audit_page.populate()
def _idle(self): if self.phase == 0: self.splash.text = _("Registering icons ...") from icons import register_icons register_icons() elif self.phase == 1: self.splash.text = _("Loading preferences ...") from umit.pm.manager.preferencemanager import Prefs self.prefs = Prefs() elif self.phase == 2: services_boot() self.splash.text = _("Creating main window ...") from mainwindow import MainWindow self.bus = ServiceBus() self.main_window = MainWindow() self.main_window.connect_tabs_signals() self.plugin_engine = PluginEngine() self.plugin_engine.load_selected_plugins() # Destroy the splash screen self.splash.hide() self.splash.destroy() self.splash.finished = True del self.splash # Now let's parse the args passed in the constructor parser = self._create_parser() options, args = parser.parse_args(self._args) if options.fread: self.main_window.open_generic_file_async(options.fread) if options.audit: dev1, dev2, bpf_filter = options.audit, '', '' try: dev1, dev2 = options.audit.split(',', 1) dev2, bpf_filter = other.split(':', 1) except: pass self.main_window.start_new_audit(dev1, dev2, bpf_filter, False, False) return False self.phase += 1 return True
def __init__(self): HIGWindow.__init__(self) self.engine = PluginEngine() self.update_eng = UpdateEngine() self.set_title(_('Plugin Manager')) self.set_position(gtk.WIN_POS_CENTER) self.set_size_request(600, 400) self.set_icon_from_file(os.path.join(PIXMAPS_DIR, 'pm-logo.png')) self.__create_widgets() self.__pack_widgets()
def get_need(self, reader, needstr, classname=None, need_module=False): """ Usefull function to return an instance of needstr:classname @param reader a PluginReader object or None """ lst = [] if reader: # We create a list of needs for the same package for need in reader.needs: name, op, ver = Version.extract_version(need) if name == needstr: lst.append((op, ver, name)) from umit.pm.gui.plugins.engine import PluginEngine ret = PluginEngine().tree.get_provide(needstr, lst, need_module) log.debug(">>> Core.get_need() -> %s (module: %s)" % (ret, need_module)) if not ret: return None if not need_module: if not classname: log.debug(">>> Core.get_need(): No classname specified. " \ "Returning first instance") return ret[0] for instance in ret: if instance.__class__.__name__ == classname: return instance else: # We need a module if len(ret) > 1: log.debug(">>> Core.get_need(): Returning the first module") return ret[0] return None