예제 #1
0
    def __init__(self, argv):
        try:
            command = argv[1]
            paras = argv[2:]

            if command in ("copy", "move", "link"):
                dialog = FileChooserDialog(_("Select a folder"))
                dialog.set_current_folder(os.path.expanduser("~"))
                if dialog.run() == gtk.RESPONSE_ACCEPT:
                    folder = dialog.get_filename()

                    dialog.destroy()

                    work = getattr(FileOperation, command)
                    for file in paras:
                        if file.startswith("file"):
                            file = FileOperation.get_local_path(file)
                        work(file, folder)
            elif command in ("copy_to_xdg", "move_to_xdg", "link_to_xdg"):
                xdg = paras[-1]
                paras = paras[:-1]

                work = getattr(FileOperation, command)

                for file in paras:
                    if file.startswith("file"):
                        file = FileOperation.get_local_path(file)
                    work(file, xdg)
            else:
                getattr(FileOperation, command)(paras)
        except:
            run_traceback("fatal")
예제 #2
0
 def list_unneeded_kerenl(self):
     list = []
     try:
         for pkg in self.cache.keys():
             if self.cache[pkg].isInstalled and self.is_old_kernel_package(pkg):
                 list.append(pkg)
     except Exception, e:
         log.error(e)
         run_traceback('error')
예제 #3
0
 def list_unneeded_kerenl(self):
     list = []
     try:
         for pkg in self.cache.keys():
             if self.cache[pkg].isInstalled and self.is_old_kernel_package(
                     pkg):
                 list.append(pkg)
     except Exception, e:
         log.error(e)
         run_traceback('error')
예제 #4
0
 def list_unneeded_kerenl(self):
     list = []
     try:
         for pkg in self.cache.keys():
             if self.cache[pkg].isInstalled:
                 for base in self.basenames:
                     if pkg.startswith(base) and p_kernel.findall(pkg) and not self.is_current_kernel(pkg):
                         list.append(pkg)
     except Exception, e:
         log.error(e)
         run_traceback('error')
예제 #5
0
    def setup_notebook(self, id):
        try:
            module = MLOADER.get_module(id)
            page = module()
        except:
            run_traceback('error')
            page = show_error_page()

        page.show_all()
        if isinstance(page, TweakModule):
            page.connect('call', self.on_child_page_call)
        self.modules[page.__module__] = page
        self.notebook.append_page(page)
예제 #6
0
    def list_autoremovable(self):
        list = []
        try:
            for pkg in self.cache.keys():
                p = self.cache[pkg]
                try:
                    need_remove = getattr(p, 'isAutoRemovable')
                except:
                    need_remove = p.isInstalled and p._depcache.IsGarbage(p._pkg)

                if need_remove:
                    list.append(pkg)
        except Exception, e:
            log.error(e)
            run_traceback('error')
예제 #7
0
def create_broken_module_class(name):
    return classobj(
        'Broken%s' % name.title(), (BrokenModule, ), {
            '__name__': name,
            '__title__': name,
            'error_view': run_traceback('error', textview_only=True)
        })
예제 #8
0
    def do_create(cls, widget, **kwargs):
        signal_dict = kwargs.pop('signal_dict', None)
        blank_label = kwargs.pop('blank_label', None)
        reverse = kwargs.get('reverse', False)

        enable_reset = kwargs.has_key('enable_reset')
        if enable_reset:
            kwargs.pop('enable_reset')

        new_widget = globals().get(widget)(**kwargs)

        if signal_dict:
            for signal, method in signal_dict.items():
                new_widget.connect(signal, method)

        if enable_reset:
            try:
                reset_button = ResetButton(new_widget.get_setting(),
                                           reverse=reverse)
                reset_button.connect('clicked', on_reset_button_clicked, new_widget)

                if blank_label:
                    return Gtk.Label(), new_widget, reset_button
                else:
                    return new_widget, reset_button
            except Exception, e:
                log.error(run_traceback('error', text_only=True))
예제 #9
0
def create_broken_module_class(name):
    module_name = 'Broken%s' % name.title()

    return classobj(module_name,
                    (BrokenModule,),
                    {'__name__': module_name,
                     '__title__': name,
                     '__category__': 'broken',
                     'error_view': run_traceback('error', textview_only=True)})
예제 #10
0
 def clean_cruft(self, cruft_list=[], parent=None):
     for index, cruft in enumerate(cruft_list):
         try:
             log.debug('Cleaning...%s' % cruft.get_name())
             if cruft.is_dir():
                 shutil.rmtree(cruft.get_path())
             else:
                 os.remove(cruft.get_path())
             self.emit('object_cleaned', cruft, index + 1)
         except Exception, e:
             log.error(run_traceback(e))
             self.emit('clean_error', cruft.get_name())
             break
예제 #11
0
def create_broken_module_class(name):
    module_name = "Broken%s" % name.title()

    return classobj(
        module_name,
        (BrokenModule,),
        {
            "__name__": module_name,
            "__title__": name,
            "__category__": "broken",
            "error_view": run_traceback("error", textview_only=True),
        },
    )
예제 #12
0
 def clean_cruft(self, cruft_list=[], parent=None):
     for index, cruft in enumerate(cruft_list):
         try:
             log.debug('Cleaning...%s' % cruft.get_name())
             if cruft.is_dir():
                 shutil.rmtree(cruft.get_path())
             else:
                 os.remove(cruft.get_path())
             self.emit('object_cleaned', cruft, index + 1)
         except Exception, e:
             log.error(run_traceback(e))
             self.emit('clean_error', cruft.get_name())
             break
예제 #13
0
    def do_composite_create(cls, widget, **kwargs):
        label = Gtk.Label(label=kwargs.pop('label'))
        signal_dict = kwargs.pop('signal_dict', None)
        reverse = kwargs.get('reverse', False)

        enable_reset = kwargs.has_key('enable_reset')
        if enable_reset:
            enable_reset = kwargs.pop('enable_reset')

        try:
            new_widget = globals().get(widget)(**kwargs)
        except Exception, e:
            log.error(run_traceback('error', text_only=True))

            if enable_reset:
                return [None, None, None]
            else:
                return [None, None]
예제 #14
0
class WidgetFactory:
    composite_capable = ('SpinButton', 'Entry', 'ComboBox',
                         'Scale', 'FontButton', 'ColorButton', 'Switch')

    @classmethod
    def create(cls, widget, **kwargs):
        if widget in cls.composite_capable and kwargs.has_key('label'):
            return getattr(cls, 'do_composite_create')(widget, **kwargs)
        else:
            return getattr(cls, 'do_create')(widget, **kwargs)

    @classmethod
    def do_composite_create(cls, widget, **kwargs):
        label = Gtk.Label(label=kwargs.pop('label'))
        signal_dict = kwargs.pop('signal_dict', None)
        reverse = kwargs.get('reverse', False)

        enable_reset = kwargs.has_key('enable_reset')
        if enable_reset:
            enable_reset = kwargs.pop('enable_reset')

        try:
            new_widget = globals().get(widget)(**kwargs)
        except Exception, e:
            log.error(run_traceback('error', text_only=True))

            if enable_reset:
                return [None, None, None]
            else:
                return [None, None]

        if signal_dict:
            for signal, method in signal_dict.items():
                new_widget.connect(signal, method)

        if enable_reset:
            try:
                reset_button = ResetButton(new_widget.get_setting(),
                                           reverse=reverse)
                reset_button.connect('clicked', on_reset_button_clicked, new_widget)
            except Exception, e:
                log.error(run_traceback('error', text_only=True))
                reset_button = None
            finally:
예제 #15
0
        page = MODULES_TABLE[WELCOME][MODULE_FUNC]
        notebook.append_page(page())
        notebook.append_page(show_wait())

        return notebook

    def setup_notebook(self, id):
        try:
            module = MLOADER.get_module(id)
            page = module()
        except ModuleKeyError:
            pass
        except SystemError, e:
                page = create_broken_module_class(id)()
        except:
            run_traceback('error')
            page = show_error_page()

        page.show_all()
        if isinstance(page, TweakModule):
            page.connect('call', self.on_child_page_call)
        self.modules[page.__module__] = page
        self.notebook.append_page(page)

    def on_child_page_call(self, widget, target, action, params):
        if target == 'mainwindow':
            getattr(self, action)(**params)
        else:
            if target in self.modules:
                getattr(self.modules[target], action)()
예제 #16
0
        page = MODULES_TABLE[WELCOME][MODULE_FUNC]
        notebook.append_page(page())
        notebook.append_page(show_wait())

        return notebook

    def setup_notebook(self, id):
        try:
            module = MLOADER.get_module(id)
            page = module()
        except ModuleKeyError:
            pass
        except SystemError, e:
            page = create_broken_module_class(id)()
        except:
            run_traceback("error")
            page = show_error_page()

        page.show_all()
        if isinstance(page, TweakModule):
            page.connect("call", self.on_child_page_call)
        self.modules[page.__module__] = page
        self.notebook.append_page(page)

    def on_child_page_call(self, widget, target, action, params):
        if target == "mainwindow":
            getattr(self, action)(**params)
        else:
            if target in self.modules:
                getattr(self.modules[target], action)()
예제 #17
0
        page = MODULES_TABLE[WELCOME][MODULE_FUNC]
        notebook.append_page(page())
        notebook.append_page(show_wait())

        return notebook

    def setup_notebook(self, id):
        try:
            module = MLOADER.get_module(id)
            page = module()
        except ModuleKeyError:
            pass
        except SystemError, e:
            page = create_broken_module_class(id)()
        except:
            run_traceback('error')
            page = show_error_page()

        page.show_all()
        if isinstance(page, TweakModule):
            page.connect('call', self.on_child_page_call)
        self.modules[page.__module__] = page
        self.notebook.append_page(page)

    def on_child_page_call(self, widget, target, action, params):
        if target == 'mainwindow':
            getattr(self, action)(**params)
        else:
            if target in self.modules:
                getattr(self.modules[target], action)()