From 72125d84bf91201e15a93acb60fbc8f59af9aae8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 8 Feb 2016 15:29:15 +0100 Subject: [PATCH] Fix problem with casting to QVariant This is a magical fix that Nallath and I found for a problem that shouldn't exist in the first place and sometimes doesn't exist at all and in the same time is a superposition of existing and not existing and it's all very complicated and an extremely weird hack. Casting this object to itself properly makes it castable to QVariant. Contributes to issue CURA-458. --- plugins/PerObjectSettingsTool/PerObjectSettingsTool.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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))