Tue, 05 Feb 2019 19:58:26 +0100
Conda, CondaPackagesWidget: continued implementing list 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 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | 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
|
18 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import UI.PixmapCache |
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 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | class CondaPackagesWidget(QWidget, Ui_CondaPackagesWidget): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | 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
|
25 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
26 | 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
|
27 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Constructor |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
30 | @param conda reference to the conda interface |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
31 | @type Conda |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @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
|
33 | @type QWidget |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | super(CondaPackagesWidget, self).__init__(parent) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | self.setupUi(self) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
38 | self.__conda = conda |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
39 | |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.condaMenuButton.setObjectName( |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | "navigation_supermenu_button") |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | 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
|
43 | 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
|
44 | self.condaMenuButton.setPopupMode(QToolButton.InstantPopup) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.condaMenuButton.setToolButtonStyle(Qt.ToolButtonIconOnly) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.condaMenuButton.setFocusPolicy(Qt.NoFocus) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.condaMenuButton.setAutoRaise(True) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.condaMenuButton.setShowMenuInside(True) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__initCondaMenu() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__populateEnvironments() |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
52 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | def __populateEnvironments(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | 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
|
57 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
58 | # TODO: populate with name and prefix |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
59 | environmentNames = [""] + self.__conda.getCondaEnvironmentsList() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.environmentsComboBox.addItems(sorted(environmentNames)) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | def __initCondaMenu(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | 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
|
65 | menu button. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.__condaMenu = QMenu(self) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | # TODO: implement Conda menu |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.__condaMenu.addAction(self.tr("Test Entry"), self.on_refreshButton_clicked) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.condaMenuButton.setMenu(self.__condaMenu) |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
73 | def __selectedUpdateableItems(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
74 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
75 | 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
|
76 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
77 | @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
|
78 | @rtype list of QTreeWidgetItem |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
79 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
80 | return [ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
81 | itm for itm in self.packagesList.selectedItems() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
82 | if bool(itm.text(2)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
83 | ] |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
84 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
85 | def __allUpdateableItems(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
86 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
87 | 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
|
88 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
89 | @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
|
90 | @rtype list of QTreeWidgetItem |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
92 | updateableItems = [] |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
93 | for index in range(self.packagesList.topLevelItemCount()): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
94 | itm = self.packagesList.topLevelItem(index) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
95 | if itm.text(2): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
96 | updateableItems.append(itm) |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
98 | return updateableItems |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
99 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
100 | def __updateActionButtons(self): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
101 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
102 | 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
|
103 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
104 | self.upgradeButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
105 | bool(self.__selectedUpdateableItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
106 | self.uninstallButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
107 | bool(self.packagesList.selectedItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
108 | self.upgradeAllButton.setEnabled( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
109 | bool(self.__allUpdateableItems())) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
110 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
111 | # TODO: change to int = index |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
112 | @pyqtSlot(str) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
113 | def on_environmentsComboBox_currentIndexChanged(self, name): |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
114 | """ |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
115 | 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
|
116 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
117 | @param name name of the selected conda environment name |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @type str |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
120 | self.packagesList.clear() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
121 | if name: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
122 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
123 | QApplication.processEvents() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
124 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
125 | # 1. populate with installed packages |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
126 | # TODO: use prefix |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
127 | installedPackages = self.__conda.getInstalledPackages(name=name) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
128 | for package, version, build_ in installedPackages: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
129 | QTreeWidgetItem(self.packagesList, [package, version]) |
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 | # 2. update with update information |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
132 | updateablePackages = self.__conda.getUpdateablePackages(name=name) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
133 | for package, version, build_ in updateablePackages: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
134 | items = self.packagesList.findItems( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
135 | package, Qt.MatchExactly | Qt.MatchCaseSensitive) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
136 | if items: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
137 | items[0].setText(2, version) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
138 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
139 | QApplication.restoreOverrideCursor() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
140 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
141 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | def on_packagesList_itemSelectionChanged(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
146 | 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
|
147 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
148 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | def on_refreshButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
153 | 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
|
154 | """ |
6701
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
155 | currentEnvironment = self.environmentsComboBox.currentText() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
156 | self.environmentsComboBox.clear() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
157 | self.packagesList.clear() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
158 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
159 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
160 | QApplication.processEvents() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
161 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
162 | self.__populateEnvironments() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
163 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
164 | index = self.environmentsComboBox.findText( |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
165 | currentEnvironment, Qt.MatchExactly | Qt.MatchCaseSensitive) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
166 | if index != -1: |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
167 | self.environmentsComboBox.setCurrentIndex(index) |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
168 | |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
169 | QApplication.restoreOverrideCursor() |
af29cf6ca309
Conda, CondaPackagesWidget: continued implementing list functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6698
diff
changeset
|
170 | self.__updateActionButtons() |
6698
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | def on_upgradeButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | Slot documentation goes here. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | # TODO: not implemented yet |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | raise NotImplementedError |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | def on_upgradeAllButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | Slot documentation goes here. |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | # TODO: not implemented yet |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | raise NotImplementedError |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | @pyqtSlot() |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | def on_uninstallButton_clicked(self): |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | """ |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | Slot documentation goes here. |
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 | # TODO: not implemented yet |
bc5aa4cda1ee
Conda: started to implement the Conda Packages Manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | raise NotImplementedError |