Sat, 09 Feb 2019 16:43:49 +0100
Conda: implemented the package search and 'Show Details' functionality.
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the conda packages management widget. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from __future__ import unicode_literals |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt5.QtCore import pyqtSlot, Qt |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
13 | from PyQt5.QtGui import QCursor |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
14 | from PyQt5.QtWidgets import QWidget, QToolButton, QMenu, QTreeWidgetItem, \ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
15 | QApplication |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
17 | from E5Gui import E5MessageBox |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
18 | |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import UI.PixmapCache |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
23 | import CondaInterface |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
24 | |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class CondaPackagesWidget(QWidget, Ui_CondaPackagesWidget): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing the conda packages management widget. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
30 | # Role definition of packages list |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
31 | PackageVersionRole = Qt.UserRole + 1 |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
32 | PackageBuildRole = Qt.UserRole + 2 |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
33 | |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
34 | # Role definitions of search results list |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
35 | PackageDetailedDataRole = Qt.UserRole + 1 |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
36 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
37 | def __init__(self, conda, parent=None): |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | Constructor |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
41 | @param conda reference to the conda interface |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
42 | @type Conda |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @param parent reference to the parent widget |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @type QWidget |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | super(CondaPackagesWidget, self).__init__(parent) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.setupUi(self) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
49 | self.__conda = conda |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
50 | |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.condaMenuButton.setObjectName( |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | "navigation_supermenu_button") |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.condaMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu.png")) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.condaMenuButton.setToolTip(self.tr("Conda Menu")) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.condaMenuButton.setPopupMode(QToolButton.InstantPopup) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.condaMenuButton.setToolButtonStyle(Qt.ToolButtonIconOnly) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.condaMenuButton.setFocusPolicy(Qt.NoFocus) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.condaMenuButton.setAutoRaise(True) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.condaMenuButton.setShowMenuInside(True) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
61 | self.searchToggleButton.setIcon(UI.PixmapCache.getIcon("find.png")) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
62 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
63 | if CondaInterface.condaVersion() >= (4, 4, 0): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
64 | self.searchOptionsWidget.hide() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
65 | else: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
66 | self.platformComboBox.addItems(sorted([ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
67 | "", "win-32", "win-64", "osx-64", "linux-32", "linux-64", |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
68 | ])) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
69 | |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.__initCondaMenu() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.__populateEnvironments() |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
72 | self.__updateActionButtons() |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
73 | |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
74 | self.searchWidget.hide() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
75 | |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
76 | self.__conda.condaEnvironmentCreated.connect( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
77 | self.on_refreshButton_clicked) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
78 | self.__conda.condaEnvironmentRemoved.connect( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
79 | self.on_refreshButton_clicked) |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | def __populateEnvironments(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | Private method to get a list of environments and populate the selector. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | """ |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
85 | environments = [("", "")] + sorted( |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
86 | self.__conda.getCondaEnvironmentsList()) |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
87 | for environment in environments: |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
88 | self.environmentsComboBox.addItem(environment[0], environment[1]) |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | def __initCondaMenu(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | Private method to create the super menu and attach it to the super |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | menu button. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__condaMenu = QMenu(self) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | # TODO: implement Conda menu |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
97 | self.__condaMenu.addAction(self.tr("Test Entry"), |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
98 | self.on_refreshButton_clicked) |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self.condaMenuButton.setMenu(self.__condaMenu) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
102 | def __selectedUpdateableItems(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
103 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
104 | Private method to get a list of selected items that can be updated. |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
105 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
106 | @return list of selected items that can be updated |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
107 | @rtype list of QTreeWidgetItem |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
108 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
109 | return [ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
110 | itm for itm in self.packagesList.selectedItems() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
111 | if bool(itm.text(2)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
112 | ] |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
113 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
114 | def __allUpdateableItems(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
115 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
116 | Private method to get a list of all items that can be updated. |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
117 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
118 | @return list of all items that can be updated |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
119 | @rtype list of QTreeWidgetItem |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
121 | updateableItems = [] |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
122 | for index in range(self.packagesList.topLevelItemCount()): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
123 | itm = self.packagesList.topLevelItem(index) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
124 | if itm.text(2): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
125 | updateableItems.append(itm) |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
127 | return updateableItems |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
128 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
129 | def __updateActionButtons(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
130 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
131 | Private method to set the state of the action buttons. |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
132 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
133 | self.upgradeButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
134 | bool(self.__selectedUpdateableItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
135 | self.uninstallButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
136 | bool(self.packagesList.selectedItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
137 | self.upgradeAllButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
138 | bool(self.__allUpdateableItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
139 | |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
140 | @pyqtSlot(int) |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
141 | def on_environmentsComboBox_currentIndexChanged(self, index): |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
142 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
143 | Private slot handling the selection of a conda environment. |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
144 | |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
145 | @param index index of the selected conda environment |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
146 | @type int |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
148 | self.packagesList.clear() |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
149 | prefix = self.environmentsComboBox.itemData(index) |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
150 | if prefix: |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
151 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
152 | QApplication.processEvents() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
153 | |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
154 | self.packagesList.setUpdatesEnabled(False) |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
155 | # 1. populate with installed packages |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
156 | installedPackages = \ |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
157 | self.__conda.getInstalledPackages(prefix=prefix) |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
158 | for package, version, build in installedPackages: |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
159 | itm = QTreeWidgetItem(self.packagesList, [package, version]) |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
160 | itm.setData(1, self.PackageVersionRole, version) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
161 | itm.setData(1, self.PackageBuildRole, build) |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
162 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
163 | # 2. update with update information |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
164 | updateablePackages = \ |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
165 | self.__conda.getUpdateablePackages(prefix=prefix) |
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
166 | for package, version, build in updateablePackages: |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
167 | items = self.packagesList.findItems( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
168 | package, Qt.MatchExactly | Qt.MatchCaseSensitive) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
169 | if items: |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
170 | itm = items[0] |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
171 | itm.setText(2, version) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
172 | itm.setData(2, self.PackageVersionRole, version) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
173 | itm.setData(2, self.PackageBuildRole, build) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
174 | if itm.data(1, self.PackageVersionRole) == version: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
175 | # build must be different, show in version display |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
176 | itm.setText(1, self.tr("{0} (Build: {1})").format( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
177 | itm.data(1, self.PackageVersionRole), |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
178 | itm.data(1, self.PackageBuildRole), |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
179 | )) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
180 | itm.setText(2, self.tr("{0} (Build: {1})").format( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
181 | itm.data(2, self.PackageVersionRole), |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
182 | itm.data(2, self.PackageBuildRole), |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
183 | )) |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
184 | |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
185 | self.packagesList.sortItems(0, Qt.AscendingOrder) |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
186 | self.packagesList.resizeColumnToContents(0) |
6705
8cf1c3851b5c
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6701
diff
changeset
|
187 | self.packagesList.setUpdatesEnabled(True) |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
188 | QApplication.restoreOverrideCursor() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
189 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
190 | self.__updateActionButtons() |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
191 | self.__updateSearchActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | def on_packagesList_itemSelectionChanged(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
196 | Private slot to handle the selection of some items.. |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
198 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | def on_refreshButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
203 | Private slot to refresh the display. |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
205 | currentEnvironment = self.environmentsComboBox.currentText() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
206 | self.environmentsComboBox.clear() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
207 | self.packagesList.clear() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
208 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
209 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
210 | QApplication.processEvents() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
211 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
212 | self.__populateEnvironments() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
213 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
214 | index = self.environmentsComboBox.findText( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
215 | currentEnvironment, Qt.MatchExactly | Qt.MatchCaseSensitive) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
216 | if index != -1: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
217 | self.environmentsComboBox.setCurrentIndex(index) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
218 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
219 | QApplication.restoreOverrideCursor() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
220 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | def on_upgradeButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
225 | Private slot to upgrade selected packages of the selected environment. |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
227 | packages = [itm.text(0) for itm in self.__selectedUpdateableItems()] |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
228 | if packages: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
229 | prefix = self.environmentsComboBox.itemData( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
230 | self.environmentsComboBox.currentIndex()) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
231 | ok = self.__conda.updatePackages(packages, prefix=prefix) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
232 | if ok: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
233 | self.on_refreshButton_clicked() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | def on_upgradeAllButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
238 | Private slot to upgrade all packages of the selected environment. |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
240 | prefix = self.environmentsComboBox.itemData( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
241 | self.environmentsComboBox.currentIndex()) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
242 | ok = self.__conda.updateAllPackages(prefix=prefix) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
243 | if ok: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
244 | self.on_refreshButton_clicked() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | def on_uninstallButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
249 | Private slot to remove selected packages of the selected environment. |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
6706
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
251 | packages = [itm.text(0) for itm in self.packagesList.selectedItems()] |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
252 | if packages: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
253 | prefix = self.environmentsComboBox.itemData( |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
254 | self.environmentsComboBox.currentIndex()) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
255 | ok = self.__conda.uninstallPackages(packages, prefix=prefix) |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
256 | if ok: |
d792e054cde2
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6705
diff
changeset
|
257 | self.on_refreshButton_clicked() |
6712
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
258 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
259 | ####################################################################### |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
260 | ## Search widget related methods below |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
261 | ####################################################################### |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
262 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
263 | def __updateSearchActionButtons(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
264 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
265 | Private method to update the action button states of the search widget. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
266 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
267 | enable = len(self.searchResultList.selectedItems()) == 1 |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
268 | self.installButton.setEnabled( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
269 | enable and self.environmentsComboBox.currentIndex() > 0) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
270 | self.showDetailsButton.setEnabled( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
271 | enable and bool(self.searchResultList.selectedItems()[0].parent())) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
272 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
273 | def __doSearch(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
274 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
275 | Private method to search for packages. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
276 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
277 | self.searchResultList.clear() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
278 | pattern = self.searchEdit.text() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
279 | if pattern: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
280 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
281 | QApplication.processEvents() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
282 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
283 | prefix = self.environmentsComboBox.itemData( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
284 | self.environmentsComboBox.currentIndex()) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
285 | ok, result = self.__conda.searchPackages( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
286 | pattern, |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
287 | fullNameOnly=self.fullNameButton.isChecked(), |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
288 | packageSpec=self.packageSpecButton.isChecked(), |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
289 | platform=self.platformComboBox.currentText(), |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
290 | prefix=prefix, |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
291 | ) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
292 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
293 | if result: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
294 | if ok: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
295 | self.searchResultList.setUpdatesEnabled(False) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
296 | for package in result: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
297 | itm = QTreeWidgetItem(self.searchResultList, [package]) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
298 | itm.setExpanded(False) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
299 | for detail in result[package]: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
300 | version = detail["version"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
301 | build = detail["build"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
302 | if "subdir" in detail: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
303 | platform = detail["subdir"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
304 | elif "platform" in detail: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
305 | platform = detail["platform"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
306 | else: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
307 | platform = "" |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
308 | citm = QTreeWidgetItem( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
309 | itm, ["", version, build, platform]) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
310 | citm.setData(0, self.PackageDetailedDataRole, |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
311 | detail) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
312 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
313 | self.searchResultList.sortItems(0, Qt.AscendingOrder) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
314 | self.searchResultList.resizeColumnToContents(0) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
315 | self.searchResultList.setUpdatesEnabled(True) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
316 | else: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
317 | QApplication.restoreOverrideCursor() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
318 | try: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
319 | message = result["message"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
320 | except KeyError: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
321 | message = result["error"] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
322 | E5MessageBox.warning( |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
323 | self, |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
324 | self.tr("Conda Search Package Error"), |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
325 | message) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
326 | QApplication.restoreOverrideCursor() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
327 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
328 | def __showDetails(self, item): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
329 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
330 | Private method to show a dialog with details about a package item. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
331 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
332 | @param item reference to the package item |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
333 | @type QTreeWidgetItem |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
334 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
335 | details = item.data(0, self.PackageDetailedDataRole) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
336 | if details: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
337 | from .CondaPackageDetailsWidget import CondaPackageDetailsDialog |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
338 | dlg = CondaPackageDetailsDialog(details, self) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
339 | dlg.show() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
340 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
341 | @pyqtSlot(str) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
342 | def on_searchEdit_textChanged(self, txt): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
343 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
344 | Private slot handling changes of the entered search specification. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
345 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
346 | @param txt current search entry |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
347 | @type str |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
348 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
349 | self.searchButton.setEnabled(bool(txt)) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
350 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
351 | @pyqtSlot() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
352 | def on_searchEdit_returnPressed(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
353 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
354 | Private slot handling the user pressing the Return button in the |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
355 | search edit. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
356 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
357 | self.__doSearch() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
358 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
359 | @pyqtSlot() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
360 | def on_searchButton_clicked(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
361 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
362 | Private slot handling the press of the search button. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
363 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
364 | self.__doSearch() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
365 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
366 | @pyqtSlot() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
367 | def on_installButton_clicked(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
368 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
369 | Slot documentation goes here. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
370 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
371 | # TODO: not implemented yet |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
372 | raise NotImplementedError |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
373 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
374 | @pyqtSlot() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
375 | def on_showDetailsButton_clicked(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
376 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
377 | Private slot handling the 'Show Details' button. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
378 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
379 | item = self.searchResultList.selectedItems()[0] |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
380 | self.__showDetails(item) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
381 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
382 | @pyqtSlot() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
383 | def on_searchResultList_itemSelectionChanged(self): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
384 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
385 | Private slot handling a change of selected search results. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
386 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
387 | self.__updateSearchActionButtons() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
388 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
389 | @pyqtSlot(QTreeWidgetItem) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
390 | def on_searchResultList_itemExpanded(self, item): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
391 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
392 | Private slot handling the expansion of an item. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
393 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
394 | @param item reference to the expanded item |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
395 | @type QTreeWidgetItem |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
396 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
397 | for col in range(1, self.searchResultList.columnCount()): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
398 | self.searchResultList.resizeColumnToContents(col) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
399 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
400 | @pyqtSlot(QTreeWidgetItem, int) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
401 | def on_searchResultList_itemDoubleClicked(self, item, column): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
402 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
403 | Private slot handling a double click of an item. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
404 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
405 | @param item reference to the item that was double clicked |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
406 | @type QTreeWidgetItem |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
407 | @param column column of the double click |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
408 | @type int |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
409 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
410 | if item.parent() is not None: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
411 | self.__showDetails(item) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
412 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
413 | @pyqtSlot(bool) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
414 | def on_searchToggleButton_toggled(self, checked): |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
415 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
416 | Private slot to togle the search widget. |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
417 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
418 | @param checked state of the search widget button |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
419 | @type bool |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
420 | """ |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
421 | self.searchWidget.setVisible(checked) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
422 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
423 | if checked: |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
424 | self.searchEdit.setFocus(Qt.OtherFocusReason) |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
425 | self.searchEdit.selectAll() |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
426 | |
91fa67e8ebbc
Conda: implemented the package search and 'Show Details' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6706
diff
changeset
|
427 | self.__updateSearchActionButtons() |