Fixed warning non-NOTIFYable properties, added signals for propertiesChanged. CURA-3273

This commit is contained in:
Jack Ha 2017-02-13 09:58:33 +01:00
parent 30af908e29
commit 7000717f6e
2 changed files with 11 additions and 2 deletions

View file

@ -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:

View file

@ -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)