From 9c62e1535b7973d534ad6b82f287dd522f8d50a0 Mon Sep 17 00:00:00 2001
From: necoro <>
Date: Sat, 23 Jun 2007 01:25:41 +0000
Subject: added updatable dialog also for gtk
---
portato/gui/gtk/windows.py | 95 ++++++-
portato/gui/qt/windows.py | 2 +-
portato/gui/templates/portato.glade | 482 +++++++++++++++++++++---------------
3 files changed, 380 insertions(+), 199 deletions(-)
(limited to 'portato/gui')
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 6141ee4..6303179 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -140,6 +140,92 @@ Icon created by P4R4D0X
self.window.show_all()
+class UpdateWindow (AbstractDialog):
+
+ def __init__ (self, parent, packages, queue, jump_to):
+ AbstractDialog.__init__(self, parent)
+
+ self.queue = queue
+ self.jump = jump_to
+
+ self.packages = system.sort_package_list(packages)
+
+ self.build_list()
+
+ self.window.show_all()
+
+ def build_list (self):
+
+ store = gtk.ListStore(bool, str)
+ self.view = self.tree.get_widget("packageList")
+ self.view.set_model(store)
+
+ cell = gtk.CellRendererText()
+ tCell = gtk.CellRendererToggle()
+ tCell.set_property("activatable", True)
+ tCell.connect("toggled", self.cb_check_toggled) # emulate the normal toggle behavior ...
+
+ self.view.append_column(gtk.TreeViewColumn("Enabled", tCell, active = 0))
+ self.view.append_column(gtk.TreeViewColumn("Package", cell, text = 1))
+
+ for p in self.packages:
+ store.append([False, p.get_cpv()])
+
+ def cb_select_all_clicked (self, btn):
+ model = self.view.get_model()
+ iter = model.get_iter_first()
+
+ while iter:
+ model.set_value(iter, 0, True)
+ iter = model.iter_next(iter)
+
+ return True
+
+ def cb_install_clicked (self, btn):
+ model = self.view.get_model()
+ iter = model.get_iter_first()
+ if iter is None: return
+
+ items = []
+ while iter:
+ if model.get_value(iter, 0):
+ items.append(model.get_value(iter, 1))
+ iter = model.iter_next(iter)
+
+ world = [x.get_cp() for x in system.find_all_world_packages()]
+ for item in items:
+ cp = "/".join(system.split_cpv(item)[:2])
+ not_in_world = cp not in world
+ try:
+ try:
+ self.queue.append(item, unmerge = False, oneshot = not_in_world)
+ except PackageNotFoundException, e:
+ if unmask_dialog(e[0]) == gtk.RESPONSE_YES :
+ self.queue.append(item, unmerge = False, unmask = True, oneshot = not_in_world)
+
+ except BlockedException, e:
+ blocked_dialog(e[0], e[1])
+
+ self.close()
+ return True
+
+ def cb_package_selected (self, view):
+ sel = view.get_selection()
+ store, it = sel.get_selected()
+ if it:
+ package = system.new_package(store.get_value(it, 1))
+
+ self.jump(package.get_cp(), package.get_version())
+
+ return True
+
+ def cb_check_toggled (self, cell, path):
+ # for whatever reason we have to define normal toggle behavior explicitly
+ store = self.view.get_model()
+ store[path][0] = not store[path][0]
+ return True
+
+
class SearchWindow (AbstractDialog):
"""A window showing the results of a search process."""
@@ -918,9 +1004,9 @@ class MainWindow (Window):
store.append([pkg, icon])
return store
- def jump_to (self, cp):
+ def jump_to (self, cp, version = None):
"""Is called when we want to jump to a specific package."""
- self.show_package(cp, self.queue)
+ self.show_package(cp, self.queue, version = version)
def title_update (self, title):
@@ -1124,6 +1210,11 @@ class MainWindow (Window):
AboutWindow(self.window, queue)
return True
+ @Window.watch_cursor
+ def cb_show_updates_clicked (self, button):
+ UpdateWindow(self.window, system.get_updated_packages(), self.queue, self.jump_to)
+ return True
+
def cb_right_click (self, object, event):
if event.button == 3:
x = int(event.x)
diff --git a/portato/gui/qt/windows.py b/portato/gui/qt/windows.py
index 2f8e3f9..f3fcef6 100644
--- a/portato/gui/qt/windows.py
+++ b/portato/gui/qt/windows.py
@@ -141,7 +141,7 @@ class SearchDialog (Window):
self.jumpTo(s)
class UpdateDialog (Window):
- """Dialog showing updateble packages."""
+ """Dialog showing updatable packages."""
__metaclass__ = WindowMeta
def __init__ (self, parent, packages, queue, jump_to):
diff --git a/portato/gui/templates/portato.glade b/portato/gui/templates/portato.glade
index d66481f..c25298a 100644
--- a/portato/gui/templates/portato.glade
+++ b/portato/gui/templates/portato.glade
@@ -128,6 +128,15 @@
+
+
+
@@ -1084,189 +1093,189 @@
-
+
True
- 0
- 5
- <u><i>Masking Keywords</i></u>
- True
- True
- 7
- 8
- 5
-
-
-
-
- True
- 0
- 5
- <u><i>Testing Keywords</i></u>
- True
- True
-
-
- 4
- 5
- 5
+ 1
+ 2
+ 3
+ 4
-
+
True
0
- 5
- <u><i>Use-Flags</i></u>
- True
+ File name to use, if package.use is a directory:
True
- 1
- 2
- 6
+ 3
+ 4
-
+
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
+ 0
+ True
2
+ 2
+ 3
-
+
True
- Add only exact version to package.mask/package.unmask
+ Add only exact version to package.keywords
0
True
2
- 8
- 9
+ 5
+ 6
-
+
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
1
2
- 9
- 10
+ 6
+ 7
-
+
True
1
2
- 6
- 7
+ 9
+ 10
-
+
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
- Add only exact version to package.keywords
+ Add only exact version to package.mask/package.unmask
0
True
2
- 5
- 6
+ 8
+ 9
-
+
True
- Add only exact version to package.use
- 0
- 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
0
- File name to use, if package.use is a directory:
+ 5
+ <u><i>Use-Flags</i></u>
+ True
True
- 3
- 4
+ 1
+ 2
+ 6
-
+
True
+ 0
+ 5
+ <u><i>Testing Keywords</i></u>
+ True
+ True
- 1
- 2
- 3
- 4
+ 4
+ 5
+ 5
+
+
+
+
+ True
+ 0
+ 5
+ <u><i>Masking Keywords</i></u>
+ True
+ True
+
+
+ 7
+ 8
+ 5
@@ -1490,4 +1499,85 @@
+
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ Updateble Packages
+ GTK_WIN_POS_CENTER
+ True
+ True
+ True
+ True
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+
+
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ False
+ True
+ True
+
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ True
+ GTK_BUTTONBOX_SPREAD
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ _Close
+ True
+ 0
+
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ Select _All
+ True
+ 0
+
+
+
+ 1
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ _Install Selected
+ True
+ 0
+
+
+
+ 2
+
+
+
+
+ False
+ 1
+
+
+
+
+
--
cgit v1.2.3-54-g00ecf