From 148255a3007c6743e7e02b8fdd6e6598a2c4cee3 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Tue, 7 Nov 2006 13:02:40 +0000 Subject: re-enabled oneshot; fixes --- geneticone/gui/gtk/glade/geneticone.glade | 319 +++++++++++++++--------------- geneticone/gui/gtk/windows.py | 80 ++++---- geneticone/gui/gtk/wrapper.py | 28 +++ 3 files changed, 239 insertions(+), 188 deletions(-) (limited to 'geneticone/gui/gtk') diff --git a/geneticone/gui/gtk/glade/geneticone.glade b/geneticone/gui/gtk/glade/geneticone.glade index b9ce4cc..598ddce 100644 --- a/geneticone/gui/gtk/glade/geneticone.glade +++ b/geneticone/gui/gtk/glade/geneticone.glade @@ -33,6 +33,7 @@ True _Reload Portage True + @@ -222,74 +223,47 @@ 4 2 - + True - GTK_BUTTONBOX_SPREAD - - - True - _Emerge - True - - - - - - True - _Unmerge - True - - - - 1 - - + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC - + True - Re_vert - True - - - 2 - 2 - 3 - 4 + 2 + 3 + 5 - + True - True - <b>Installed, but not in portage anymore</b> - True + + + - 1 - 2 1 2 GTK_FILL - + True - True - <span foreground='red'><b>MISSING KEYWORD</b></span> - True + GTK_JUSTIFY_CENTER + True - 1 2 - 1 - 2 - GTK_FILL + GTK_FILL + GTK_EXPAND + 10 @@ -341,47 +315,74 @@ - + True - GTK_JUSTIFY_CENTER - True + True + <span foreground='red'><b>MISSING KEYWORD</b></span> + True + 1 2 - GTK_FILL - GTK_EXPAND - 10 + 1 + 2 + GTK_FILL - + True - - - + True + <b>Installed, but not in portage anymore</b> + True + 1 + 2 1 2 GTK_FILL - + True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + GTK_BUTTONBOX_SPREAD - + True + _Emerge + True + + + + True + _Unmerge + True + + + + 1 + + + + + True + Re_vert + True + + + + 2 + + 2 - 2 - 3 - 5 + 3 + 4 @@ -705,186 +706,186 @@ - + True + 0 + 5 + <u><i>Masking Keywords</i></u> + True + True - 1 - 2 - 3 - 4 + 7 + 8 + 5 - + True 0 - File name to use, if package.use is a directory: + 5 + <u><i>Testing Keywords</i></u> + True True - 3 - 4 + 4 + 5 + 5 - + True - Add only exact version to package.use - True + 0 + 5 + <u><i>Use-Flags</i></u> + True + True + + + 1 + 2 + 6 + + + + + True + + + True + 0 + GTK_SHADOW_OUT + + + True + 0 + <u>You may use the following placeholders:</u> + +<i>$(cat)</i>: category +<i>$(pkg)</i>: package name +<i>$(cat-1)/$(cat-2)</i>: first/second part of the category + True + + + + + + label_item + + + + 2 - 2 - 3 - + True - Add only exact version to package.keywords + Add only exact version to package.mask/package.unmask True 2 - 5 - 6 + 8 + 9 - + True 0 - File name to use, if package.keywords is a directory: + File name to use, if package.mask/package.unmask is a directory: True - 6 - 7 + 9 + 10 - + True 1 2 - 6 - 7 + 9 + 10 - + True 1 2 - 9 - 10 + 6 + 7 - + True 0 - File name to use, if package.mask/package.unmask is a directory: + File name to use, if package.keywords is a directory: True - 9 - 10 + 6 + 7 - + True - Add only exact version to package.mask/package.unmask + Add only exact version to package.keywords True 2 - 8 - 9 + 5 + 6 - + True - - - True - 0 - GTK_SHADOW_OUT - - - True - 0 - <u>You may use the following placeholders:</u> - -<i>$(cat)</i>: category -<i>$(pkg)</i>: package name -<i>$(cat-1)/$(cat-2)</i>: first/second part of the category - True - - - - - - label_item - - - - + Add only exact version to package.use + True 2 + 2 + 3 - - True - 0 - 5 - <u><i>Use-Flags</i></u> - True - True - - - 1 - 2 - 6 - - - - + True 0 - 5 - <u><i>Testing Keywords</i></u> - True + File name to use, if package.use is a directory: True - 4 - 5 - 5 + 3 + 4 - + True - 0 - 5 - <u><i>Masking Keywords</i></u> - True - True - 7 - 8 - 5 + 1 + 2 + 3 + 4 @@ -938,4 +939,14 @@ + + True + + + True + oneshot + + + + diff --git a/geneticone/gui/gtk/windows.py b/geneticone/gui/gtk/windows.py index c73394c..98bcba4 100644 --- a/geneticone/gui/gtk/windows.py +++ b/geneticone/gui/gtk/windows.py @@ -481,6 +481,8 @@ class PackageTable: self.actual_package().remove_new_masked() self.actual_package().remove_new_testing() self.cb_combo_changed(self.vCombo) + if self.instantChange: + self._update_keywords(True, update = True) return True def cb_package_emerge_clicked (self, button): @@ -612,8 +614,14 @@ class MainWindow (Window): self.packageTable = PackageTable(self) self.packageTable.table.hide_all() + # popup + popupTree = gtk.glade.XML(DATA_DIR+"geneticone.glade", root = "queuePopup") + popupTree.signal_autoconnect(self) + self.queuePopup = popupTree.get_widget("queuePopup") + # set emerge queue - self.queue = EmergeQueue(console = GtkConsole(term), tree = GtkTree(self.queueList.get_model()), db = self.db) + self.queueTree = GtkTree(self.queueList.get_model()) + self.queue = EmergeQueue(console = GtkConsole(term), tree = self.queueTree, db = self.db) def show_package (self, *args, **kwargs): self.packageTable.update(*args, **kwargs) @@ -706,12 +714,14 @@ class MainWindow (Window): def cb_row_activated (self, view, path, *args): """Callback for an activated row in the emergeQueue. Opens a package window.""" - store = view.get_model() + store = self.queueTree if len(path) > 1: - package = store.get_value(store.get_iter(path), 0) - cat, name, vers, rev = backend.split_package_name(package) - if rev != "r0": vers = vers+"-"+rev - self.show_package(cat+"/"+name, queue = self.queue, version = vers, instantChange = True, doEmerge = False) + iterator = store.get_original().get_iter(path) + if store.is_in_emerge(iterator): + package = store.get_value(iterator, 0) + cat, name, vers, rev = backend.split_package_name(package) + if rev != "r0": vers = vers+"-"+rev + self.show_package(cat+"/"+name, queue = self.queue, version = vers, instantChange = True, doEmerge = False) return True def cb_emerge_clicked (self, action): @@ -784,8 +794,11 @@ class MainWindow (Window): return True def cb_sync_clicked (self, action): - self.notebook.set_current_page(self.CONSOLE_PAGE) - self.queue.sync() + if not backend.am_i_root(): + not_root_dialog() + else: + self.notebook.set_current_page(self.CONSOLE_PAGE) + self.queue.sync() @Window.watch_cursor def cb_reload_clicked (self, action): @@ -818,34 +831,33 @@ class MainWindow (Window): return True def cb_queue_right_click (self, queue, event): - pass - # if event.button == 3: - # x = int(event.x) - # y = int(event.y) - # time = event.time - # pthinfo = queue.get_path_at_pos(x, y) - # if pthinfo is not None: - # path, col, cellx, celly = pthinfo - # queue.grab_focus() - # queue.set_cursor(path, col, 0) - # self.queuePopup.popup(None, None, None, event.button, time) - # return True - # else: - # return False + if event.button == 3: + x = int(event.x) + y = int(event.y) + time = event.time + pthinfo = queue.get_path_at_pos(x, y) + if pthinfo is not None: + path, col, cellx, celly = pthinfo + if self.queueTree.is_in_emerge(self.queueTree.get_original().get_iter(path)): + queue.grab_focus() + queue.set_cursor(path, col, 0) + self.queuePopup.popup(None, None, None, event.button, time) + return True + else: + return False def cb_oneshot_clicked (self, action): - pass - # sel = self.queueList.get_selection() - # store, it = sel.get_selected() - # if it: - # package = store.get_value(it, 0) - # if not self.cfg.get_local(package, self.cfg.const["oneshot_opt"]): - # set = True - # else: - # set = False - # - # self.cfg.set_local(package, self.cfg.const["oneshot_opt"], set) - # self.queue.append(package, update = True, oneshot = set, forceUpdate = True) + sel = self.queueList.get_selection() + store, it = sel.get_selected() + if it: + package = store.get_value(it, 0) + if not self.cfg.get_local(package, self.cfg.const["oneshot_opt"]): + set = True + else: + set = False + + self.cfg.set_local(package, self.cfg.const["oneshot_opt"], set) + self.queue.append(package, update = True, oneshot = set, forceUpdate = True) def cb_destroy (self, widget): """Calls main_quit().""" diff --git a/geneticone/gui/gtk/wrapper.py b/geneticone/gui/gtk/wrapper.py index 6f3cdd8..7597a8a 100644 --- a/geneticone/gui/gtk/wrapper.py +++ b/geneticone/gui/gtk/wrapper.py @@ -25,6 +25,34 @@ class GtkTree (Tree): self.tree = tree self.cpv_col = col + self.emergeIt = self.append(None, ["Emerge", ""]) + self.unmergeIt = self.append(None, ["Unmerge", ""]) + + def build_append_value (self, cpv, oneshot = False, update = False, version = None): + string = "" + + if oneshot: + string += "oneshot" + if update: string += "; " + + if update: + string += "updating" + if version != None: + string += " from version %s" % version + + return [cpv, string] + + def get_emerge_it (self): + return self.emergeIt + + def get_unmerge_it (self): + return self.unmergeIt + + def is_in_emerge (self, it): + return self.get_path_from_iter(it).split(":")[0] == self.get_path_from_iter(self.emergeIt) + + def is_in_unmerge (self, it): + return self.get_path_from_iter(it).split(":")[0] == self.get_path_from_iter(self.unmergeIt) def iter_has_parent (self, it): return (self.tree.iter_parent(it) != None) -- cgit v1.2.3-70-g09d2