summaryrefslogtreecommitdiff
path: root/portato/gui/qt/windows.py
diff options
context:
space:
mode:
Diffstat (limited to 'portato/gui/qt/windows.py')
-rw-r--r--portato/gui/qt/windows.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/portato/gui/qt/windows.py b/portato/gui/qt/windows.py
index 3996563..2f8e3f9 100644
--- a/portato/gui/qt/windows.py
+++ b/portato/gui/qt/windows.py
@@ -151,8 +151,11 @@ class UpdateDialog (Window):
self.jump = jump_to
self.packages = system.sort_package_list(packages)
+ self.items = []
for p in self.packages:
- Qt.QListWidgetItem(p.get_cpv(), self.packageList)
+ item = Qt.QListWidgetItem(p.get_cpv(), self.packageList)
+ item.setCheckState(qCheck(False))
+ self.items.append(item)
self.adjustSize()
@@ -163,22 +166,30 @@ class UpdateDialog (Window):
self.jump(pkg.get_cp(), pkg.get_version())
@Qt.pyqtSignature("")
- def on_installAllBtn_clicked (self):
+ def on_installBtn_clicked (self):
world = [x.get_cp() for x in system.find_all_world_packages()]
- for p in self.packages:
- not_in_world = p.get_cp() not in world
+ for item in [x for x in self.items if qIsChecked(x.checkState())]:
+ cpv = str(item.text())
+ cp = "/".join(system.split_cpv(cpv)[:2])
+ not_in_world = cp not in world
+
try:
try:
- self.queue.append(p.get_cpv(), unmerge = False, oneshot = not_in_world)
+ self.queue.append(cpv, unmerge = False, oneshot = not_in_world)
except PackageNotFoundException, e:
if unmask_dialog(self, e[0]) == Qt.QMessageBox.Yes :
- self.queue.append(p.get_cpv(), unmerge = False, unmask = True, oneshot = not_in_world)
+ self.queue.append(cpv, unmerge = False, unmask = True, oneshot = not_in_world)
except BlockedException, e:
blocked_dialog(self, e[0], e[1])
self.accept()
+ @Qt.pyqtSignature("")
+ def on_selectAllBtn_clicked (self):
+ for item in self.items:
+ item.setCheckState(qCheck(True))
+
class EbuildDialog (Window):
"""Window showing an ebuild."""
__metaclass__ = WindowMeta