Browse Source

Create custom component for rows in WorkplaceDialog.

CURA-9424
Joey de l'Arago 2 years ago
parent
commit
8bb6083481
2 changed files with 64 additions and 132 deletions
  1. 30 132
      plugins/3MFReader/WorkspaceDialog.qml
  2. 34 0
      plugins/3MFReader/WorkspaceRow.qml

+ 30 - 132
plugins/3MFReader/WorkspaceDialog.qml

@@ -86,39 +86,16 @@ UM.Dialog
                             spacing: UM.Theme.getSize("default_margin").height
                             leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Type")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: manager.machineType
-                                    width: (parent.width / 3) | 0
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Type")
+                                rightLabelText: manager.machineType
                             }
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: manager.machineName
-                                    width: (parent.width / 3) | 0
-                                    wrapMode: Text.WordWrap
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name")
+                                rightLabelText: manager.machineName
                             }
                         }
 
@@ -183,79 +160,30 @@ UM.Dialog
                             spacing: UM.Theme.getSize("default_margin").height
                             leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Name")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: manager.qualityName
-                                    width: (parent.width / 3) | 0
-                                    wrapMode: Text.WordWrap
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Name")
+                                rightLabelText: manager.qualityName
                             }
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Intent")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: manager.intentName
-                                    width: (parent.width / 3) | 0
-                                    wrapMode: Text.WordWrap
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Intent")
+                                rightLabelText: manager.intentName
                             }
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Not in profile")
-                                    visible: manager.numUserSettings != 0
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings)
-                                    visible: manager.numUserSettings != 0
-                                    width: (parent.width / 3) | 0
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Not in profile")
+                                rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings)
+                                visible: manager.numUserSettings != 0
                             }
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Derivative from")
-                                    visible: manager.numSettingsOverridenByQualityChanges != 0
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges)
-                                    width: (parent.width / 3) | 0
-                                    visible: manager.numSettingsOverridenByQualityChanges != 0
-                                    wrapMode: Text.WordWrap
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Derivative from")
+                                rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges)
+                                visible: manager.numSettingsOverridenByQualityChanges != 0
                             }
                         }
 
@@ -294,21 +222,10 @@ UM.Dialog
                             Repeater
                             {
                                 model: manager.materialLabels
-                                delegate: Row
+                                delegate: WorkspaceRow
                                 {
-                                    width: parent.width
-                                    height: childrenRect.height
-                                    UM.Label
-                                    {
-                                        text: catalog.i18nc("@action:label", "Name")
-                                        width: (parent.width / 3) | 0
-                                    }
-                                    UM.Label
-                                    {
-                                        text: modelData
-                                        width: (parent.width / 3) | 0
-                                        wrapMode: Text.WordWrap
-                                    }
+                                    leftLabelText: catalog.i18nc("@action:label", "Name")
+                                    rightLabelText: modelData
                                 }
                             }
                         }
@@ -346,36 +263,17 @@ UM.Dialog
                             spacing: UM.Theme.getSize("default_margin").height
                             leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width
 
-                            Row
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Mode")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: manager.activeMode
-                                    width: (parent.width / 3) | 0
-                                }
+                                leftLabelText: catalog.i18nc("@action:label", "Mode")
+                                rightLabelText: manager.activeMode
                             }
-                            Row
+
+                            WorkspaceRow
                             {
-                                width: parent.width
-                                height: childrenRect.height
+                                leftLabelText: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings)
+                                rightLabelText: manager.activeMode
                                 visible: manager.hasVisibleSettingsField
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "Visible settings:")
-                                    width: (parent.width / 3) | 0
-                                }
-                                UM.Label
-                                {
-                                    text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings)
-                                    width: (parent.width / 3) | 0
-                                }
                             }
                         }
                     }

+ 34 - 0
plugins/3MFReader/WorkspaceRow.qml

@@ -0,0 +1,34 @@
+// Copyright (c) 2022 Ultimaker B.V.
+// Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.10
+import QtQuick.Controls 2.3
+import QtQuick.Layouts 1.3
+import QtQuick.Window 2.2
+
+import UM 1.5 as UM
+import Cura 1.1 as Cura
+
+Row
+{
+    property alias leftLabelText: leftLabel.text
+    property alias rightLabelText: rightLabel.text
+
+    width: parent.width
+    height: visible ? childrenRect.height : 0
+
+    UM.Label
+    {
+        id: leftLabel
+        text: catalog.i18nc("@action:label", "Type")
+        width: (parent.width / 4) | 0
+        wrapMode: Text.WordWrap
+    }
+    UM.Label
+    {
+        id: rightLabel
+        text: manager.machineType
+        width: (parent.width / 3) | 0
+        wrapMode: Text.WordWrap
+    }
+}