Exemplo n.º 1
0
    def toggled_item(self, data, row):
        """Set a function to be called when the value of a row is toggled.
        The  function will be called with two arguments, the clicked item
        in the row and a string for which row was clicked."""
        gui.setCursorToBusy(self, True)
        iter = self.store.get_iter((int(row),))

        pkg = self.store.get_value(iter, COL_PACKAGE)

        if not pkg.selected:
            self.store.check(pkg)
        else:
            self.store.uncheck(pkg)

        try:
            self.controller.btnBurn.set_sensitive( self.store.get_count()['selected'] > 0)
        except:
            self.controller.btnRestorePackages.set_sensitive( self.store.get_count()['selected'] > 0)

        gui.setCursorToNormal(self)
        return
Exemplo n.º 2
0
 def check_uncheck_all(self, check_type = 0):
     gui.setCursorToBusy(self, True)
     tmp = self.autoselect_dependents
     self.autoselect_dependents = False
     for n in range(len(self.store)):
         pkg = self.store.get_value(self.store.get_iter((n,)),COL_PACKAGE)
         if check_type == 0 :
             self.store.check(pkg)
         elif check_type == 1:
             self.store.uncheck(pkg)
         elif check_type == 2:
             if not pkg.selected:
                 self.store.check(pkg)
             else:
                 self.store.uncheck(pkg)
     self.autoselect_dependents = tmp
     self.update_parent_count()
     gui.setCursorToNormal(self)
     try:
         self.controller.btnBurn.set_sensitive( self.store.get_count()['selected'] > 0)
     except:
         self.controller.btnRestorePackages.set_sensitive( self.store.get_count()['selected'] > 0)
Exemplo n.º 3
0
    def __init__(self, controller = None, missing_list = []):
        """
            Constructor.
        """

        self.controller = controller
        self.glade = gui.get_glade(constants.CREATE_GUI, WINDOW_NAME)
        gui.setCursorToBusy(self.controller.get_parent_widget(),True)
        #main widget
        self.window = gui.get_widget(self.glade, WINDOW_NAME)
        self.window.set_icon_name(constants.APP_ICON_NAME)
        self.window.set_transient_for(self.controller.get_main_window())
        self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

        #get work widgets
        self.tvwNotInstalled = gui.get_widget(self.glade, 'tvwNotInstalled')
        self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, str)

        self.__create_ui()
        if len(missing_list)>0:
            for n in missing_list:
                self.store.append([False, n])
        gui.setCursorToNormal(self.controller.get_parent_widget())
Exemplo n.º 4
0
    def load_package_folder(self, path_to_scan, custom = False, recursive = False):
        """
            Loads all packages files from a given path in to the list.
        """
        gui.setCursorToBusy(self.controller.get_parent_widget(),True)
        self.controller.get_main_window().set_sensitive(False)
        processEvents()
        self.store._load_cache()

        list_bad = []
        not_added = []

        progress = self.controller.get_parent().progressbar
        progress.show()

        processEvents()

        # now get all packages in cache
        packages_files = utils.get_deb_from_folder(path_to_scan, recursive)
        f_len = len(packages_files)
        for index, pkg in enumerate(packages_files):
            #add the package to the list
            index+=1
            percent = (float(index) / f_len)
            iter = self.store.add_item(pkg,path_to_scan, custom)
            if iter == None:
                not_added.append(os.path.basename(pkg))
            else:
                if self.store.get_value(iter, COL_PACKAGE).bad:
                    list_bad.append(self.store.get_value(iter, COL_PACKAGE).deb_filename)
            progress.set_fraction(percent)
            progress.set_text(str(int(percent * 100)) + '%' )
            #process pending events / update the window
            if index % 2 == 0:
                processEvents()

        processEvents()
        
        progress.set_fraction(0)
        progress.hide()
        progress.set_text('0%')
        progress.set_fraction(0)
        
        self.controller.controller.show_status_message('Checking versions...')
        processEvents()
        self.store.uncheck_minor_version()
        #self.count_packages()
        self.not_in_cache = []
        self.controller.controller.show_status_message('Checking uncached packages...')
        processEvents()
        for n in self.store.installed:
            if not self.store.get_package(n,self.store.installed[n]):
                self.not_in_cache.append(n)
        
        #print len(self.not_in_cache)
        
        #update the parent count labels
        self.update_parent_count()
        self.controller.get_main_window().set_sensitive(True)
        self.set_model(self.store)
        self.get_selection().select_path((0,0))
        self.grab_focus()
        gui.setCursorToNormal(self.controller.get_parent_widget())

        #show packages not inserted due to already exist in list
        if len(not_added)>0:
            self.__load_dialog_skip(not_added)

        if len(list_bad)>0:
            self.__load_dialog_skip(list_bad)
Exemplo n.º 5
0
    def add_from_file_list(self, packages_names):
        """
            Loads all packages files from a given path in to the list.
        """
        gui.setCursorToBusy(self.controller.get_parent_widget(),True)
        self.controller.get_main_window().set_sensitive(False)
        #self.clear()

        list_bad = []
        not_added = []

        f_len = len(packages_names)
        pbar_shown = False
        #only show progressbar if user selects more than 5 packages
        if len(packages_names) > 5:

            if self.controller.get_parent():
                progress = self.controller.get_parent().progressbar
                progress.show()
                pbar_shown = True
            else:
                pbar_shown = False
            processEvents()

        indx = 1
        # now get all packages in cache
        for index in range(f_len):
            percent = (float(index) / f_len)
            filename = os.path.basename(packages_names[index])
            pathname = os.path.dirname(packages_names[index])
            iter = self.store.add_item(filename,pathname, True)
            if iter == None:
                not_added.append(filename)
            else:
                #self.get_selection().select_iter(iter)
                if self.store.get_value(iter, COL_PACKAGE).bad:
                    list_bad.append(self.store.get_value(iter, COL_PACKAGE).deb_filename) 

            #process pending events / update the window
            if pbar_shown:
                progress.set_fraction(percent)
                progress.set_text(str(int(percent * 100)) + '%' )
                processEvents()

        if pbar_shown:
            progress.set_fraction(0)
            progress.hide()
            progress.set_text('0%')
            progress.set_fraction(0)

        #update the parent count labels
        #update the parent count labels
        self.update_parent_count()
        self.controller.get_main_window().set_sensitive(True)
        self.set_model(self.store)
        self.get_selection().select_path((0,0))
        self.grab_focus()
        gui.setCursorToNormal(self.controller.get_parent_widget())

        #show packages not inserted due to already exist in list
        if len(not_added)>0:
            self.__load_dialog_skip(not_added, constants.MESSAGE_0017)

        if len(list_bad)>0:
            self.__load_dialog_skip(list_bad, constants.MESSAGE_0016)