Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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