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() maxLayersChanged = Signal()
currentLayerNumChanged = Signal() currentLayerNumChanged = Signal()
globalStackChanged = Signal() globalStackChanged = Signal()
preferencesChanged = Signal()
## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created ## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created
# as this caused some issues. # as this caused some issues.
@ -370,13 +371,16 @@ class LayerView(View):
self._top_layers_job = None self._top_layers_job = None
def _onPreferencesChanged(self, preference): 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 return
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count")) 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._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._startUpdateTopLayers()
self.preferencesChanged.emit()
def _getLegendItems(self): def _getLegendItems(self):
if self._legend_items is None: if self._legend_items is None:

View file

@ -17,6 +17,7 @@ class LayerViewProxy(QObject):
maxLayersChanged = pyqtSignal() maxLayersChanged = pyqtSignal()
activityChanged = pyqtSignal() activityChanged = pyqtSignal()
globalStackChanged = pyqtSignal() globalStackChanged = pyqtSignal()
preferencesChanged = pyqtSignal()
@pyqtProperty(bool, notify = activityChanged) @pyqtProperty(bool, notify = activityChanged)
def getLayerActivity(self): def getLayerActivity(self):
@ -52,7 +53,7 @@ class LayerViewProxy(QObject):
return False return False
@pyqtProperty(bool) @pyqtProperty(bool, notify = preferencesChanged)
def compatibilityMode(self): def compatibilityMode(self):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
@ -157,6 +158,9 @@ class LayerViewProxy(QObject):
def _onGlobalStackChanged(self): def _onGlobalStackChanged(self):
self.globalStackChanged.emit() self.globalStackChanged.emit()
def _onPreferencesChanged(self):
self.preferencesChanged.emit()
def _onActiveViewChanged(self): def _onActiveViewChanged(self):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
@ -164,3 +168,4 @@ class LayerViewProxy(QObject):
active_view.maxLayersChanged.connect(self._onMaxLayersChanged) active_view.maxLayersChanged.connect(self._onMaxLayersChanged)
active_view.busyChanged.connect(self._onBusyChanged) active_view.busyChanged.connect(self._onBusyChanged)
active_view.globalStackChanged.connect(self._onGlobalStackChanged) active_view.globalStackChanged.connect(self._onGlobalStackChanged)
active_view.preferencesChanged.connect(self._onPreferencesChanged)