From 7000717f6e2f5a6cd1c061d59bdffae3baaf152e Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 13 Feb 2017 09:58:33 +0100 Subject: [PATCH] Fixed warning non-NOTIFYable properties, added signals for propertiesChanged. CURA-3273 --- plugins/LayerView/LayerView.py | 6 +++++- plugins/LayerView/LayerViewProxy.py | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index c75c2eac0c..77c17a0aea 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -263,6 +263,7 @@ class LayerView(View): maxLayersChanged = Signal() currentLayerNumChanged = Signal() globalStackChanged = Signal() + preferencesChanged = Signal() ## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created # as this caused some issues. @@ -370,13 +371,16 @@ class LayerView(View): self._top_layers_job = None def _onPreferencesChanged(self, preference): - if preference not in {"view/top_layer_count", "view/only_show_top_layers", "view/compatibility_mode"}: + if preference not in {"view/top_layer_count", "view/only_show_top_layers", "view/force_layer_view_compatibility_mode"}: return self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count")) self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers")) + self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool( + Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode")) self._startUpdateTopLayers() + self.preferencesChanged.emit() def _getLegendItems(self): if self._legend_items is None: diff --git a/plugins/LayerView/LayerViewProxy.py b/plugins/LayerView/LayerViewProxy.py index d386b53d01..b3a1cca87d 100644 --- a/plugins/LayerView/LayerViewProxy.py +++ b/plugins/LayerView/LayerViewProxy.py @@ -17,6 +17,7 @@ class LayerViewProxy(QObject): maxLayersChanged = pyqtSignal() activityChanged = pyqtSignal() globalStackChanged = pyqtSignal() + preferencesChanged = pyqtSignal() @pyqtProperty(bool, notify = activityChanged) def getLayerActivity(self): @@ -52,7 +53,7 @@ class LayerViewProxy(QObject): return False - @pyqtProperty(bool) + @pyqtProperty(bool, notify = preferencesChanged) def compatibilityMode(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: @@ -157,6 +158,9 @@ class LayerViewProxy(QObject): def _onGlobalStackChanged(self): self.globalStackChanged.emit() + def _onPreferencesChanged(self): + self.preferencesChanged.emit() + def _onActiveViewChanged(self): active_view = self._controller.getActiveView() if type(active_view) == LayerView.LayerView.LayerView: @@ -164,3 +168,4 @@ class LayerViewProxy(QObject): active_view.maxLayersChanged.connect(self._onMaxLayersChanged) active_view.busyChanged.connect(self._onBusyChanged) active_view.globalStackChanged.connect(self._onGlobalStackChanged) + active_view.preferencesChanged.connect(self._onPreferencesChanged)