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 @@
+
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