Added num user settings to workspace loading

CURA-1263
This commit is contained in:
Jaime van Kessel 2016-12-16 10:26:30 +01:00
parent e69747577b
commit 2be773c9a3
3 changed files with 32 additions and 1 deletions

View file

@ -54,6 +54,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
else: else:
Logger.log("w", "Could not find reader that was able to read the scene data for 3MF workspace") Logger.log("w", "Could not find reader that was able to read the scene data for 3MF workspace")
return WorkspaceReader.PreReadResult.failed return WorkspaceReader.PreReadResult.failed
machine_name = "" machine_name = ""
# Check if there are any conflicts, so we can ask the user. # Check if there are any conflicts, so we can ask the user.
archive = zipfile.ZipFile(file_name, "r") archive = zipfile.ZipFile(file_name, "r")
@ -95,6 +96,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
quality_name = "" quality_name = ""
quality_type = "" quality_type = ""
num_settings_overriden_by_quality_changes = 0 # How many settings are changed by the quality changes num_settings_overriden_by_quality_changes = 0 # How many settings are changed by the quality changes
num_user_settings = 0
for instance_container_file in instance_container_files: for instance_container_file in instance_container_files:
container_id = self._stripFileToId(instance_container_file) container_id = self._stripFileToId(instance_container_file)
instance_container = InstanceContainer(container_id) instance_container = InstanceContainer(container_id)
@ -117,6 +119,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
if quality_name == "": if quality_name == "":
quality_name = instance_container.getName() quality_name = instance_container.getName()
quality_type = instance_container.getName() quality_type = instance_container.getName()
elif container_type == "user":
num_user_settings += len(instance_container._instances)
Job.yieldThread() Job.yieldThread()
num_visible_settings = 0 num_visible_settings = 0
try: try:
@ -142,6 +146,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
self._dialog.setQualityName(quality_name) self._dialog.setQualityName(quality_name)
self._dialog.setQualityType(quality_type) self._dialog.setQualityType(quality_type)
self._dialog.setNumSettingsOverridenByQualityChanges(num_settings_overriden_by_quality_changes) self._dialog.setNumSettingsOverridenByQualityChanges(num_settings_overriden_by_quality_changes)
self._dialog.setNumUserSettings(num_user_settings)
self._dialog.setActiveMode(active_mode) self._dialog.setActiveMode(active_mode)
self._dialog.setMachineName(machine_name) self._dialog.setMachineName(machine_name)
self._dialog.setMaterialLabels(material_labels) self._dialog.setMaterialLabels(material_labels)

View file

@ -36,6 +36,7 @@ class WorkspaceDialog(QObject):
self._has_machine_conflict = False self._has_machine_conflict = False
self._has_material_conflict = False self._has_material_conflict = False
self._num_visible_settings = 0 self._num_visible_settings = 0
self._num_user_settings = 0
self._active_mode = "" self._active_mode = ""
self._quality_name = "" self._quality_name = ""
self._num_settings_overriden_by_quality_changes = 0 self._num_settings_overriden_by_quality_changes = 0
@ -55,6 +56,15 @@ class WorkspaceDialog(QObject):
machineNameChanged = pyqtSignal() machineNameChanged = pyqtSignal()
materialLabelsChanged = pyqtSignal() materialLabelsChanged = pyqtSignal()
objectsOnPlateChanged = pyqtSignal() objectsOnPlateChanged = pyqtSignal()
numUserSettingsChanged = pyqtSignal()
def setNumUserSettings(self, num_user_settings):
self._num_user_settings = num_user_settings
self.numVisibleSettingsChanged.emit()
@pyqtProperty(int, notify=numUserSettingsChanged)
def numUserSettings(self):
return self._num_user_settings
@pyqtProperty(bool, notify=objectsOnPlateChanged) @pyqtProperty(bool, notify=objectsOnPlateChanged)
def hasObjectsOnPlate(self): def hasObjectsOnPlate(self):

View file

@ -168,7 +168,23 @@ UM.Dialog
Row Row
{ {
width: parent.width width: parent.width
height: childrenRect.height height: manager.numUserSettings != 0 ? childrenRect.height : 0
Label
{
text: catalog.i18nc("@action:label", "Not in profile")
width: parent.width / 3
}
Label
{
text: catalog.i18nc("@action:label", "%1 override(s)").arg(manager.numUserSettings)
width: parent.width / 3
}
visible: manager.numUserSettings != 0
}
Row
{
width: parent.width
height: manager.numSettingsOverridenByQualityChanges != 0 ? childrenRect.height : 0
Label Label
{ {
text: catalog.i18nc("@action:label", "Derivative from") text: catalog.i18nc("@action:label", "Derivative from")