eric6/PluginManager/PluginManager.py

Tue, 10 Sep 2019 19:30:07 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Sep 2019 19:30:07 +0200
changeset 7229
53054eb5b15a
parent 7192
a22eee00b052
child 7255
d595f6f9cbf8
permissions
-rw-r--r--

Removed obsolete "from __future__ import ..." statements.

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
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6629
diff changeset
3 # Copyright (c) 2007 - 2019 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 the Plugin Manager.
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
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import sys
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import imp
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
13 import zipfile
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
15 from PyQt5.QtCore import pyqtSignal, QObject, QDate, QFile, QFileInfo, QUrl, \
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
16 QIODevice
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
17 from PyQt5.QtGui import QPixmap
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
18 from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, \
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
19 QNetworkReply
537
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 496
diff changeset
20
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 496
diff changeset
21 from E5Gui import E5MessageBox
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
22 from E5Gui.E5Application import e5App
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
24 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
25 try:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
26 from E5Network.E5SslErrorHandler import E5SslErrorHandler
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
27 SSL_AVAILABLE = True
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
28 except ImportError:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
29 SSL_AVAILABLE = False
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
30
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
31 from .PluginExceptions import PluginPathError, PluginModulesError, \
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
32 PluginLoadError, PluginActivationError, PluginModuleFormatError, \
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7023
diff changeset
33 PluginClassFormatError
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 import UI.PixmapCache
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
37 import Globals
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
41 from eric6config import getConfig
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
43
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 class PluginManager(QObject):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Class implementing the Plugin Manager.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @signal shutdown() emitted at shutdown of the IDE
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
49 @signal pluginAboutToBeActivated(modulName, pluginObject) emitted just
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
50 before a plugin is activated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
51 @signal pluginActivated(moduleName, pluginObject) emitted just after
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
52 a plugin was activated
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 @signal allPlugginsActivated() emitted at startup after all plugins have
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 been activated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
55 @signal pluginAboutToBeDeactivated(moduleName, pluginObject) emitted just
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
56 before a plugin is deactivated
3259
f059575254df Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3200
diff changeset
57 @signal pluginDeactivated(moduleName, pluginObject) emitted just after
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
58 a plugin was deactivated
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
60 shutdown = pyqtSignal()
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
61 pluginAboutToBeActivated = pyqtSignal(str, object)
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
62 pluginActivated = pyqtSignal(str, object)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
63 allPlugginsActivated = pyqtSignal()
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
64 pluginAboutToBeDeactivated = pyqtSignal(str, object)
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
65 pluginDeactivated = pyqtSignal(str, object)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
66
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
67 def __init__(self, parent=None, disabledPlugins=None, doLoadPlugins=True,
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
68 develPlugin=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 Constructor
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 The Plugin Manager deals with three different plugin directories.
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
73 The first is the one, that is part of eric6 (eric6/Plugins). The
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
74 second one is the global plugin directory called 'eric6plugins',
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 which is located inside the site-packages directory. The last one
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
76 is the user plugin directory located inside the .eric6 directory
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 of the users home directory.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
79 @param parent reference to the parent object
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
80 @type QObject
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
81 @param disabledPlugins list of plug-ins that have been disabled via
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
82 the command line parameters '--disable-plugin='
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
83 @type list of str
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
84 @param doLoadPlugins flag indicating, that plug-ins should
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
85 be loaded
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
86 @type bool
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
87 @param develPlugin filename of a plug-in to be loaded for
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
88 development
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
89 @type str
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
90 @exception PluginPathError raised to indicate an invalid plug-in path
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
91 @exception PluginModulesError raised to indicate the absence of
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
92 plug-in modules
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
94 super(PluginManager, self).__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.__ui = parent
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.__develPluginFile = develPlugin
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.__develPluginName = None
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
99 if disabledPlugins is not None:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
100 self.__disabledPlugins = disabledPlugins[:]
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
101 else:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
102 self.__disabledPlugins = []
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.__inactivePluginsKey = "PluginManager/InactivePlugins"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.pluginDirs = {
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
107 "eric6": os.path.join(getConfig('ericDir'), "Plugins"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
108 "global": os.path.join(Utilities.getPythonModulesDirectory(),
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
109 "eric6plugins"),
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
110 "user": os.path.join(Utilities.getConfigDir(), "eric6plugins"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 }
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
112 self.__priorityOrder = ["eric6", "global", "user"]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
114 self.__defaultDownloadDir = os.path.join(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
115 Utilities.getConfigDir(), "Downloads")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.__activePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.__inactivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.__onDemandActivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.__onDemandInactivePlugins = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.__activeModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.__inactiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 self.__onDemandActiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self.__onDemandInactiveModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 self.__failedModules = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.__foundCoreModules = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self.__foundGlobalModules = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 self.__foundUserModules = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.__modulesCount = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 pdirsExist, msg = self.__pluginDirectoriesExist()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 if not pdirsExist:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 raise PluginPathError(msg)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 if doLoadPlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 if not self.__pluginModulesExist():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 raise PluginModulesError
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 self.__insertPluginsPaths()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 self.__loadPlugins()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__checkPluginsDownloadDirectory()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
146
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
147 self.pluginRepositoryFile = \
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
148 os.path.join(Utilities.getConfigDir(), "PluginRepository")
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
149
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
150 # attributes for the network objects
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
151 self.__networkManager = QNetworkAccessManager(self)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
152 self.__networkManager.proxyAuthenticationRequired.connect(
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
153 proxyAuthenticationRequired)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
154 if SSL_AVAILABLE:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
155 self.__sslErrorHandler = E5SslErrorHandler(self)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
156 self.__networkManager.sslErrors.connect(self.__sslErrors)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
157 self.__replies = []
4630
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
158
4798
ee1a24311b03 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
159 try:
ee1a24311b03 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
160 self.__ui.onlineStateChanged.connect(self.__onlineStateChanged)
ee1a24311b03 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
161 except AttributeError:
ee1a24311b03 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
162 # it was not called from eric
ee1a24311b03 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
163 pass
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 def finalizeSetup(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 Public method to finalize the setup of the plugin manager.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
169 for module in list(self.__onDemandInactiveModules.values()) + \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
170 list(self.__onDemandActiveModules.values()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 if hasattr(module, "moduleSetup"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 module.moduleSetup()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 def getPluginDir(self, key):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 Public method to get the path of a plugin directory.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
178 @param key key of the plug-in directory (string)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 @return path of the requested plugin directory (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 if key not in ["global", "user"]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 return self.pluginDirs[key]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 def __pluginDirectoriesExist(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 Private method to check, if the plugin folders exist.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 If the plugin folders don't exist, they are created (if possible).
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
195 @return tuple of a flag indicating existence of any of the plugin
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 directories (boolean) and a message (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 if self.__develPluginFile:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 path = Utilities.splitPath(self.__develPluginFile)[0]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 fname = os.path.join(path, "__init__.py")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 if not os.path.exists(fname):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
203 f = open(fname, "w")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 f.close()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 except IOError:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
206 return (
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
207 False,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
208 self.tr("Could not create a package for {0}.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 .format(self.__develPluginFile))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
211 fname = os.path.join(self.pluginDirs["user"], "__init__.py")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
212 if not os.path.exists(fname):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
213 if not os.path.exists(self.pluginDirs["user"]):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
214 os.mkdir(self.pluginDirs["user"], 0o755)
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
215 try:
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
216 f = open(fname, "w")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 f.close()
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
218 except IOError:
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
219 del self.pluginDirs["user"]
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
220
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
221 if not os.path.exists(self.pluginDirs["global"]) and \
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
222 os.access(Utilities.getPythonModulesDirectory(), os.W_OK):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
223 # create the global plugins directory
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
224 os.mkdir(self.pluginDirs["global"], 0o755)
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
225 fname = os.path.join(self.pluginDirs["global"], "__init__.py")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
226 f = open(fname, "w", encoding="utf-8")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
227 f.write('# -*- coding: utf-8 -*-' + "\n")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
228 f.write("\n")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
229 f.write('"""' + "\n")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
230 f.write('Package containing the global plugins.' + "\n")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
231 f.write('"""' + "\n")
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
232 f.close()
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
233 if not os.path.exists(self.pluginDirs["global"]):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 del self.pluginDirs["global"]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
236 if not os.path.exists(self.pluginDirs["eric6"]):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
237 return (
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
238 False,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
239 self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
240 "The internal plugin directory <b>{0}</b>"
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
241 " does not exits.").format(self.pluginDirs["eric6"]))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 return (True, "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 def __pluginModulesExist(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 Private method to check, if there are plugins available.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 @return flag indicating the availability of plugins (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
251 if self.__develPluginFile and \
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
252 not os.path.exists(self.__develPluginFile):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
255 self.__foundCoreModules = self.getPluginModules(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
256 self.pluginDirs["eric6"])
4378
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
257 if Preferences.getPluginManager("ActivateExternal"):
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
258 if "global" in self.pluginDirs:
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
259 self.__foundGlobalModules = \
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
260 self.getPluginModules(self.pluginDirs["global"])
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
261 if "user" in self.pluginDirs:
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
262 self.__foundUserModules = \
d8f81e864816 Changed the 'load external plug-ins' logic and enable this option upon installation of a plug-in, if it is switched off (needs a restart of eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4115
diff changeset
263 self.getPluginModules(self.pluginDirs["user"])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
265 return len(self.__foundCoreModules + self.__foundGlobalModules +
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 self.__foundUserModules) > 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 def getPluginModules(self, pluginPath):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 Public method to get a list of plugin modules.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 @param pluginPath name of the path to search (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 @return list of plugin module names (list of string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 """
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
275 pluginFiles = [f[:-3] for f in os.listdir(pluginPath)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 if self.isValidPluginName(f)]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 return pluginFiles[:]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 def isValidPluginName(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 Public methode to check, if a file name is a valid plugin name.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 Plugin modules must start with "Plugin" and have the extension ".py".
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 @param pluginName name of the file to be checked (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 @return flag indicating a valid plugin name (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 return pluginName.startswith("Plugin") and pluginName.endswith(".py")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 def __insertPluginsPaths(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 Private method to insert the valid plugin paths intos the search path.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 for key in self.__priorityOrder:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 if key in self.pluginDirs:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 if not self.pluginDirs[key] in sys.path:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 sys.path.insert(2, self.pluginDirs[key])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 UI.PixmapCache.addSearchPath(self.pluginDirs[key])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 if self.__develPluginFile:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 path = Utilities.splitPath(self.__develPluginFile)[0]
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3523
diff changeset
302 if path not in sys.path:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 sys.path.insert(2, path)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 UI.PixmapCache.addSearchPath(path)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 def __loadPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 Private method to load the plugins found.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 develPluginName = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 if self.__develPluginFile:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 develPluginPath, develPluginName = \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 Utilities.splitPath(self.__develPluginFile)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 if self.isValidPluginName(develPluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 develPluginName = develPluginName[:-3]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 for pluginName in self.__foundGlobalModules:
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
318 # user and core plug-ins have priority
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 if pluginName not in self.__foundUserModules and \
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
320 pluginName not in self.__foundCoreModules and \
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 pluginName != develPluginName:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 self.loadPlugin(pluginName, self.pluginDirs["global"])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 for pluginName in self.__foundUserModules:
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
325 # core plug-ins have priority
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
326 if pluginName not in self.__foundCoreModules and \
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
327 pluginName != develPluginName:
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
328 self.loadPlugin(pluginName, self.pluginDirs["user"])
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
329
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
330 for pluginName in self.__foundCoreModules:
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
331 # plug-in under development has priority
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 if pluginName != develPluginName:
6008
ac5057f80f60 Changed the order of precedence for loading plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5904
diff changeset
333 self.loadPlugin(pluginName, self.pluginDirs["eric6"])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 if develPluginName:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 self.loadPlugin(develPluginName, develPluginPath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 self.__develPluginName = develPluginName
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338
6629
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
339 def loadDocumentationSetPlugins(self):
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
340 """
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
341 Public method to load just the documentation sets plugins.
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
342
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
343 @exception PluginModulesError raised to indicate the absence of
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
344 plug-in modules
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
345 """
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
346 if not self.__pluginModulesExist():
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
347 raise PluginModulesError
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
348
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
349 self.__insertPluginsPaths()
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
350
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
351 for pluginName in self.__foundGlobalModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
352 # user and core plug-ins have priority
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
353 if pluginName not in self.__foundUserModules and \
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
354 pluginName not in self.__foundCoreModules and \
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
355 pluginName.startswith("PluginDocumentationSets"):
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
356 self.loadPlugin(pluginName, self.pluginDirs["global"])
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
357
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
358 for pluginName in self.__foundUserModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
359 # core plug-ins have priority
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
360 if pluginName not in self.__foundCoreModules and \
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
361 pluginName.startswith("PluginDocumentationSets"):
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
362 self.loadPlugin(pluginName, self.pluginDirs["user"])
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
363
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
364 for pluginName in self.__foundCoreModules:
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
365 # plug-in under development has priority
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
366 if pluginName.startswith("PluginDocumentationSets"):
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
367 self.loadPlugin(pluginName, self.pluginDirs["eric6"])
643ec3a53d17 PluginManager, QtHelpDocumentationDialog: fixed loading plug-in documentation sets when run stand-alone.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6611
diff changeset
368
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
369 def loadPlugin(self, name, directory, reload_=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 Public method to load a plugin module.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 Initially all modules are inactive. Modules that are requested on
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 demand are sorted out and are added to the on demand list. Some
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 basic validity checks are performed as well. Modules failing these
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 checks are added to the failed modules list.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 @param name name of the module to be loaded (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 @param directory name of the plugin directory (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 @param reload_ flag indicating to reload the module (boolean)
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
381 @exception PluginLoadError raised to indicate an issue loading
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
382 the plug-in
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 try:
415
59a0f9e90768 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
385 fname = "{0}.py".format(os.path.join(directory, name))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 module = imp.load_source(name, fname)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 if not hasattr(module, "autoactivate"):
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
388 module.error = self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
389 "Module is missing the 'autoactivate' attribute.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 self.__failedModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 raise PluginLoadError(name)
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
392 if getattr(module, "autoactivate", False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 self.__inactiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 if not hasattr(module, "pluginType") or \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 not hasattr(module, "pluginTypename"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 module.error = \
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
398 self.tr("Module is missing the 'pluginType' "
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
399 "and/or 'pluginTypename' attributes.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 self.__failedModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 raise PluginLoadError(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 self.__onDemandInactiveModules[name] = module
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
404 module.eric6PluginModuleName = name
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
405 module.eric6PluginModuleFilename = fname
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 self.__modulesCount += 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 if reload_:
116
2add429042ef Fixed a porting bug in PluginManager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 110
diff changeset
408 imp.reload(module)
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
409 self.initOnDemandPlugin(name)
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
410 try:
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
411 pluginObject = self.__onDemandInactivePlugins[name]
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
412 pluginObject.initToolbar(
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
413 self.__ui, e5App().getObject("ToolbarManager"))
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
414 except (KeyError, AttributeError):
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
415 pass
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 except PluginLoadError:
3520
bfcefbb1633c Implemented the Python2 compatibility check for plug-ins in the plug-in manager. The flag is named 'python2Compatible'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
417 print("Error loading plug-in module:", name)
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
418 except Exception as err:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 module = imp.new_module(name)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
420 module.error = self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
421 "Module failed to load. Error: {0}").format(str(err))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 self.__failedModules[name] = module
3520
bfcefbb1633c Implemented the Python2 compatibility check for plug-ins in the plug-in manager. The flag is named 'python2Compatible'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
423 print("Error loading plug-in module:", name)
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
424 print(str(err))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425
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: 2302
diff changeset
426 def unloadPlugin(self, name):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 Public method to unload a plugin module.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 @param name name of the module to be unloaded (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 @return flag indicating success (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 """
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: 2302
diff changeset
433 if name in self.__onDemandActiveModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 # cannot unload an ondemand plugin, that is in use
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436
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: 2302
diff changeset
437 if name in self.__activeModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 self.deactivatePlugin(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439
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: 2302
diff changeset
440 if name in self.__inactiveModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 try:
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
442 pluginObject = self.__inactivePlugins[name]
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
443 try:
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
444 pluginObject.prepareUnload()
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
445 except AttributeError:
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
446 pass
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 del self.__inactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 del self.__inactiveModules[name]
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: 2302
diff changeset
451 elif name in self.__onDemandInactiveModules:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 try:
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
453 pluginObject = self.__onDemandInactivePlugins[name]
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
454 try:
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
455 pluginObject.prepareUnload()
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
456 except AttributeError:
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
457 pass
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458 del self.__onDemandInactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 del self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 elif name in self.__failedModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 del self.__failedModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 self.__modulesCount -= 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 return True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
468 def removePluginFromSysModules(self, pluginName, package,
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
469 internalPackages):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
471 Public method to remove a plugin and all related modules from
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
472 sys.modules.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 @param pluginName name of the plugin module (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 @param package name of the plugin package (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 @param internalPackages list of intenal packages (list of string)
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
477 @return flag indicating the plugin module was found in sys.modules
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
478 (boolean)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 packages = [package] + internalPackages
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 found = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 if not package:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 package = "__None__"
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
484 for moduleName in list(sys.modules.keys())[:]:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
485 if moduleName == pluginName or \
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
486 moduleName.split(".")[0] in packages:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 found = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 del sys.modules[moduleName]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 return found
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 def initOnDemandPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 Public method to create plugin objects for all on demand plugins.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 Note: The plugins are not activated.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497 names = sorted(self.__onDemandInactiveModules.keys())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498 for name in names:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 self.initOnDemandPlugin(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 def initOnDemandPlugin(self, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 Public method to create a plugin object for the named on demand plugin.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
505 Note: The plug-in is not activated.
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
506
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
507 @param name name of the plug-in (string)
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
508 @exception PluginActivationError raised to indicate an issue during the
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
509 plug-in activation
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 module = self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 except KeyError:
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
515 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 if not self.__canActivatePlugin(module):
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
518 raise PluginActivationError(module.eric6PluginModuleName)
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
519 version = getattr(module, "version", "0.0.0")
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
520 className = getattr(module, "className", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
523 if name not in self.__onDemandInactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 pluginObject = pluginClass(self.__ui)
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
525 pluginObject.eric6PluginModule = module
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
526 pluginObject.eric6PluginName = className
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
527 pluginObject.eric6PluginVersion = version
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 self.__onDemandInactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 except PluginActivationError:
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
530 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
531
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
532 def initPluginToolbars(self, toolbarManager):
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
533 """
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
534 Public method to initialize plug-in toolbars.
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
535
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
536 @param toolbarManager reference to the toolbar manager object
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
537 (E5ToolBarManager)
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
538 """
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
539 self.initOnDemandPlugins()
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
540 for pluginObject in self.__onDemandInactivePlugins.values():
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
541 try:
4115
0c70a8f8d54a Some more modifications to improve the plug-in toolbar handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4113
diff changeset
542 pluginObject.initToolbar(self.__ui, toolbarManager)
4113
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
543 except AttributeError:
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
544 # ignore it
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
545 pass
feac3108a780 Some small modifications to the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
546
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 def activatePlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
549 Public method to activate all plugins having the "autoactivate"
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
550 attribute set to True.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
552 savedInactiveList = Preferences.Prefs.settings.value(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
553 self.__inactivePluginsKey)
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
554 inactiveList = self.__disabledPlugins[:]
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
555 if savedInactiveList is not None:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
556 inactiveList += [p for p in savedInactiveList
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
557 if p not in self.__disabledPlugins]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 if self.__develPluginName is not None and \
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
559 self.__develPluginName in inactiveList:
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
560 inactiveList.remove(self.__develPluginName)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 names = sorted(self.__inactiveModules.keys())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 for name in names:
6267
350655a6c85f eric6, PluginManager: added the '--disable-plugin=' option to disable plug-ins via the command line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
563 if name not in inactiveList:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 self.activatePlugin(name)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
565 self.allPlugginsActivated.emit()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
567 def activatePlugin(self, name, onDemand=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 Public method to activate a plugin.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 @param name name of the module to be activated
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
572 @keyparam onDemand flag indicating activation of an
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 on demand plugin (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
574 @return reference to the initialized plugin object
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
575 @exception PluginActivationError raised to indicate an issue during the
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
576 plug-in activation
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
577 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
578 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
579 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
580 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 module = self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
582 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
583 module = self.__inactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
584 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
585 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
586
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
587 if not self.__canActivatePlugin(module):
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
588 raise PluginActivationError(module.eric6PluginModuleName)
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
589 version = getattr(module, "version", "0.0.0")
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
590 className = getattr(module, "className", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 if onDemand and name in self.__onDemandInactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
594 pluginObject = self.__onDemandInactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 elif not onDemand and name in self.__inactivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
596 pluginObject = self.__inactivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
598 pluginObject = pluginClass(self.__ui)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
599 self.pluginAboutToBeActivated.emit(name, pluginObject)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 obj, ok = pluginObject.activate()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 except TypeError:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
603 module.error = self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
604 "Incompatible plugin activation method.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 obj = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 ok = True
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
607 except Exception as err:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
608 module.error = str(err)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 obj = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 ok = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 if not ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
612 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
614 self.pluginActivated.emit(name, pluginObject)
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
615 pluginObject.eric6PluginModule = module
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
616 pluginObject.eric6PluginName = className
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
617 pluginObject.eric6PluginVersion = version
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
618
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
620 self.__onDemandInactiveModules.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
621 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
622 self.__onDemandInactivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
623 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
624 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
625 self.__onDemandActivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626 self.__onDemandActiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
627 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
628 self.__inactiveModules.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
629 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630 self.__inactivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
633 self.__activePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 self.__activeModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 return obj
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
636 except PluginActivationError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639 def __canActivatePlugin(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 Private method to check, if a plugin can be activated.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 @param module reference to the module to be activated
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 @return flag indicating, if the module satisfies all requirements
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 for being activated (boolean)
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
646 @exception PluginModuleFormatError raised to indicate an invalid
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
647 plug-in module format
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
648 @exception PluginClassFormatError raised to indicate an invalid
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
649 plug-in class format
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 if not hasattr(module, "version"):
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
653 raise PluginModuleFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
654 module.eric6PluginModuleName, "version")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 if not hasattr(module, "className"):
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
656 raise PluginModuleFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
657 module.eric6PluginModuleName, "className")
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
658 className = getattr(module, "className", "")
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
659 if not className or not hasattr(module, className):
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
660 raise PluginModuleFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
661 module.eric6PluginModuleName, className)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 pluginClass = getattr(module, className)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 if not hasattr(pluginClass, "__init__"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
664 raise PluginClassFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
665 module.eric6PluginModuleName,
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 className, "__init__")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 if not hasattr(pluginClass, "activate"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
668 raise PluginClassFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
669 module.eric6PluginModuleName,
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 className, "activate")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 if not hasattr(pluginClass, "deactivate"):
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
672 raise PluginClassFormatError(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
673 module.eric6PluginModuleName,
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 className, "deactivate")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 return True
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
676 except PluginModuleFormatError as e:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
677 print(repr(e))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 return False
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
679 except PluginClassFormatError as e:
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
680 print(repr(e))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
682
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
683 def deactivatePlugin(self, name, onDemand=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
684 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
685 Public method to deactivate a plugin.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
686
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 @param name name of the module to be deactivated
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
688 @keyparam onDemand flag indicating deactivation of an
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 on demand plugin (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 module = self.__onDemandActiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
695 module = self.__activeModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 return
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 if self.__canDeactivatePlugin(module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
700 pluginObject = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 if onDemand and name in self.__onDemandActivePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 pluginObject = self.__onDemandActivePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 elif not onDemand and name in self.__activePlugins:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 pluginObject = self.__activePlugins[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705 if pluginObject:
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
706 self.pluginAboutToBeDeactivated.emit(name, pluginObject)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 pluginObject.deactivate()
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
708 self.pluginDeactivated.emit(name, pluginObject)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 if onDemand:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 self.__onDemandActiveModules.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 self.__onDemandActivePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 self.__onDemandInactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 self.__onDemandInactiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 self.__activeModules.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
718 self.__activePlugins.pop(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 except KeyError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 self.__inactivePlugins[name] = pluginObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 self.__inactiveModules[name] = module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 def __canDeactivatePlugin(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 Private method to check, if a plugin can be deactivated.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 @param module reference to the module to be deactivated
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 @return flag indicating, if the module satisfies all requirements
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 for being deactivated (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 return getattr(module, "deactivateable", True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
734 def getPluginObject(self, type_, typename, maybeActive=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
736 Public method to activate an ondemand plugin given by type and
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
737 typename.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 @param type_ type of the plugin to be activated (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 @param typename name of the plugin within the type category (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741 @keyparam maybeActive flag indicating, that the plugin may be active
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 already (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 @return reference to the initialized plugin object
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 """
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
745 for name, module in list(self.__onDemandInactiveModules.items()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
746 if getattr(module, "pluginType", "") == type_ and \
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
747 getattr(module, "pluginTypename", "") == typename:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
748 return self.activatePlugin(name, onDemand=True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 if maybeActive:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
751 for name, module in list(self.__onDemandActiveModules.items()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
752 if getattr(module, "pluginType", "") == type_ and \
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
753 getattr(module, "pluginTypename", "") == typename:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
754 self.deactivatePlugin(name, onDemand=True)
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
755 return self.activatePlugin(name, onDemand=True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759 def getPluginInfos(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 """
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
761 Public method to get infos about all loaded plug-ins.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
763 @return list of dictionaries with keys "module_name", "plugin_name",
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
764 "version", "auto_activate", "active", "short_desc", "error"
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
765 @rtype list of dict ("module_name": str, "plugin_name": str,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
766 "version": str, "auto_activate": bool, "active": bool,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
767 "short_desc": str, "error": bool)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 infos = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
771 # 1. active, non-on-demand modules
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
772 for name in list(self.__activeModules.keys()):
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
773 info = self.__getShortInfo(self.__activeModules[name])
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
774 info.update({
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
775 "module_name": name,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
776 "auto_activate": True,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
777 "active": True,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
778 })
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
779 infos.append(info)
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
780
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
781 # 2. inactive, non-on-demand modules
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
782 for name in list(self.__inactiveModules.keys()):
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
783 info = self.__getShortInfo(self.__inactiveModules[name])
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
784 info.update({
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
785 "module_name": name,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
786 "auto_activate": True,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
787 "active": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
788 })
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
789 infos.append(info)
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
790
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
791 # 3. active, on-demand modules
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
792 for name in list(self.__onDemandActiveModules.keys()):
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
793 info = self.__getShortInfo(self.__onDemandActiveModules[name])
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
794 info.update({
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
795 "module_name": name,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
796 "auto_activate": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
797 "active": True,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
798 })
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
799 infos.append(info)
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
800
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
801 # 4. inactive, non-on-demand modules
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
802 for name in list(self.__onDemandInactiveModules.keys()):
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
803 info = self.__getShortInfo(self.__onDemandInactiveModules[name])
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
804 info.update({
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
805 "module_name": name,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
806 "auto_activate": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
807 "active": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
808 })
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
809 infos.append(info)
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
810
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
811 # 5. failed modules
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
812 for name in list(self.__failedModules.keys()):
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
813 info = self.__getShortInfo(self.__failedModules[name])
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
814 info.update({
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
815 "module_name": name,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
816 "auto_activate": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
817 "active": False,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
818 })
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
819 infos.append(info)
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
820
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 return infos
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 def __getShortInfo(self, module):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 Private method to extract the short info from a module.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 @param module module to extract short info from
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
828 @return dictionay containing plug-in data
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
829 @rtype dict ("plugin_name": str, "version": str, "short_desc": str,
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
830 "error": bool)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 """
6080
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
832 return {
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
833 "plugin_name": getattr(module, "name", ""),
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
834 "version": getattr(module, "version", ""),
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
835 "short_desc": getattr(module, "shortDescription", ""),
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
836 "error": bool(getattr(module, "error", "")),
436ac20f7639 Made the output of the plug-ins info dialog a bit more understandable and refactored related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
837 }
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
839 def getPluginDetails(self, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
840 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841 Public method to get detailed information about a plugin.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 @param name name of the module to get detailed infos about (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 @return details of the plugin as a dictionary
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 details = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 autoactivate = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 active = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
850
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851 if name in self.__activeModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 module = self.__activeModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
853 elif name in self.__inactiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 module = self.__inactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 active = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 elif name in self.__onDemandActiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
857 module = self.__onDemandActiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859 elif name in self.__onDemandInactiveModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 module = self.__onDemandInactiveModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
862 active = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
863 elif name in self.__failedModules:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
864 module = self.__failedModules[name]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
865 autoactivate = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
866 active = False
5236
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
867 elif "_" in name:
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
868 # try stripping of a postfix
9487d3fbb71e Change to the plug-in manager to support plug-in sets (like the documentation sets plug-ins). These containe a '_' in the plug-in archive name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5223
diff changeset
869 return self.getPluginDetails(name.rsplit("_", 1)[0])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
870 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
871 # should not happen
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
872 return None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
873
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
874 details["moduleName"] = name
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
875 details["moduleFileName"] = getattr(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
876 module, "eric6PluginModuleFilename", "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
877 details["pluginName"] = getattr(module, "name", "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
878 details["version"] = getattr(module, "version", "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
879 details["author"] = getattr(module, "author", "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 details["description"] = getattr(module, "longDescription", "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
881 details["autoactivate"] = autoactivate
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
882 details["active"] = active
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
883 details["error"] = getattr(module, "error", "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
885 return details
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886
496
ed1e3f654d0b Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 495
diff changeset
887 def doShutdown(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 Public method called to perform actions upon shutdown of the IDE.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
891 names = []
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
892 for name in list(self.__inactiveModules.keys()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893 names.append(name)
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
894 Preferences.Prefs.settings.setValue(self.__inactivePluginsKey, names)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
895
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
896 self.shutdown.emit()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 def getPluginDisplayStrings(self, type_):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
900 Public method to get the display strings of all plugins of a specific
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
901 type.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
902
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
903 @param type_ type of the plugins (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 @return dictionary with name as key and display string as value
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 (dictionary of string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907 pluginDict = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
909 for module in list(self.__onDemandActiveModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
910 list(self.__onDemandInactiveModules.values()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
911 if getattr(module, "pluginType", "") == type_ and \
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
912 getattr(module, "error", "") == "":
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
913 plugin_name = getattr(module, "pluginTypename", "")
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
914 if plugin_name:
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
915 if hasattr(module, "displayString"):
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
916 try:
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
917 disp = module.displayString()
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
918 except TypeError:
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
919 disp = getattr(module, "displayString", "")
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
920 if disp != "":
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
921 pluginDict[plugin_name] = disp
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
922 else:
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
923 pluginDict[plugin_name] = plugin_name
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 return pluginDict
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 def getPluginPreviewPixmap(self, type_, name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 Public method to get a preview pixmap of a plugin of a specific type.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 @param type_ type of the plugin (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 @param name name of the plugin type (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
933 @return preview pixmap (QPixmap)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 """
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
935 for module in list(self.__onDemandActiveModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
936 list(self.__onDemandInactiveModules.values()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
937 if getattr(module, "pluginType", "") == type_ and \
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
938 getattr(module, "pluginTypename", "") == name:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 if hasattr(module, "previewPix"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 return module.previewPix()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 return QPixmap()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
943
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944 return QPixmap()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 def getPluginApiFiles(self, language):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 Public method to get the list of API files installed by a plugin.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 @param language language of the requested API files (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
951 @return list of API filenames (list of string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 apis = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
955 for module in list(self.__activeModules.values()) + \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
956 list(self.__onDemandActiveModules.values()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 if hasattr(module, "apiFiles"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 apis.extend(module.apiFiles(language))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 return apis
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961
5223
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
962 def getPluginQtHelpFiles(self):
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
963 """
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
964 Public method to get the list of QtHelp documentation files provided
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
965 by a plug-in.
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
966
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
967 @return dictionary with documentation type as key and list of files
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
968 as value
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
969 @rtype dict (key: str, value: list of str)
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
970 """
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
971 helpFiles = {}
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
972 for module in list(self.__activeModules.values()) + \
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
973 list(self.__onDemandActiveModules.values()):
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
974 if hasattr(module, "helpFiles"):
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
975 helpFiles.update(module.helpFiles())
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
976
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
977 return helpFiles
4c0b3ee7d2d8 Prepared the plug-in manager for a new plug-in type (providing documentation as QtHelp files (*.qch)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4798
diff changeset
978
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 def getPluginExeDisplayData(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981 Public method to get data to display information about a plugins
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
982 external tool.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 @return list of dictionaries containing the data. Each dictionary must
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
985 either contain data for the determination or the data to be
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
986 displayed.<br />
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
987 A dictionary of the first form must have the following entries:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
988 <ul>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
989 <li>programEntry - indicator for this dictionary form
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
990 (boolean), always True</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
991 <li>header - string to be diplayed as a header (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 <li>exe - the executable (string)</li>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
993 <li>versionCommand - commandline parameter for the exe
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
994 (string)</li>
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
995 <li>versionStartsWith - indicator for the output line
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
996 containing the version (string)</li>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
997 <li>versionPosition - number of element containing the
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
998 version (integer)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
999 <li>version - version to be used as default (string)</li>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1000 <li>versionCleanup - tuple of two integers giving string
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1001 positions start and stop for the version string
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1002 (tuple of integers)</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1003 </ul>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1004 A dictionary of the second form must have the following entries:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1005 <ul>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1006 <li>programEntry - indicator for this dictionary form
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1007 (boolean), always False</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1008 <li>header - string to be diplayed as a header (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1009 <li>text - entry text to be shown (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1010 <li>version - version text to be shown (string)</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1011 </ul>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1012 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1013 infos = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1014
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1015 for module in list(self.__activeModules.values()) + \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1016 list(self.__inactiveModules.values()):
438
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1017 if hasattr(module, "exeDisplayDataList"):
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1018 infos.extend(module.exeDisplayDataList())
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1019 elif hasattr(module, "exeDisplayData"):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1020 infos.append(module.exeDisplayData())
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1021 for module in list(self.__onDemandActiveModules.values()) + \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1022 list(self.__onDemandInactiveModules.values()):
438
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1023 if hasattr(module, "exeDisplayDataList"):
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1024 infos.extend(module.exeDisplayDataList())
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 415
diff changeset
1025 elif hasattr(module, "exeDisplayData"):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1026 infos.append(module.exeDisplayData())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1027
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1028 return infos
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1029
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1030 def getPluginConfigData(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1031 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1032 Public method to get the config data of all active, non on-demand
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1033 plugins used by the configuration dialog.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1034
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1035 Plugins supporting this functionality must provide the plugin module
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1036 function 'getConfigData' returning a dictionary with unique keys
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1037 of lists with the following list contents:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1038 <dl>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1039 <dt>display string</dt>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1040 <dd>string shown in the selection area of the configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1041 This should be a localized string</dd>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1042 <dt>pixmap name</dt>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1043 <dd>filename of the pixmap to be shown next to the display
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1044 string</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 <dt>page creation function</dt>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046 <dd>plugin module function to be called to create the configuration
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1047 page. The page must be subclasses from
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1048 Preferences.ConfigurationPages.ConfigurationPageBase and must
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1049 implement a method called 'save' to save the settings. A parent
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1050 entry will be created in the selection list, if this value is
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1051 None.</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052 <dt>parent key</dt>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1053 <dd>dictionary key of the parent entry or None, if this defines a
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1054 toplevel entry.</dd>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1055 <dt>reference to configuration page</dt>
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1056 <dd>This will be used by the configuration dialog and must always
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1057 be None</dd>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1058 </dl>
2960
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
1059
9453efa25fd5 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2889
diff changeset
1060 @return plug-in configuration data
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 configData = {}
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1063 for module in list(self.__activeModules.values()) + \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1064 list(self.__onDemandActiveModules.values()) + \
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1065 list(self.__onDemandInactiveModules.values()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1066 if hasattr(module, 'getConfigData'):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1067 configData.update(module.getConfigData())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068 return configData
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1069
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1070 def isPluginLoaded(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1071 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072 Public method to check, if a certain plugin is loaded.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073
110
c9a969db1469 Fixed doc string still containing QString and QStringList.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
1074 @param pluginName name of the plugin to check for (string)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1075 @return flag indicating, if the plugin is loaded (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1076 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1077 return pluginName in self.__activeModules or \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1078 pluginName in self.__inactiveModules or \
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1079 pluginName in self.__onDemandActiveModules or \
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1080 pluginName in self.__onDemandInactiveModules
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1081
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1082 def isPluginActive(self, pluginName):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1083 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1084 Public method to check, if a certain plugin is active.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1085
110
c9a969db1469 Fixed doc string still containing QString and QStringList.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
1086 @param pluginName name of the plugin to check for (string)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1087 @return flag indicating, if the plugin is active (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1088 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1089 return pluginName in self.__activeModules or \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1090 pluginName in self.__onDemandActiveModules
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1091
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1092 ###########################################################################
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1093 ## Specialized plug-in module handling methods below
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1094 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1095
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1096 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1097 ## VCS related methods below
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1098 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1099
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1100 def getVcsSystemIndicators(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1101 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1102 Public method to get the Vcs System indicators.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1103
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1104 Plugins supporting this functionality must support the module function
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1105 getVcsSystemIndicator returning a dictionary with indicator as key and
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1106 a tuple with the vcs name (string) and vcs display string (string).
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1107
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1108 @return dictionary with indicator as key and a list of tuples as
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1109 values. Each tuple contains the vcs name (string) and vcs display
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1110 string (string).
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1112 vcsDict = {}
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1113
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1114 for module in list(self.__onDemandActiveModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1115 list(self.__onDemandInactiveModules.values()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
1116 if getattr(module, "pluginType", "") == "version_control":
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1117 if hasattr(module, "getVcsSystemIndicator"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 res = module.getVcsSystemIndicator()
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1119 for indicator, vcsData in list(res.items()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1120 if indicator in vcsDict:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1121 vcsDict[indicator].append(vcsData)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1122 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1123 vcsDict[indicator] = [vcsData]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1124
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1125 return vcsDict
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1126
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1127 def deactivateVcsPlugins(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1128 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1129 Public method to deactivated all activated VCS plugins.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1130 """
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1131 for name, module in list(self.__onDemandActiveModules.items()):
7023
b025e93cc27d PluginManager, PluginUninstallDialog: changed some getattr() calls detected by the new code style checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
1132 if getattr(module, "pluginType", "") == "version_control":
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1133 self.deactivatePlugin(name, True)
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1134
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1135 ########################################################################
4630
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1136 ## Methods for the creation of the plug-ins download directory
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1137 ########################################################################
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1138
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1139 def __checkPluginsDownloadDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1140 """
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1141 Private slot to check for the existence of the plugins download
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1142 directory.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1143 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1144 downloadDir = Preferences.getPluginManager("DownloadPath")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1145 if not downloadDir:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1146 downloadDir = self.__defaultDownloadDir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1147
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1148 if not os.path.exists(downloadDir):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1149 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1150 os.mkdir(downloadDir, 0o755)
6360
73033fa6a99c Fixed some pyflakes warnings detected by the upgraded version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6267
diff changeset
1151 except (OSError, IOError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1152 # try again with (possibly) new default
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1153 downloadDir = self.__defaultDownloadDir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1154 if not os.path.exists(downloadDir):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1155 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1156 os.mkdir(downloadDir, 0o755)
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1157 except (OSError, IOError) as err:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
1158 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
1159 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1160 self.tr("Plugin Manager Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1161 self.tr(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1162 """<p>The plugin download directory"""
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1163 """ <b>{0}</b> could not be created. Please"""
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1164 """ configure it via the configuration"""
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2960
diff changeset
1165 """ dialog.</p><p>Reason: {1}</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1166 .format(downloadDir, str(err)))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1167 downloadDir = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1168
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1169 Preferences.setPluginManager("DownloadPath", downloadDir)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1170
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1171 def preferencesChanged(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1172 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1173 Public slot to react to changes in configuration.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1174 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1175 self.__checkPluginsDownloadDirectory()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1176
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1177 ########################################################################
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1178 ## Methods for automatic plug-in update check below
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1179 ########################################################################
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1180
4630
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1181 def __onlineStateChanged(self, online):
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1182 """
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1183 Private slot handling changes in online state.
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1184
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1185 @param online flag indicating the online state
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1186 @type bool
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1187 """
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1188 if online:
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1189 self.checkPluginUpdatesAvailable()
7b0e38956b5c Refined the online state change behaviour.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4629
diff changeset
1190
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1191 def checkPluginUpdatesAvailable(self):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1192 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1193 Public method to check the availability of updates of plug-ins.
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1194 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1195 period = Preferences.getPluginManager("UpdatesCheckInterval")
4629
99aaac59be4f Added a status bar icon to show the online status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4626
diff changeset
1196 if period == 0 or not self.__ui.isOnline():
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1197 return
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1198 elif period in [1, 2, 3]:
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1199 lastModified = QFileInfo(self.pluginRepositoryFile).lastModified()
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1200 if lastModified.isValid() and lastModified.date().isValid():
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1201 lastModifiedDate = lastModified.date()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1202 now = QDate.currentDate()
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1203 if period == 1 and lastModifiedDate.day() == now.day():
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1204 # daily
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1205 return
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1206 elif period == 2 and lastModifiedDate.daysTo(now) < 7:
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1207 # weekly
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1208 return
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1209 elif period == 3 and \
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1210 (lastModifiedDate.daysTo(now) <
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1211 lastModifiedDate.daysInMonth()):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1212 # monthly
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1213 return
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1214
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1215 self.__updateAvailable = False
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1216
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1217 request = QNetworkRequest(
3676
2f62b060a931 Renamed a few excternal references.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1218 QUrl(Preferences.getUI("PluginRepositoryUrl6")))
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1219 request.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1220 QNetworkRequest.AlwaysNetwork)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1221 reply = self.__networkManager.get(request)
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1222 reply.finished.connect(
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1223 lambda: self.__downloadRepositoryFileDone(reply))
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1224 self.__replies.append(reply)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1225
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1226 def __downloadRepositoryFileDone(self, reply):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1227 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1228 Private method called after the repository file was downloaded.
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1229
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1230 @param reply reference to the reply object of the download
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1231 @type QNetworkReply
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1232 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1233 if reply in self.__replies:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1234 self.__replies.remove(reply)
6088
b7fdd0db835e Removed use of sender() in the plug-in repository dialog and the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6080
diff changeset
1235
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1236 if reply.error() != QNetworkReply.NoError:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1237 E5MessageBox.warning(
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1238 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1239 self.tr("Error downloading file"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1240 self.tr(
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1241 """<p>Could not download the requested file"""
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1242 """ from {0}.</p><p>Error: {1}</p>"""
3676
2f62b060a931 Renamed a few excternal references.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1243 ).format(Preferences.getUI("PluginRepositoryUrl6"),
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1244 reply.errorString())
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1245 )
4626
c891c7ad6b60 Added some missing deleteLater() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4566
diff changeset
1246 reply.deleteLater()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1247 return
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1248
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1249 ioDevice = QFile(self.pluginRepositoryFile + ".tmp")
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1250 ioDevice.open(QIODevice.WriteOnly)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1251 ioDevice.write(reply.readAll())
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1252 ioDevice.close()
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1253 if QFile.exists(self.pluginRepositoryFile):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1254 QFile.remove(self.pluginRepositoryFile)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1255 ioDevice.rename(self.pluginRepositoryFile)
4626
c891c7ad6b60 Added some missing deleteLater() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4566
diff changeset
1256 reply.deleteLater()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1257
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1258 if os.path.exists(self.pluginRepositoryFile):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1259 f = QFile(self.pluginRepositoryFile)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1260 if f.open(QIODevice.ReadOnly):
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1261 # save current URL
3676
2f62b060a931 Renamed a few excternal references.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1262 url = Preferences.getUI("PluginRepositoryUrl6")
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1263
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1264 # read the repository file
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1265 from E5XML.PluginRepositoryReader import PluginRepositoryReader
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1266 reader = PluginRepositoryReader(f, self.checkPluginEntry)
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1267 reader.readXML()
3676
2f62b060a931 Renamed a few excternal references.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1268 if url != Preferences.getUI("PluginRepositoryUrl6"):
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1269 # redo if it is a redirect
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1270 self.checkPluginUpdatesAvailable()
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1271 return
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1272
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1273 if self.__updateAvailable:
3116
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1274 res = E5MessageBox.information(
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1275 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1276 self.tr("New plugin versions available"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1277 self.tr("<p>There are new plug-ins or plug-in"
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1278 " updates available. Use the plug-in"
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3171
diff changeset
1279 " repository dialog to get them.</p>"),
3116
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1280 E5MessageBox.StandardButtons(
3171
2c37b9a37b2d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1281 E5MessageBox.Ignore |
3116
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1282 E5MessageBox.Open),
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1283 E5MessageBox.Open)
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1284 if res == E5MessageBox.Open:
ee0a183cec81 Another refinement of the plug-in manager update check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3114
diff changeset
1285 self.__ui.showPluginsAvailable()
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1286
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1287 def checkPluginEntry(self, name, short, description, url, author, version,
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1288 filename, status):
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1289 """
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1290 Public method to check a plug-in's data for an update.
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1291
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1292 @param name data for the name field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1293 @param short data for the short field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1294 @param description data for the description field (list of strings)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1295 @param url data for the url field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1296 @param author data for the author field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1297 @param version data for the version field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1298 @param filename data for the filename field (string)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1299 @param status status of the plugin (string [stable, unstable, unknown])
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1300 """
3200
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1301 # ignore hidden plug-ins
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1302 pluginName = os.path.splitext(url.rsplit("/", 1)[1])[0]
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1303 if pluginName in Preferences.getPluginManager("HiddenPlugins"):
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1304 return
83bde5e6f146 Extended the plugin repository dialog to allow to hide unwanted entries and cleanup the plugin downloads area.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1305
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1306 archive = os.path.join(Preferences.getPluginManager("DownloadPath"),
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1307 filename)
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1308
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1309 # Check against installed/loaded plug-ins
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1310 pluginDetails = self.getPluginDetails(pluginName)
6611
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1311 if pluginDetails is None:
3113
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1312 if not Preferences.getPluginManager("CheckInstalledOnly"):
2780e230f129 Continued implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3112
diff changeset
1313 self.__updateAvailable = True
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1314 return
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1315
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1316 versionTuple = Globals.versionToTuple(version)[:3]
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1317 pluginVersionTuple = Globals.versionToTuple(
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1318 pluginDetails["version"])[:3]
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1319
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1320 if pluginVersionTuple < versionTuple:
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1321 self.__updateAvailable = True
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1322 return
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1323
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1324 if not Preferences.getPluginManager("CheckInstalledOnly"):
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1325 # Check against downloaded plugin archives
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1326 # 1. Check, if the archive file exists
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1327 if not os.path.exists(archive):
6611
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1328 if pluginDetails["moduleName"] != pluginName:
59b262a8e31c PluginManager: reworked the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6608
diff changeset
1329 self.__updateAvailable = True
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1330 return
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1331
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1332 # 2. Check, if the archive is a valid zip file
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1333 if not zipfile.is_zipfile(archive):
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1334 self.__updateAvailable = True
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1335 return
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1336
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1337 # 3. Check the version of the archive file
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1338 zipFile = zipfile.ZipFile(archive, "r")
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1339 try:
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1340 aversion = zipFile.read("VERSION").decode("utf-8")
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1341 except KeyError:
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1342 aversion = "0.0.0"
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5555
diff changeset
1343 zipFile.close()
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1344
6605
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1345 aversionTuple = Globals.versionToTuple(aversion)[:3]
6ae78749babc PluginManager: added version check for situation, where the downloaded files have been deleted already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1346 if aversionTuple != versionTuple:
3114
7942a890a4fc Refined the plug-in update check by checking against installed plug-ins before checking downloaded ones.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3113
diff changeset
1347 self.__updateAvailable = True
3112
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1348
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1349 def __sslErrors(self, reply, errors):
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1350 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1351 Private slot to handle SSL errors.
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1352
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1353 @param reply reference to the reply object (QNetworkReply)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1354 @param errors list of SSL errors (list of QSslError)
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1355 """
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1356 ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0]
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1357 if ignored == E5SslErrorHandler.NotIgnored:
9485059ea9fa Started implementing the automatic plug-in update check in the plug-in manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
1358 self.__downloadCancelled = True
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1359
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1360 ########################################################################
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1361 ## Methods to clear private data of plug-ins below
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1362 ########################################################################
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1363
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1364 def clearPluginsPrivateData(self, type_):
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1365 """
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1366 Public method to clear the private data of plug-ins of a specified
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1367 type.
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1368
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1369 Plugins supporting this functionality must support the module function
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1370 clearPrivateData() and have the module level attribute pluginType.
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1371
5853
e45a570528a4 Changed the safe browsing code to be less interruptive.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5726
diff changeset
1372 @param type_ type of the plugin to clear private data for (string)
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1373 """
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1374 for module in \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1375 list(self.__onDemandActiveModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1376 list(self.__onDemandInactiveModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1377 list(self.__activeModules.values()) + \
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6187
diff changeset
1378 list(self.__inactiveModules.values()):
5555
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1379 if getattr(module, "pluginType", "") == type_:
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1380 if hasattr(module, "clearPrivateData"):
5ece4e830780 Added some code to clear out history information of projects, VCS plug-ins and untyped plug-ins, that implement a clearPrivateData() module function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5395
diff changeset
1381 module.clearPrivateData()
4566
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1382
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1383 #
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4378
diff changeset
1384 # eflag: noqa = M801

eric ide

mercurial