Catch and display errors while instantiating command plugins
Should generalize for all plugin types
This commit is contained in:
parent
5314a2c554
commit
add129b7e4
@ -8,6 +8,7 @@ from collections import defaultdict
|
|||||||
from PySide import QtCore, QtGui
|
from PySide import QtCore, QtGui
|
||||||
|
|
||||||
from mcedit2.command import SimpleRevisionCommand
|
from mcedit2.command import SimpleRevisionCommand
|
||||||
|
from mcedit2.dialogs.error_dialog import showErrorDialog
|
||||||
from mcedit2.plugins.registry import PluginClassRegistry
|
from mcedit2.plugins.registry import PluginClassRegistry
|
||||||
from mcedit2.widgets.blockpicker import BlockTypeButton
|
from mcedit2.widgets.blockpicker import BlockTypeButton
|
||||||
from mcedit2.widgets.layout import Column
|
from mcedit2.widgets.layout import Column
|
||||||
@ -328,12 +329,16 @@ class PluginsMenu(QtGui.QMenu):
|
|||||||
|
|
||||||
def loadPlugins(self):
|
def loadPlugins(self):
|
||||||
for cls in CommandPlugins.registeredPlugins:
|
for cls in CommandPlugins.registeredPlugins:
|
||||||
instance = cls(self.editorSession)
|
self.pluginAdded(cls)
|
||||||
self.plugins.append(instance)
|
|
||||||
|
|
||||||
def pluginAdded(self, cls):
|
def pluginAdded(self, cls):
|
||||||
instance = cls(self.editorSession)
|
try:
|
||||||
self.plugins.append(instance)
|
instance = cls(self.editorSession)
|
||||||
|
self.plugins.append(instance)
|
||||||
|
except Exception as e:
|
||||||
|
msg = "Error while instantiating plugin class %s" % (cls,)
|
||||||
|
log.exception(msg)
|
||||||
|
showErrorDialog(msg, fatal=False)
|
||||||
|
|
||||||
def pluginRemoved(self, cls):
|
def pluginRemoved(self, cls):
|
||||||
self.plugins = [p for p in self.plugins if not isinstance(p, cls)]
|
self.plugins = [p for p in self.plugins if not isinstance(p, cls)]
|
||||||
|
Reference in New Issue
Block a user