Added extra checks to prevent unneeded signal emits

This commit is contained in:
Jaime van Kessel 2017-01-24 13:29:33 +01:00
parent 699f7a143d
commit b284e8508a

View file

@ -70,8 +70,9 @@ class WorkspaceDialog(QObject):
return self._variant_type return self._variant_type
def setVariantType(self, variant_type): def setVariantType(self, variant_type):
self._variant_type = variant_type if self._variant_type != variant_type:
self.variantTypeChanged.emit() self._variant_type = variant_type
self.variantTypeChanged.emit()
@pyqtProperty(str, notify=machineTypeChanged) @pyqtProperty(str, notify=machineTypeChanged)
def machineType(self): def machineType(self):
@ -82,8 +83,9 @@ class WorkspaceDialog(QObject):
self.machineTypeChanged.emit() self.machineTypeChanged.emit()
def setNumUserSettings(self, num_user_settings): def setNumUserSettings(self, num_user_settings):
self._num_user_settings = num_user_settings if self._num_user_settings != num_user_settings:
self.numVisibleSettingsChanged.emit() self._num_user_settings = num_user_settings
self.numVisibleSettingsChanged.emit()
@pyqtProperty(int, notify=numUserSettingsChanged) @pyqtProperty(int, notify=numUserSettingsChanged)
def numUserSettings(self): def numUserSettings(self):
@ -94,40 +96,45 @@ class WorkspaceDialog(QObject):
return self._objects_on_plate return self._objects_on_plate
def setHasObjectsOnPlate(self, objects_on_plate): def setHasObjectsOnPlate(self, objects_on_plate):
self._objects_on_plate = objects_on_plate if self._objects_on_plate != objects_on_plate:
self.objectsOnPlateChanged.emit() self._objects_on_plate = objects_on_plate
self.objectsOnPlateChanged.emit()
@pyqtProperty("QVariantList", notify = materialLabelsChanged) @pyqtProperty("QVariantList", notify = materialLabelsChanged)
def materialLabels(self): def materialLabels(self):
return self._material_labels return self._material_labels
def setMaterialLabels(self, material_labels): def setMaterialLabels(self, material_labels):
self._material_labels = material_labels if self._material_labels != material_labels:
self.materialLabelsChanged.emit() self._material_labels = material_labels
self.materialLabelsChanged.emit()
@pyqtProperty("QVariantList", notify=extrudersChanged) @pyqtProperty("QVariantList", notify=extrudersChanged)
def extruders(self): def extruders(self):
return self._extruders return self._extruders
def setExtruders(self, extruders): def setExtruders(self, extruders):
self._extruders = extruders if self._extruders != extruders:
self.extrudersChanged.emit() self._extruders = extruders
self.extrudersChanged.emit()
@pyqtProperty(str, notify = machineNameChanged) @pyqtProperty(str, notify = machineNameChanged)
def machineName(self): def machineName(self):
return self._machine_name return self._machine_name
def setMachineName(self, machine_name): def setMachineName(self, machine_name):
self._machine_name = machine_name if self._machine_name != machine_name:
self.machineNameChanged.emit() self._machine_name = machine_name
self.machineNameChanged.emit()
@pyqtProperty(str, notify=qualityTypeChanged) @pyqtProperty(str, notify=qualityTypeChanged)
def qualityType(self): def qualityType(self):
return self._quality_type return self._quality_type
def setQualityType(self, quality_type): def setQualityType(self, quality_type):
self._quality_type = quality_type if self._quality_type != quality_type:
self.qualityTypeChanged.emit() self._quality_type = quality_type
self.qualityTypeChanged.emit()
@pyqtProperty(int, notify=numSettingsOverridenByQualityChangesChanged) @pyqtProperty(int, notify=numSettingsOverridenByQualityChangesChanged)
def numSettingsOverridenByQualityChanges(self): def numSettingsOverridenByQualityChanges(self):
@ -142,8 +149,9 @@ class WorkspaceDialog(QObject):
return self._quality_name return self._quality_name
def setQualityName(self, quality_name): def setQualityName(self, quality_name):
self._quality_name = quality_name if self._quality_name != quality_name:
self.qualityNameChanged.emit() self._quality_name = quality_name
self.qualityNameChanged.emit()
@pyqtProperty(str, notify=activeModeChanged) @pyqtProperty(str, notify=activeModeChanged)
def activeMode(self): def activeMode(self):
@ -165,8 +173,9 @@ class WorkspaceDialog(QObject):
return self._num_visible_settings return self._num_visible_settings
def setNumVisibleSettings(self, num_visible_settings): def setNumVisibleSettings(self, num_visible_settings):
self._num_visible_settings = num_visible_settings if self._num_visible_settings != num_visible_settings:
self.numVisibleSettingsChanged.emit() self._num_visible_settings = num_visible_settings
self.numVisibleSettingsChanged.emit()
@pyqtProperty(bool, notify = machineConflictChanged) @pyqtProperty(bool, notify = machineConflictChanged)
def machineConflict(self): def machineConflict(self):
@ -191,16 +200,19 @@ class WorkspaceDialog(QObject):
Application.getInstance().getBackend().close() Application.getInstance().getBackend().close()
def setMaterialConflict(self, material_conflict): def setMaterialConflict(self, material_conflict):
self._has_material_conflict = material_conflict if self._has_material_conflict != material_conflict:
self.materialConflictChanged.emit() self._has_material_conflict = material_conflict
self.materialConflictChanged.emit()
def setMachineConflict(self, machine_conflict): def setMachineConflict(self, machine_conflict):
self._has_machine_conflict = machine_conflict if self._has_machine_conflict != machine_conflict:
self.machineConflictChanged.emit() self._has_machine_conflict = machine_conflict
self.machineConflictChanged.emit()
def setQualityChangesConflict(self, quality_changes_conflict): def setQualityChangesConflict(self, quality_changes_conflict):
self._has_quality_changes_conflict = quality_changes_conflict if self._has_quality_changes_conflict != quality_changes_conflict:
self.qualityChangesConflictChanged.emit() self._has_quality_changes_conflict = quality_changes_conflict
self.qualityChangesConflictChanged.emit()
def getResult(self): def getResult(self):
if "machine" in self._result and not self._has_machine_conflict: if "machine" in self._result and not self._has_machine_conflict: