diff -r c7bc0e516cd6 -r 350655a6c85f PluginManager/PluginManager.py --- a/PluginManager/PluginManager.py Sun Apr 22 14:01:39 2018 +0200 +++ b/PluginManager/PluginManager.py Sun Apr 22 19:21:44 2018 +0200 @@ -65,7 +65,8 @@ pluginAboutToBeDeactivated = pyqtSignal(str, object) pluginDeactivated = pyqtSignal(str, object) - def __init__(self, parent=None, doLoadPlugins=True, develPlugin=None): + def __init__(self, parent=None, disabledPlugins=None, doLoadPlugins=True, + develPlugin=None): """ Constructor @@ -76,11 +77,17 @@ is the user plugin directory located inside the .eric6 directory of the users home directory. - @param parent reference to the parent object (QObject) - @keyparam doLoadPlugins flag indicating, that plugins should - be loaded (boolean) - @keyparam develPlugin filename of a plugin to be loaded for - development (string) + @param parent reference to the parent object + @type QObject + @param disabledPlugins list of plug-ins that have been disabled via + the command line parameters '--disable-plugin=' + @type list of str + @param doLoadPlugins flag indicating, that plug-ins should + be loaded + @type bool + @param develPlugin filename of a plug-in to be loaded for + development + @type str @exception PluginPathError raised to indicate an invalid plug-in path @exception PluginModulesError raised to indicate the absence of plug-in modules @@ -90,6 +97,10 @@ self.__ui = parent self.__develPluginFile = develPlugin self.__develPluginName = None + if disabledPlugins is not None: + self.__disabledPlugins = disabledPlugins[:] + else: + self.__disabledPlugins = [] self.__inactivePluginsKey = "PluginManager/InactivePlugins" @@ -531,13 +542,16 @@ """ savedInactiveList = Preferences.Prefs.settings.value( self.__inactivePluginsKey) + inactiveList = self.__disabledPlugins[:] + if savedInactiveList is not None: + inactiveList += [p for p in savedInactiveList + if p not in self.__disabledPlugins] if self.__develPluginName is not None and \ - savedInactiveList is not None and \ - self.__develPluginName in savedInactiveList: - savedInactiveList.remove(self.__develPluginName) + self.__develPluginName in inactiveList: + inactiveList.remove(self.__develPluginName) names = sorted(self.__inactiveModules.keys()) for name in names: - if savedInactiveList is None or name not in savedInactiveList: + if name not in inactiveList: self.activatePlugin(name) self.allPlugginsActivated.emit()