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)
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)