diff options
-rw-r--r-- | portato/gui/qt/windows.py | 23 | ||||
-rw-r--r-- | portato/gui/templates/ui/UpdateDialog.ui | 23 |
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> |