diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py index ab248529ea..d12d66a0e8 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py @@ -4,12 +4,14 @@ from UM.Tool import Tool from UM.Scene.Selection import Selection from UM.Application import Application +from UM.Qt.ListModel import ListModel from . import PerObjectSettingsModel class PerObjectSettingsTool(Tool): def __init__(self): super().__init__() + self._model = None self.setExposedProperties("Model", "SelectedIndex") @@ -17,7 +19,12 @@ class PerObjectSettingsTool(Tool): return False def getModel(self): - return PerObjectSettingsModel.PerObjectSettingsModel() + if not self._model: + self._model = PerObjectSettingsModel.PerObjectSettingsModel() + + #For some reason, casting this model to itself causes the model to properly be cast to a QVariant, even though it ultimately inherits from QVariant. + #Yeah, we have no idea either... + return PerObjectSettingsModel.PerObjectSettingsModel(self._model) def getSelectedIndex(self): selected_object_id = id(Selection.getSelectedObject(0))