Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7910
diff
changeset
|
3 | # Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to manage the list of defined virtual |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | environments. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from PyQt5.QtCore import pyqtSlot, Qt |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QHeaderView |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
14 | from E5Gui.E5PathPicker import E5PathPickerModes |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
15 | |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from .Ui_VirtualenvManagerDialog import Ui_VirtualenvManagerDialog |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
18 | import Utilities |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
19 | |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | class VirtualenvManagerDialog(QDialog, Ui_VirtualenvManagerDialog): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | Class implementing a dialog to manage the list of defined virtual |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | environments. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
26 | IsGlobalRole = Qt.ItemDataRole.UserRole + 1 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
27 | IsCondaRole = Qt.ItemDataRole.UserRole + 2 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
28 | IsRemoteRole = Qt.ItemDataRole.UserRole + 3 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
29 | ExecPathRole = Qt.ItemDataRole.UserRole + 4 |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
30 | |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | def __init__(self, manager, parent=None): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | Constructor |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @param manager reference to the virtual environment manager |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @type VirtualenvManager |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @param parent reference to the parent widget |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @type QWidget |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | super(VirtualenvManagerDialog, self).__init__(parent) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | self.setupUi(self) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.__manager = manager |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
45 | baseDir = self.__manager.getVirtualEnvironmentsBaseDir() |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
46 | if not baseDir: |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
47 | baseDir = Utilities.getHomeDir() |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
48 | |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
49 | self.envBaseDirectoryPicker.setMode(E5PathPickerModes.DirectoryMode) |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
50 | self.envBaseDirectoryPicker.setWindowTitle( |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
51 | self.tr("Virtualenv Base Directory")) |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
52 | self.envBaseDirectoryPicker.setText(baseDir) |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
53 | |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__populateVenvList() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__updateButtons() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
57 | self.venvList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | def __updateButtons(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | Private method to update the enabled state of the various buttons. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | selectedItemsCount = len(self.venvList.selectedItems()) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | topLevelItemCount = self.venvList.topLevelItemCount() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
66 | deletableSelectedItemCount = 0 |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
67 | for itm in self.venvList.selectedItems(): |
7259
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
68 | if ( |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
69 | itm.text(0) != "<default>" and |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
70 | bool(itm.text(1)) and |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
71 | not itm.data(0, VirtualenvManagerDialog.IsGlobalRole) and |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
72 | not itm.data(0, VirtualenvManagerDialog.IsRemoteRole) |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
73 | ): |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
74 | deletableSelectedItemCount += 1 |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
75 | |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
76 | deletableItemCount = 0 |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
77 | for index in range(topLevelItemCount): |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
78 | itm = self.venvList.topLevelItem(index) |
7259
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
79 | if ( |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
80 | itm.text(0) != "<default>" and |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
81 | bool(itm.text(1)) and |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
82 | not itm.data(0, VirtualenvManagerDialog.IsRemoteRole) |
7c017076c12e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
83 | ): |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
84 | deletableItemCount += 1 |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
85 | |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
86 | canBeRemoved = ( |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | selectedItemsCount == 1 and |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.venvList.selectedItems()[0].text(0) != "<default>" |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | ) |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
90 | canAllBeRemoved = ( |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | topLevelItemCount == 1 and |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | self.venvList.topLevelItem(0).text(0) != "<default>" |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | ) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.editButton.setEnabled(selectedItemsCount == 1) |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
96 | |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
97 | self.removeButton.setEnabled(selectedItemsCount > 1 or canBeRemoved) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | self.removeAllButton.setEnabled( |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
99 | topLevelItemCount > 1 or canAllBeRemoved) |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
100 | |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
101 | self.deleteButton.setEnabled(deletableSelectedItemCount) |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
102 | self.deleteAllButton.setEnabled(deletableItemCount) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def on_addButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | Private slot to add a new entry. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | from .VirtualenvAddEditDialog import VirtualenvAddEditDialog |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
110 | dlg = VirtualenvAddEditDialog( |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
111 | self.__manager, |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
112 | baseDir=self.envBaseDirectoryPicker.text() |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
113 | ) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
114 | if dlg.exec() == QDialog.DialogCode.Accepted: |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
115 | (venvName, venvDirectory, venvInterpreter, isGlobal, isConda, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
116 | isRemote, execPath) = dlg.getData() |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
118 | self.__manager.addVirtualEnv( |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
119 | venvName, venvDirectory, venvInterpreter, isGlobal, isConda, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
120 | isRemote, execPath) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | def on_newButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | Private slot to create a new virtual environment. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
127 | self.__manager.createVirtualEnv( |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
128 | baseDir=self.envBaseDirectoryPicker.text()) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | def on_editButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | Private slot to edit the selected entry. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | selectedItem = self.venvList.selectedItems()[0] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | oldVenvName = selectedItem.text(0) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | from .VirtualenvAddEditDialog import VirtualenvAddEditDialog |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
139 | dlg = VirtualenvAddEditDialog( |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
140 | self.__manager, selectedItem.text(0), |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
141 | selectedItem.text(1), selectedItem.text(2), |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
142 | selectedItem.data(0, VirtualenvManagerDialog.IsGlobalRole), |
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
143 | selectedItem.data(0, VirtualenvManagerDialog.IsCondaRole), |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
144 | selectedItem.data(0, VirtualenvManagerDialog.IsRemoteRole), |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
145 | selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole), |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
146 | baseDir=self.envBaseDirectoryPicker.text() |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
147 | ) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
148 | if dlg.exec() == QDialog.DialogCode.Accepted: |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
149 | (venvName, venvDirectory, venvInterpreter, isGlobal, isConda, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
150 | isRemote, execPath) = dlg.getData() |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | if venvName != oldVenvName: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | self.__manager.renameVirtualEnv( |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
153 | oldVenvName, venvName, venvDirectory, venvInterpreter, |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
154 | isGlobal, isConda, isRemote, execPath) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | else: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | self.__manager.setVirtualEnv( |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
157 | venvName, venvDirectory, venvInterpreter, isGlobal, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
158 | isConda, isRemote, execPath) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | def on_removeButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | Private slot to remove all selected entries from the list but keep |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | their directories. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | selectedVenvs = [] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | for itm in self.venvList.selectedItems(): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | selectedVenvs.append(itm.text(0)) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | if selectedVenvs: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.__manager.removeVirtualEnvs(selectedVenvs) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | def on_removeAllButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | Private slot to remove all entries from the list but keep their |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | directories. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | venvNames = [] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | for index in range(self.venvList.topLevelItemCount()): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | itm = self.venvList.topLevelItem(index) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | venvNames.append(itm.text(0)) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | if venvNames: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | self.__manager.removeVirtualEnvs(venvNames) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | def on_deleteButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | Private slot to delete all selected entries from the list and disk. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | selectedVenvs = [] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | for itm in self.venvList.selectedItems(): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | selectedVenvs.append(itm.text(0)) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | if selectedVenvs: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | self.__manager.deleteVirtualEnvs(selectedVenvs) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | def on_deleteAllButton_clicked(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | Private slot to delete all entries from the list and disk. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | venvNames = [] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | for index in range(self.venvList.topLevelItemCount()): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | itm = self.venvList.topLevelItem(index) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | venvNames.append(itm.text(0)) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | if venvNames: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | self.__manager.deleteVirtualEnvs(venvNames) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | def on_venvList_itemSelectionChanged(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | Private slot handling a change of the selected items. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | self.__updateButtons() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | @pyqtSlot() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | def refresh(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | Public slot to refresh the list of shown items. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | # 1. remember selected entries |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | selectedVenvs = [] |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | for itm in self.venvList.selectedItems(): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | selectedVenvs.append(itm.text(0)) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | # 2. clear the list |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.venvList.clear() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | # 3. re-populate the list |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | self.__populateVenvList() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | # 4. re-establish selection |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | for venvName in selectedVenvs: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
237 | itms = self.venvList.findItems( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
238 | venvName, Qt.MatchFlag.MatchExactly, 0) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | if itms: |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | itms[0].setSelected(True) |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | def __populateVenvList(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | Private method to populate the list of virtual environments. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | environments = self.__manager.getEnvironmentEntries() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | for venvName in environments: |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
248 | itm = QTreeWidgetItem(self.venvList, [ |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | venvName, |
6349
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
250 | environments[venvName]["path"], |
17b3c75913de
VirtualEnv: improved the virtual env handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6338
diff
changeset
|
251 | environments[venvName]["interpreter"], |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | ]) |
6362
ec32d1d7f525
Virtual Environments: improved the virtual environment handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6349
diff
changeset
|
253 | itm.setData(0, VirtualenvManagerDialog.IsGlobalRole, |
ec32d1d7f525
Virtual Environments: improved the virtual environment handling
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6349
diff
changeset
|
254 | environments[venvName]["is_global"]) |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
255 | itm.setData(0, VirtualenvManagerDialog.IsCondaRole, |
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
256 | environments[venvName]["is_conda"]) |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
257 | itm.setData(0, VirtualenvManagerDialog.IsRemoteRole, |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
258 | environments[venvName]["is_remote"]) |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
259 | itm.setData(0, VirtualenvManagerDialog.ExecPathRole, |
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
260 | environments[venvName]["exec_path"]) |
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
261 | |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
262 | # show remote environments with underlined font |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
263 | if environments[venvName]["is_remote"]: |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
264 | font = itm.font(0) |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
265 | font.setUnderline(True) |
6576
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
266 | for column in range(itm.columnCount()): |
ea60ea85067a
VitualEnv Manager:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6386
diff
changeset
|
267 | itm.setFont(column, font) |
6716
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
268 | else: |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
269 | # local environments |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
270 | |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
271 | # show global environments with bold font |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
272 | if environments[venvName]["is_global"]: |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
273 | font = itm.font(0) |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
274 | font.setBold(True) |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
275 | for column in range(itm.columnCount()): |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
276 | itm.setFont(column, font) |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
277 | |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
278 | # show Anaconda environments with italic font |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
279 | if environments[venvName]["is_conda"]: |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
280 | font = itm.font(0) |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
281 | font.setItalic(True) |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
282 | for column in range(itm.columnCount()): |
1c9d3b369ea8
VirtualEnv Manager: extended the environment definition by a flag indicating a remotely accessed environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6680
diff
changeset
|
283 | itm.setFont(column, font) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.__resizeSections() |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | def __resizeSections(self): |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | Private method to resize the sections of the environment list to their |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | contents. |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | """ |
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | self.venvList.header().resizeSections( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
293 | QHeaderView.ResizeMode.ResizeToContents) |
6338
104ee21d765d
VirtualEnv: finished implementing a virtualenv manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | self.venvList.header().setStretchLastSection(True) |
7910
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
295 | |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
296 | def closeEvent(self, evt): |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
297 | """ |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
298 | Protected method to handle the close event. |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
299 | |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
300 | @param evt reference to the close event |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
301 | @type QCloseEvent |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
302 | """ |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
303 | baseDir = self.envBaseDirectoryPicker.text() |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
304 | self.__manager.setVirtualEnvironmentsBaseDir(baseDir) |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
305 | |
2eeec6bc49e6
VirtualEnv Manager
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
306 | evt.accept() |