summaryrefslogtreecommitdiff
path: root/portato
diff options
context:
space:
mode:
Diffstat (limited to 'portato')
-rw-r--r--portato/gui/qt/windows.py23
-rw-r--r--portato/gui/templates/ui/UpdateDialog.ui23
2 files changed, 36 insertions, 10 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
diff --git a/portato/gui/templates/ui/UpdateDialog.ui b/portato/gui/templates/ui/UpdateDialog.ui
index b783182..a602dae 100644
--- a/portato/gui/templates/ui/UpdateDialog.ui
+++ b/portato/gui/templates/ui/UpdateDialog.ui
@@ -41,7 +41,7 @@
<widget class="QPushButton" name="closeBtn" >
<property name="sizePolicy" >
<sizepolicy>
- <hsizetype>1</hsizetype>
+ <hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
@@ -53,17 +53,32 @@
</widget>
</item>
<item>
- <widget class="QPushButton" name="installAllBtn" >
+ <widget class="QPushButton" name="selectAllBtn" >
<property name="sizePolicy" >
<sizepolicy>
- <hsizetype>1</hsizetype>
+ <hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" >
- <string>Install all</string>
+ <string>Select All</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="installBtn" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Install Selected</string>
</property>
</widget>
</item>