Esempio n. 1
0
    def combobox_options_changed(self, widget, data=None):

        repos_tree = self.gld.get_widget("repos_tree")
        pacs_tree = self.gld.get_widget("pacs_tree")
        combo_box_options = self.gld.get_widget("combo_box_options")
        
        # Clear summary and files
        summary_buffer = self.gld.get_widget("summary").get_buffer()
        file_tree = self.gld.get_widget("files")
        summary_buffer.set_text('')
        file_model = file_tree.get_model()
        if file_model:
            file_model.clear()
            file_tree.set_model(file_model)
        
        repos_model, tree_iter = repos_tree.get_selection().get_selected()
        selected_repo = repos_model.get_value(tree_iter, 0)
        selected_option = combo_box_options.get_active_text()
        
        if selected_option == 'explicitly installed':
            try:
                pacs_model = self.models[ selected_repo ][ selected_option ]
            except KeyError:
                self.database.set_reason(selected_repo)
                self.models[ selected_repo ]['explicitly installed' ] = explicitly_list(self.database[ selected_repo ])
            
        pacs_model = self.models[ selected_repo ][ selected_option ]
        pacs_tree.set_model(pacs_model)
        
        stat = (len(pacs_model), selected_repo, self.database.repos.get( selected_repo ))
        self._statusbar(stat)
Esempio n. 2
0
    def repo_changed(self, widget, data=None):
        def _setup_status(pacs_model, ext_msg=True):
            # ext_msg = extended message
            pacs_tree.set_model(pacs_model)
            # pass more info to statusbar if repo isn't: orphans, foreigners or Search...
            if ext_msg:
                stat = (len(pacs_model), selected_repo, self.database.repos.get( selected_repo ))
                self._statusbar(stat)
            else:
                stat = (len(pacs_model), selected_repo)
                self._statusbar(stat)
            
        def _setup_orphans_fork():
            self.database.set_orphans()
            self.models['orphans'] = orphan_list( self.database['local'] )
            parent_iter = repos_model.iter_parent(tree_iter)
            
            _setup_status( self.models['orphans'], False )
            col_5.set_visible(True)
            main_win.window.set_cursor(None)
        
        repos_tree = self.gld.get_widget("repos_tree")
        pacs_tree = self.gld.get_widget("pacs_tree")
        combo_box_options = self.gld.get_widget("combo_box_options")
        
        # Hide last column 'Repo' if it's visible
        col_5 = pacs_tree.get_column(5)
        col_5.set_visible(False)

        repos_model, tree_iter = repos_tree.get_selection().get_selected()
        # Need to be sure that repo was selected
        if tree_iter:
            selected_repo = repos_model.get_value(tree_iter, 0)
        # If it wasn't than we select first repo available and return
        else:
            repos_tree.set_cursor_on_cell(0)
            return
        
        # When clicking on repo we unselect any selected pac and clear summary and files
        pacs_tree.get_selection().unselect_all()
        summary_buffer = self.gld.get_widget("summary").get_buffer()
        file_tree = self.gld.get_widget("files")
        summary_buffer.set_text('')
        file_model = file_tree.get_model()
        if file_model:
            file_model.clear()
            file_tree.set_model(file_model)
        
        # Fetch orphans packages
        if selected_repo == 'orphans':
            combo_box_options.set_sensitive(False)
            try:
                _setup_status( self.models['orphans'], False )
                col_5.set_visible(True)
            except KeyError:
                main_win = self.gld.get_widget("main_win")
                main_win.window.set_cursor(Cursor(WATCH))
                self._statusbar('Searching for orphans Please wait...')
                gobject.idle_add(_setup_orphans_fork)
        
        # If selected repo is: foreigners, orphans or search then we deactivate combo_box_options
        elif selected_repo == 'foreigners' or selected_repo.startswith('Search'):
            combo_box_options.set_sensitive(False)
                    
            # Fetch search model
            if selected_repo.startswith('Search'):
                col_5.set_visible(True)
                pacs_model = self.models["search"]
                
            # Jump in if selected repo is foreigners
            else:
                pacs_model = self.models[ selected_repo ]
                pacs_tree.set_model(pacs_model)
                
            _setup_status(pacs_model, False)
            
        # Otherwise we check selected option from combo_box_options and 
        # fetch model appropriate to selected option
        else:
            combo_box_options.set_sensitive(True)
            selected_option = combo_box_options.get_active_text()
            
            if selected_option == 'explicitly installed':
                try:
                    pacs_model = self.models[ selected_repo ][ selected_option ]
                except KeyError:
                    self.database.set_reason(selected_repo)
                    self.models[ selected_repo ][ 'explicitly installed' ] = explicitly_list(self.database[ selected_repo ])
            
            pacs_model = self.models[ selected_repo ][ selected_option ]
            _setup_status(pacs_model)