Fri, 12 Jan 2024 12:08:29 +0100
Changed some import statements for 'importlib' to 'importlib.util' because sometimes the first doesn't work properly (reason unknown but somewhere in the interpreter).
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
10439
21c28b0f9e41
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10428
diff
changeset
|
3 | # Copyright (c) 2007 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog for plugin deinstallation. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
10 | import glob |
10496
f9925e08dbce
Changed some import statements for 'importlib' to 'importlib.util' because sometimes the first doesn't work properly (reason unknown but somewhere in the interpreter).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
11 | import importlib.util |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
12 | import os |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | import shutil |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
14 | import sys |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
16 | from PyQt6.QtCore import Qt, pyqtSignal, pyqtSlot |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
17 | from PyQt6.QtWidgets import QDialog, QListWidgetItem, QVBoxLayout, QWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
19 | from eric7 import Preferences |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
20 | from eric7.EricGui import EricPixmapCache |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
21 | from eric7.EricWidgets import EricMessageBox |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
22 | from eric7.EricWidgets.EricApplication import ericApp |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
23 | from eric7.EricWidgets.EricMainWindow import EricMainWindow |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
24 | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
25 | from .PluginManager import PluginManager |
10061
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
26 | from .PluginUtilities import getPluginHeaderEntry, hasPluginHeaderEntry |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
27 | from .Ui_PluginUninstallDialog import Ui_PluginUninstallDialog |
2101
5bac7dee9e1a
Introduced the E5MainWindow class allowing to set a style for all the main windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
28 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
29 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | class PluginUninstallWidget(QWidget, Ui_PluginUninstallDialog): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | Class implementing a dialog for plugin deinstallation. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
33 | |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
34 | @signal accepted() emitted to indicate the removal of a plug-in |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
36 | |
1230
b8c93d063a53
Fixed an issue in the plug-in uninstallation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
37 | accepted = pyqtSignal() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
38 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
39 | def __init__(self, pluginManager, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
42 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @param pluginManager reference to the plugin manager object |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
44 | @type PluginManager |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
45 | @param parent parent of this dialog |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
46 | @type QWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
48 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.setupUi(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
50 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | if pluginManager is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | # started as external plugin deinstaller |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
53 | self.__pluginManager = PluginManager(doLoadPlugins=False) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__external = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.__pluginManager = pluginManager |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.__external = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
58 | |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
59 | self.pluginDirectoryCombo.addItem( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
60 | self.tr("User plugins directory"), self.__pluginManager.getPluginDir("user") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
61 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
62 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | globalDir = self.__pluginManager.getPluginDir("global") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | if globalDir is not None and os.access(globalDir, os.W_OK): |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
65 | self.pluginDirectoryCombo.addItem( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
66 | self.tr("Global plugins directory"), globalDir |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
67 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
68 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @pyqtSlot(int) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | def on_pluginDirectoryCombo_currentIndexChanged(self, index): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | Private slot to populate the plugin name combo upon a change of the |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | plugin area. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
75 | @param index index of the selected item |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
76 | @type int |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
3036
30c81c9e88b8
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
78 | pluginDirectory = self.pluginDirectoryCombo.itemData(index) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
79 | pluginNames = sorted(self.__pluginManager.getPluginModules(pluginDirectory)) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
80 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
81 | self.pluginsList.clear() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | for pluginName in pluginNames: |
415
59a0f9e90768
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
83 | fname = "{0}.py".format(os.path.join(pluginDirectory, pluginName)) |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
84 | itm = QListWidgetItem(pluginName) |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
85 | itm.setData(Qt.ItemDataRole.UserRole, fname) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | itm.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
87 | itm.setCheckState(Qt.CheckState.Unchecked) |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
88 | self.pluginsList.addItem(itm) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
89 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | def on_buttonBox_accepted(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | Private slot to handle the accepted signal of the button box. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
95 | if self.__uninstallPlugins(): |
495
b31b0bffa5b0
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
465
diff
changeset
|
96 | self.accepted.emit() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
97 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
98 | def __getCheckedPlugins(self): |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
99 | """ |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
100 | Private method to get the list of plugins to be uninstalled. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
102 | @return list of tuples with the plugin name and plugin file name |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
103 | @rtype list of tuples of (str, str) |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
104 | """ |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
105 | plugins = [] |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
106 | for row in range(self.pluginsList.count()): |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
107 | itm = self.pluginsList.item(row) |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
108 | if itm.checkState() == Qt.CheckState.Checked: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
109 | plugins.append((itm.text(), itm.data(Qt.ItemDataRole.UserRole))) |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
110 | return plugins |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
111 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
112 | def __uninstallPlugins(self): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | """ |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
114 | Private method to uninstall the selected plugins. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
115 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
116 | @return flag indicating success |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
117 | @rtype bool |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
118 | """ |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
119 | checkedPlugins = self.__getCheckedPlugins() |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
120 | uninstallCount = 0 |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
121 | for pluginName, pluginFile in checkedPlugins: |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
122 | if self.__uninstallPlugin(pluginName, pluginFile): |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
123 | uninstallCount += 1 |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
124 | return uninstallCount == len(checkedPlugins) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
125 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
126 | def __uninstallPlugin(self, pluginName, pluginFile): |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
127 | """ |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
128 | Private method to uninstall a given plugin. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
129 | |
8526
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
130 | @param pluginName name of the plugin |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
131 | @type str |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
132 | @param pluginFile file name of the plugin |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
133 | @type str |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
134 | @return flag indicating success |
587202572b10
Plugin Uninstall Dialog: added capability to uninstall several plugins with one invocation of the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8516
diff
changeset
|
135 | @rtype bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
7255
d595f6f9cbf8
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
137 | pluginDirectory = self.pluginDirectoryCombo.itemData( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
138 | self.pluginDirectoryCombo.currentIndex() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
140 | |
2889
3737e9f17f44
Fixed an issue in the plug-in manager causing a traceback when installing a new plug-in version of an already loaded one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2854
diff
changeset
|
141 | if not self.__pluginManager.unloadPlugin(pluginName): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
142 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2992
diff
changeset
|
143 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
144 | self.tr("Plugin Uninstallation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
145 | self.tr( |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
146 | """<p>The plugin <b>{0}</b> could not be unloaded.""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
147 | """ Aborting...</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
148 | ).format(pluginName), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
149 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
152 | if pluginDirectory not in sys.path: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | sys.path.insert(2, pluginDirectory) |
7400
e5d62581d002
Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
154 | spec = importlib.util.spec_from_file_location(pluginName, pluginFile) |
e5d62581d002
Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
155 | module = importlib.util.module_from_spec(spec) |
e5d62581d002
Removed use of deprecated 'imp' module in the frontend.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
156 | spec.loader.exec_module(module) |
10061
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
157 | if not hasPluginHeaderEntry(module, "packageName"): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
158 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2992
diff
changeset
|
159 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
160 | self.tr("Plugin Uninstallation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
161 | self.tr( |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
162 | """<p>The plugin <b>{0}</b> has no 'packageName'""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | """ attribute. Aborting...</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
164 | ).format(pluginName), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
165 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
167 | |
10061
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
168 | package = getPluginHeaderEntry(module, "packageName", None) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | if package is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | package = "None" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | packageDir = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | packageDir = os.path.join(pluginDirectory, package) |
7255
d595f6f9cbf8
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
174 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
175 | hasattr(module, "prepareUninstall") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
176 | and not self.keepConfigurationCheckBox.isChecked() |
7255
d595f6f9cbf8
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
177 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | module.prepareUninstall() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | internalPackages = [] |
10061
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
180 | if hasPluginHeaderEntry(module, "internalPackages"): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | # it is a comma separated string |
10061
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
182 | internalPackages = [ |
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
183 | p.strip() |
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
184 | for p in getPluginHeaderEntry(module, "internalPackages", "").split(",") |
8bdad5699288
Introduced a new style for the plugin header.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
185 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | del module |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
187 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | # clean sys.modules |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | self.__pluginManager.removePluginFromSysModules( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
190 | pluginName, package, internalPackages |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
191 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
192 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | if packageDir and os.path.exists(packageDir): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | shutil.rmtree(packageDir) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
196 | |
415
59a0f9e90768
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
197 | fnameo = "{0}o".format(pluginFile) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | if os.path.exists(fnameo): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | os.remove(fnameo) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
200 | |
415
59a0f9e90768
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
201 | fnamec = "{0}c".format(pluginFile) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | if os.path.exists(fnamec): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | os.remove(fnamec) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
204 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
205 | pluginDirCache = os.path.join(os.path.dirname(pluginFile), "__pycache__") |
2854
2de1955c6391
Fixed an issue uninstalling a plug-in leaving residual files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2824
diff
changeset
|
206 | if os.path.exists(pluginDirCache): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
207 | pluginFileName = os.path.splitext(os.path.basename(pluginFile))[0] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
208 | for fnameo in glob.glob( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
209 | os.path.join(pluginDirCache, "{0}*.pyo".format(pluginFileName)) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
210 | ): |
2854
2de1955c6391
Fixed an issue uninstalling a plug-in leaving residual files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2824
diff
changeset
|
211 | os.remove(fnameo) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
212 | for fnamec in glob.glob( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
213 | os.path.join(pluginDirCache, "{0}*.pyc".format(pluginFileName)) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
214 | ): |
2854
2de1955c6391
Fixed an issue uninstalling a plug-in leaving residual files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2824
diff
changeset
|
215 | os.remove(fnamec) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
216 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | os.remove(pluginFile) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
218 | except OSError as err: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
219 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2992
diff
changeset
|
220 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
221 | self.tr("Plugin Uninstallation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
222 | self.tr( |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
223 | """<p>The plugin package <b>{0}</b> could not be""" |
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
224 | """ removed. Aborting...</p>""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
225 | """<p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
226 | ).format(packageDir, str(err)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
227 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | return False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
229 | |
2192
61b3849df76d
Changed a few places to use the new notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2101
diff
changeset
|
230 | if not self.__external: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
231 | ui = ericApp().getObject("UserInterface") |
7955
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
232 | ui.showNotification( |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
233 | EricPixmapCache.getPixmap("plugin48"), |
7955
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
234 | self.tr("Plugin Uninstallation"), |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
235 | self.tr( |
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
236 | """<p>The plugin <b>{0}</b> was uninstalled""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
237 | """ successfully from {1}.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
238 | ).format(pluginName, pluginDirectory), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
239 | ) |
7955
567f2ec958c3
Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
240 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
241 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
242 | EricMessageBox.information( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2992
diff
changeset
|
243 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
244 | self.tr("Plugin Uninstallation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3189
diff
changeset
|
245 | self.tr( |
2992
dbdf27746da5
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2889
diff
changeset
|
246 | """<p>The plugin <b>{0}</b> was uninstalled successfully""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
247 | """ from {1}.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | ).format(pluginName, pluginDirectory), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
249 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | return True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
252 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | class PluginUninstallDialog(QDialog): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | Class for the dialog variant. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
257 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
258 | def __init__(self, pluginManager, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
261 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | @param pluginManager reference to the plugin manager object |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
263 | @type PluginManager |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
264 | @param parent reference to the parent widget |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
265 | @type QWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
267 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | self.setSizeGripEnabled(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
269 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | self.__layout = QVBoxLayout(self) |
2824
858412c29c34
Replaced the obsoleted method setMargin() with setContentsMargins().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
271 | self.__layout.setContentsMargins(0, 0, 0, 0) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | self.setLayout(self.__layout) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | self.cw = PluginUninstallWidget(pluginManager, self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | size = self.cw.size() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | self.__layout.addWidget(self.cw) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | self.resize(size) |
3189
9a21c547de5f
Fixed issues showing the correct window title for some dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
278 | self.setWindowTitle(self.cw.windowTitle()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
279 | |
3345
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
280 | self.cw.buttonBox.accepted.connect(self.accept) |
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
281 | self.cw.buttonBox.rejected.connect(self.reject) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
283 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
284 | class PluginUninstallWindow(EricMainWindow): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | Main window class for the standalone dialog. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
288 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
881
diff
changeset
|
289 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
292 | |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
293 | @param parent reference to the parent widget |
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10061
diff
changeset
|
294 | @type QWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
296 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | self.cw = PluginUninstallWidget(None, self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | size = self.cw.size() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | self.setCentralWidget(self.cw) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | self.resize(size) |
3189
9a21c547de5f
Fixed issues showing the correct window title for some dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
301 | self.setWindowTitle(self.cw.windowTitle()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
302 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
303 | self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
304 | |
3345
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
305 | self.cw.buttonBox.accepted.connect(self.close) |
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
306 | self.cw.buttonBox.rejected.connect(self.close) |