From 99478d6a15acd9728482295e1bab131d543fc0a9 Mon Sep 17 00:00:00 2001 From: casper Date: Tue, 15 Feb 2022 11:18:02 +0100 Subject: [PATCH 01/15] Add "Ok" button in export/import materials popup dialog Proposed solution takes a different approach compared to the previous solution. Previously there was one message dialog that was hidden by default. When the import/export material confirm dialog was triggered the text and body of this message dialog would change. I did deviate from this pattern as this might introduce hard to debug issues when a property would be set on this dialog. As this dialog is used for various instances every instance should update the same properties. If one property is missed then the popup might show unwanted information. I propose a different solution instead. Here a popup is created dynamically. This way the properties used for each instance is clear. This might add a delay when showing the popup as the whole component needs to be created when called. CURA-8959 --- .../Preferences/Materials/MaterialsPage.qml | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsPage.qml b/resources/qml/Preferences/Materials/MaterialsPage.qml index dbcef6c573..2e4ded685d 100644 --- a/resources/qml/Preferences/Materials/MaterialsPage.qml +++ b/resources/qml/Preferences/Materials/MaterialsPage.qml @@ -335,16 +335,19 @@ Item folder: CuraApplication.getDefaultPath("dialog_material_path") onAccepted: { - var result = Cura.ContainerManager.importMaterialContainer(fileUrl); + const result = Cura.ContainerManager.importMaterialContainer(fileUrl); + const messageDialog = Qt.createQmlObject("import UM 1.5 as UM; UM.MessageDialog { onClosed: destroy() }", base); + messageDialog.standardButtons = Dialog.Ok; messageDialog.title = catalog.i18nc("@title:window", "Import Material"); - if(result.status == "success") + switch (result.status) { - messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully imported material %1").arg(fileUrl); - } - else - { - messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags or !", "Could not import material %1: %2").arg(fileUrl).arg(result.message); + case "success": + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully imported material %1").arg(fileUrl); + break; + default: + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags or !", "Could not import material %1: %2").arg(fileUrl).arg(result.message); + break; } messageDialog.open(); CuraApplication.setDefaultPath("dialog_material_path", folder); @@ -360,25 +363,23 @@ Item folder: CuraApplication.getDefaultPath("dialog_material_path") onAccepted: { - var result = Cura.ContainerManager.exportContainer(base.currentItem.root_material_id, selectedNameFilter, fileUrl); + const result = Cura.ContainerManager.exportContainer(base.currentItem.root_material_id, selectedNameFilter, fileUrl); + const messageDialog = Qt.createQmlObject("import UM 1.5 as UM; UM.MessageDialog { onClosed: destroy() }", base); messageDialog.title = catalog.i18nc("@title:window", "Export Material"); - if(result.status == "error") + messageDialog.standardButtons = Dialog.Ok; + switch (result.status) { - messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags and !", "Failed to export material to %1: %2").arg(fileUrl).arg(result.message); - messageDialog.open(); - } - else if(result.status == "success") - { - messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully exported material to %1").arg(result.path); - messageDialog.open(); + case "error": + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tags and !", "Failed to export material to %1: %2").arg(fileUrl).arg(result.message); + break; + case "success": + messageDialog.text = catalog.i18nc("@info:status Don't translate the XML tag !", "Successfully exported material to %1").arg(result.path); + break; } + messageDialog.open(); + CuraApplication.setDefaultPath("dialog_material_path", folder); } } - - UM.MessageDialog - { - id: messageDialog - } } From a20dac4c9b95d8308f38af08397318ee23599e45 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:08:06 +0100 Subject: [PATCH 02/15] Update ReadOnlyTextArea to controls 2 CURA-8685 --- .../qml/Preferences/Materials/MaterialsView.qml | 11 ++++++----- resources/qml/Preferences/ReadOnlyTextArea.qml | 17 +++++++++++------ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsView.qml b/resources/qml/Preferences/Materials/MaterialsView.qml index 6d153f5960..ecb9870fcf 100644 --- a/resources/qml/Preferences/Materials/MaterialsView.qml +++ b/resources/qml/Preferences/Materials/MaterialsView.qml @@ -363,10 +363,11 @@ Item ReadOnlyTextArea { text: properties.description; - width: 2 * informationPage.columnWidth + width: informationPage.columnWidth * 2 + height: 0.75 * informationPage.columnWidth wrapMode: Text.WordWrap - readOnly: !base.editingEnabled; + readOnly: !base.editingEnabled onEditingFinished: base.setMetaDataEntry("description", properties.description, text) } @@ -375,11 +376,11 @@ Item ReadOnlyTextArea { - text: properties.adhesion_info; + text: properties.adhesion_info width: 2 * informationPage.columnWidth wrapMode: Text.WordWrap - - readOnly: !base.editingEnabled; + height: 0.75 * informationPage.columnWidth + readOnly: !base.editingEnabled onEditingFinished: base.setMetaDataEntry("adhesion_info", properties.adhesion_info, text) } diff --git a/resources/qml/Preferences/ReadOnlyTextArea.qml b/resources/qml/Preferences/ReadOnlyTextArea.qml index 2c553ac2ca..97a89ff080 100644 --- a/resources/qml/Preferences/ReadOnlyTextArea.qml +++ b/resources/qml/Preferences/ReadOnlyTextArea.qml @@ -2,9 +2,9 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.15 -Item +ScrollView { id: base @@ -15,17 +15,22 @@ Item property bool readOnly: false - width: textArea.width - height: textArea.height - TextArea { id: textArea enabled: !base.readOnly opacity: base.readOnly ? 0.5 : 1.0 + selectByMouse: true - anchors.fill: parent + background: Rectangle + { + radius: UM.Theme.getSize("setting_control_radius").width + color: enabled ? UM.Theme.getColor("setting_control_disabled") : UM.Theme.getColor("setting_control") + } + + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default") Keys.onReturnPressed: { From da96cb833c11594cf10fba73431ebbeb97bf2652 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:16:16 +0100 Subject: [PATCH 03/15] Swap ReadOnlyTextfield to controls 2 CURA-8685 --- .../qml/Preferences/ReadOnlyTextArea.qml | 3 ++- .../qml/Preferences/ReadOnlyTextField.qml | 25 +++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/resources/qml/Preferences/ReadOnlyTextArea.qml b/resources/qml/Preferences/ReadOnlyTextArea.qml index 97a89ff080..e2a0da24f2 100644 --- a/resources/qml/Preferences/ReadOnlyTextArea.qml +++ b/resources/qml/Preferences/ReadOnlyTextArea.qml @@ -3,6 +3,7 @@ import QtQuick 2.1 import QtQuick.Controls 2.15 +import UM 1.5 as UM ScrollView { @@ -26,7 +27,7 @@ ScrollView background: Rectangle { radius: UM.Theme.getSize("setting_control_radius").width - color: enabled ? UM.Theme.getColor("setting_control_disabled") : UM.Theme.getColor("setting_control") + color: textArea.enabled ? UM.Theme.getColor("setting_control") : UM.Theme.getColor("setting_control_disabled") } color: UM.Theme.getColor("text") diff --git a/resources/qml/Preferences/ReadOnlyTextField.qml b/resources/qml/Preferences/ReadOnlyTextField.qml index 6f5a66d2a9..cc8e83647b 100644 --- a/resources/qml/Preferences/ReadOnlyTextField.qml +++ b/resources/qml/Preferences/ReadOnlyTextField.qml @@ -3,7 +3,8 @@ // Different than the name suggests, it is not always read-only. import QtQuick 2.1 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 +import UM 1.5 as UM Item { @@ -23,26 +24,18 @@ Item id: textField enabled: !base.readOnly - opacity: base.readOnly ? 0.5 : 1.0 + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default") anchors.fill: parent onEditingFinished: base.editingFinished() Keys.onEnterPressed: base.editingFinished() Keys.onReturnPressed: base.editingFinished() + background: Rectangle + { + radius: UM.Theme.getSize("setting_control_radius").width + color: textField.enabled ? UM.Theme.getColor("setting_control") : UM.Theme.getColor("setting_control_disabled") + } } - - Label - { - visible: base.readOnly - text: textField.text - - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: textField.__panel ? textField.__panel.leftMargin : 0 - - color: palette.buttonText - } - - SystemPalette { id: palette } } From 6be75c75f8fb6fbed0e5ab1c0856dd68ca569026 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:18:04 +0100 Subject: [PATCH 04/15] Simpify Readonly textarea CURA-8685 --- resources/qml/Preferences/ReadOnlyTextArea.qml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/resources/qml/Preferences/ReadOnlyTextArea.qml b/resources/qml/Preferences/ReadOnlyTextArea.qml index e2a0da24f2..c6f253f0ca 100644 --- a/resources/qml/Preferences/ReadOnlyTextArea.qml +++ b/resources/qml/Preferences/ReadOnlyTextArea.qml @@ -21,7 +21,6 @@ ScrollView id: textArea enabled: !base.readOnly - opacity: base.readOnly ? 0.5 : 1.0 selectByMouse: true background: Rectangle @@ -33,15 +32,9 @@ ScrollView color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") - Keys.onReturnPressed: - { - base.editingFinished() - } + Keys.onReturnPressed: base.editingFinished() - Keys.onEnterPressed: - { - base.editingFinished() - } + Keys.onEnterPressed: base.editingFinished() onActiveFocusChanged: { From 77b46868a6b0eb232ae1d0df7757ed2d83a3633c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:24:30 +0100 Subject: [PATCH 05/15] Replace imagereader controls with styled variants CURA-8685 --- plugins/ImageReader/ConfigUI.qml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index ecfc86fc05..c169f7648a 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -26,7 +26,7 @@ UM.Dialog rowSpacing: UM.Theme.getSize("thin_margin").height columns: 2 - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Height (mm)") @@ -39,7 +39,7 @@ UM.Dialog } } - TextField + Cura.TextField { id: peak_height Layout.fillWidth: true @@ -57,7 +57,7 @@ UM.Dialog y: peak_height.y + peak_height.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Base (mm)") @@ -71,7 +71,7 @@ UM.Dialog } } - TextField + Cura.TextField { id: base_height selectByMouse: true @@ -89,7 +89,7 @@ UM.Dialog y: base_height.y + base_height.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Width (mm)") @@ -102,7 +102,7 @@ UM.Dialog } } - TextField + Cura.TextField { id: width selectByMouse: true @@ -121,7 +121,7 @@ UM.Dialog y: width.y + width.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Depth (mm)") @@ -134,7 +134,7 @@ UM.Dialog } } - TextField + Cura.TextField { id: depth Layout.fillWidth: true @@ -153,7 +153,7 @@ UM.Dialog y: depth.y + depth.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: "" @@ -166,7 +166,7 @@ UM.Dialog } } - ComboBox + Cura.ComboBox { id: lighter_is_higher Layout.fillWidth: true @@ -184,7 +184,7 @@ UM.Dialog y: lighter_is_higher.y + lighter_is_higher.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Color Model") @@ -197,7 +197,7 @@ UM.Dialog } } - ComboBox + Cura.ComboBox { id: color_model Layout.fillWidth: true @@ -215,7 +215,7 @@ UM.Dialog y: color_model.y + color_model.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "1mm Transmittance (%)") @@ -228,7 +228,7 @@ UM.Dialog } } - TextField + Cura.TextField { id: transmittance Layout.fillWidth: true @@ -246,7 +246,7 @@ UM.Dialog y: transmittance.y + transmittance.height + UM.Theme.getSize("default_margin").height } - Label + UM.Label { Layout.fillWidth: true text: catalog.i18nc("@action:label", "Smoothing") From b45b3faa3c92664c39db25eea883fb0389150617 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:32:29 +0100 Subject: [PATCH 06/15] Replace textField in JobSpecs CURA-8685 --- plugins/ImageReader/ConfigUI.qml | 2 ++ resources/qml/JobSpecs.qml | 30 ++++++++++-------------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index c169f7648a..4b3035f271 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -18,6 +18,8 @@ UM.Dialog width: minimumWidth height: minimumHeight + + GridLayout { UM.I18nCatalog { id: catalog; name: "cura" } diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 878051a4d0..2fe0c7c4a8 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -1,9 +1,8 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import UM 1.5 as UM @@ -29,7 +28,8 @@ Item { if (!activity) { - //When there is no mesh in the buildplate; the printJobTextField is set to an empty string so it doesn't set an empty string as a jobName (which is later used for saving the file) + // When there is no mesh in the buildplate; the printJobTextField is set to an empty string so it doesn't + // set an empty string as a jobName (which is later used for saving the file) PrintInformation.baseName = "" } } @@ -66,7 +66,7 @@ Item height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 - text: (PrintInformation === null) ? "" : PrintInformation.jobName + text: PrintInformation === null ? "" : PrintInformation.jobName horizontalAlignment: TextInput.AlignLeft property string textBeforeEdit: "" @@ -91,17 +91,10 @@ Item validator: RegExpValidator { regExp: /^[^\\\/\*\?\|\[\]]*$/ } - - style: TextFieldStyle - { - textColor: UM.Theme.getColor("text_scene") - font: UM.Theme.getFont("default") - background: Rectangle - { - opacity: 0 - border.width: 0 - } - } + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text_scene") + background: Item {} + selectByMouse: true } } @@ -125,10 +118,7 @@ Item anchors.leftMargin: UM.Theme.getSize("default_margin").width } - Component.onCompleted: - { - base.addAdditionalComponents("jobSpecsButton") - } + Component.onCompleted: base.addAdditionalComponents("jobSpecsButton") Connections { From 713a5cb4e5500e7f96ca7139eb122ce068f0c456 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:38:08 +0100 Subject: [PATCH 07/15] Ensure that settingPickDialog uses the themed controls CURA-8685 --- plugins/PerObjectSettingsTool/PerObjectCategory.qml | 6 +++--- plugins/PerObjectSettingsTool/PerObjectItem.qml | 3 ++- plugins/PerObjectSettingsTool/SettingPickDialog.qml | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectCategory.qml b/plugins/PerObjectSettingsTool/PerObjectCategory.qml index d23b0b9458..3f95d4e021 100644 --- a/plugins/PerObjectSettingsTool/PerObjectCategory.qml +++ b/plugins/PerObjectSettingsTool/PerObjectCategory.qml @@ -4,8 +4,8 @@ import QtQuick 2.2 import QtQuick.Controls 2.1 -import UM 1.1 as UM - +import UM 1.5 as UM +import Cura 1.0 as Cura import ".." Button { @@ -33,7 +33,7 @@ Button { source: UM.Theme.getIcon(definition.icon) color: base.hovered ? palette.highlight : palette.buttonText } - Label + UM.Label { id: label anchors.verticalCenter: parent.verticalCenter diff --git a/plugins/PerObjectSettingsTool/PerObjectItem.qml b/plugins/PerObjectSettingsTool/PerObjectItem.qml index dd74721464..5c67a42d01 100644 --- a/plugins/PerObjectSettingsTool/PerObjectItem.qml +++ b/plugins/PerObjectSettingsTool/PerObjectItem.qml @@ -6,6 +6,7 @@ import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 import UM 1.2 as UM +import Cura 1.0 as Cura UM.TooltipArea { @@ -15,7 +16,7 @@ UM.TooltipArea width: childrenRect.width; height: childrenRect.height; - CheckBox + Cura.CheckBox { id: check diff --git a/plugins/PerObjectSettingsTool/SettingPickDialog.qml b/plugins/PerObjectSettingsTool/SettingPickDialog.qml index 1c79a02c97..46c9825334 100644 --- a/plugins/PerObjectSettingsTool/SettingPickDialog.qml +++ b/plugins/PerObjectSettingsTool/SettingPickDialog.qml @@ -42,7 +42,7 @@ UM.Dialog listview.model.filter = new_filter } - TextField + Cura.TextField { id: filterInput selectByMouse: true @@ -60,7 +60,7 @@ UM.Dialog onTextChanged: settingPickDialog.updateFilter() } - CheckBox + Cura.CheckBox { id: toggleShowAll anchors From 40f835ed13ceca40b95c70defcfc3acd3044e978 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:50:48 +0100 Subject: [PATCH 08/15] Replace labels for UM.Label in DiscoverUM3Action CURA-8685 --- .../resources/qml/DiscoverUM3Action.qml | 68 ++++++------------- 1 file changed, 21 insertions(+), 47 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index 94e265e4b8..2ddb0f7f58 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -37,22 +37,17 @@ Cura.MachineAction SystemPalette { id: palette } UM.I18nCatalog { id: catalog; name:"cura" } - Label + UM.Label { id: pageTitle width: parent.width text: catalog.i18nc("@title:window", "Connect to Networked Printer") - wrapMode: Text.WordWrap - renderType: Text.NativeRendering - font.pointSize: 18 } - Label + UM.Label { id: pageDescription width: parent.width - wrapMode: Text.WordWrap - renderType: Text.NativeRendering text: catalog.i18nc("@label", "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.") + "\n\n" + catalog.i18nc("@label", "Select your printer from the list below:") } @@ -158,13 +153,11 @@ Cura.MachineAction } } } - Label + UM.Label { id: discoveryTip anchors.left: parent.left anchors.right: parent.right - wrapMode: Text.WordWrap - renderType: Text.NativeRendering text: catalog.i18nc("@label", "If your printer is not listed, read the network printing troubleshooting guide").arg("https://ultimaker.com/en/cura/troubleshooting/network?utm_source=cura&utm_medium=software&utm_campaign=manage-network-printer"); onLinkActivated: Qt.openUrlExternally(link) } @@ -175,32 +168,27 @@ Cura.MachineAction width: Math.round(parent.width * 0.5) visible: base.selectedDevice ? true : false spacing: UM.Theme.getSize("default_margin").height - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap text: base.selectedDevice ? base.selectedDevice.name : "" font: UM.Theme.getFont("large_bold") elide: Text.ElideRight - renderType: Text.NativeRendering } Grid { visible: base.completeProperties width: parent.width columns: 2 - Label + property real labelWidth: Math.round(width * 0.5) + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: catalog.i18nc("@label", "Type") } - Label + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: { if (base.selectedDevice) { @@ -209,41 +197,31 @@ Cura.MachineAction return "" } } - Label + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: catalog.i18nc("@label", "Firmware version") } - Label + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: base.selectedDevice ? base.selectedDevice.firmwareVersion : "" } - Label + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: catalog.i18nc("@label", "Address") } - Label + UM.Label { - width: Math.round(parent.width * 0.5) - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + width: labelWidth text: base.selectedDevice ? base.selectedDevice.ipAddress : "" } } - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap - renderType: Text.NativeRendering text:{ // The property cluster size does not exist for older UM3 devices. if(!base.selectedDevice || base.selectedDevice.clusterSize == null || base.selectedDevice.clusterSize == 1) @@ -261,11 +239,9 @@ Cura.MachineAction } } - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap - renderType: Text.NativeRendering visible: base.selectedDevice != null && !base.completeProperties text: catalog.i18nc("@label", "The printer at this address has not yet responded." ) } @@ -316,15 +292,13 @@ Cura.MachineAction anchors.fill: parent spacing: UM.Theme.getSize("default_margin").height - Label + UM.Label { text: catalog.i18nc("@label", "Enter the IP address of your printer on the network.") - width: parent.width - wrapMode: Text.WordWrap renderType: Text.NativeRendering } - TextField + Cura.TextField { id: addressField width: parent.width From 6ea7622a55d545f508ca46dc94c2ce0773ecd3da Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 15:57:50 +0100 Subject: [PATCH 09/15] Fix reference to property that didn't exist CURA-8685 --- resources/qml/JobSpecs.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 2fe0c7c4a8..03978cb69e 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -64,7 +64,7 @@ Item anchors.left: printJobPencilIcon.right anchors.leftMargin: UM.Theme.getSize("narrow_margin").width height: UM.Theme.getSize("jobspecs_line").height - width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) + width: Math.max(contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 text: PrintInformation === null ? "" : PrintInformation.jobName horizontalAlignment: TextInput.AlignLeft From d7758c0ee967e011dbefa084b9c5540573c77488 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 16:11:06 +0100 Subject: [PATCH 10/15] Swap out the GeneralPage items to use the themed ones CURA-8685 --- resources/qml/Preferences/GeneralPage.qml | 80 +++++++++++------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index b2461aad30..243dc384b7 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -148,7 +148,7 @@ UM.PreferencesPage UM.I18nCatalog{id: catalog; name: "cura"} width: preferencesScrollView.width - preferencesScrollBar.width - Label + UM.Label { font.bold: true text: catalog.i18nc("@label", "Interface") @@ -160,7 +160,7 @@ UM.PreferencesPage columns: 4 width: parent.width - Label + UM.Label { id: languageLabel text: "Language:" //Don't translate this, to make it easier to find the language drop-down if you can't read the current language. @@ -202,7 +202,7 @@ UM.PreferencesPage } } - ComboBox + Cura.ComboBox { id: languageComboBox @@ -233,13 +233,13 @@ UM.PreferencesPage } } - Label + UM.Label { id: currencyLabel text: catalog.i18nc("@label", "Currency:") } - TextField + Cura.TextField { id: currencyField selectByMouse: true @@ -247,7 +247,7 @@ UM.PreferencesPage onTextChanged: UM.Preferences.setValue("cura/currency", text) } - Label + UM.Label { id: themeLabel text: catalog.i18nc("@label","Theme:") @@ -266,7 +266,7 @@ UM.PreferencesPage } } - ComboBox + Cura.ComboBox { id: themeComboBox @@ -290,7 +290,7 @@ UM.PreferencesPage } } - Label + UM.Label { id: languageCaption @@ -314,7 +314,7 @@ UM.PreferencesPage text: catalog.i18nc("@info:tooltip", "Slice automatically when changing settings.") - CheckBox + Cura.CheckBox { id: autoSliceCheckbox checked: boolCheck(UM.Preferences.getValue("general/auto_slice")) @@ -331,7 +331,7 @@ UM.PreferencesPage width: UM.Theme.getSize("default_margin").width } - Label + UM.Label { font.bold: true text: catalog.i18nc("@label", "Viewport behavior") @@ -344,7 +344,7 @@ UM.PreferencesPage text: catalog.i18nc("@info:tooltip", "Highlight unsupported areas of the model in red. Without support these areas will not print properly.") - CheckBox + Cura.CheckBox { id: showOverhangCheckbox @@ -363,7 +363,7 @@ UM.PreferencesPage text: catalog.i18nc("@info:tooltip", "Highlight missing or extraneous surfaces of the model using warning signs. The toolpaths will often be missing parts of the intended geometry.") - CheckBox + Cura.CheckBox { id: showXrayErrorCheckbox @@ -380,7 +380,7 @@ UM.PreferencesPage height: childrenRect.height; text: catalog.i18nc("@info:tooltip", "Moves the camera so the model is in the center of the view when a model is selected") - CheckBox + Cura.CheckBox { id: centerOnSelectCheckbox text: catalog.i18nc("@action:button","Center camera when item is selected"); @@ -395,7 +395,7 @@ UM.PreferencesPage height: childrenRect.height; text: catalog.i18nc("@info:tooltip", "Should the default zoom behavior of cura be inverted?") - CheckBox + Cura.CheckBox { id: invertZoomCheckbox text: catalog.i18nc("@action:button", "Invert the direction of camera zoom."); @@ -416,7 +416,7 @@ UM.PreferencesPage height: childrenRect.height; text: zoomToMouseCheckbox.enabled ? catalog.i18nc("@info:tooltip", "Should zooming move in the direction of the mouse?") : catalog.i18nc("@info:tooltip", "Zooming towards the mouse is not supported in the orthographic perspective.") - CheckBox + Cura.CheckBox { id: zoomToMouseCheckbox text: catalog.i18nc("@action:button", "Zoom toward mouse direction") @@ -447,7 +447,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved so that they no longer intersect?") - CheckBox + Cura.CheckBox { id: pushFreeCheckbox text: catalog.i18nc("@option:check", "Ensure models are kept apart") @@ -461,7 +461,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved down to touch the build plate?") - CheckBox + Cura.CheckBox { id: dropDownCheckbox text: catalog.i18nc("@option:check", "Automatically drop models to the build plate") @@ -478,7 +478,7 @@ UM.PreferencesPage text: catalog.i18nc("@info:tooltip","Show caution message in g-code reader.") - CheckBox + Cura.CheckBox { id: gcodeShowCautionCheckbox @@ -495,7 +495,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should layer be forced into compatibility mode?") - CheckBox + Cura.CheckBox { id: forceLayerViewCompatibilityModeCheckbox text: catalog.i18nc("@option:check", "Force layer view compatibility mode (restart required)") @@ -510,7 +510,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should Cura open at the location it was closed?") - CheckBox + Cura.CheckBox { id: restoreWindowPositionCheckbox text: catalog.i18nc("@option:check", "Restore window position on start") @@ -528,7 +528,7 @@ UM.PreferencesPage { spacing: 4 * screenScaleFactor - Label + UM.Label { text: catalog.i18nc("@window:text", "Camera rendering:") } @@ -542,7 +542,7 @@ UM.PreferencesPage } } - ComboBox + Cura.ComboBox { id: cameraComboBox @@ -573,7 +573,7 @@ UM.PreferencesPage width: UM.Theme.getSize("default_margin").height } - Label + UM.Label { font.bold: true text: catalog.i18nc("@label","Opening and saving files") @@ -585,7 +585,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip","Should opening files from the desktop or external applications open in the same instance of Cura?") - CheckBox + Cura.CheckBox { id: singleInstanceCheckbox text: catalog.i18nc("@option:check","Use a single instance of Cura") @@ -601,7 +601,7 @@ UM.PreferencesPage text: catalog.i18nc("@info:tooltip","Should the build plate be cleared before loading a new model in the single instance of Cura?") enabled: singleInstanceCheckbox.checked - CheckBox + Cura.CheckBox { id: singleInstanceClearBeforeLoadCheckbox text: catalog.i18nc("@option:check","Clear buildplate before loading model into the single instance") @@ -616,7 +616,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?") - CheckBox + Cura.CheckBox { id: scaleToFitCheckbox text: catalog.i18nc("@option:check","Scale large models") @@ -631,7 +631,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?") - CheckBox + Cura.CheckBox { id: scaleTinyCheckbox text: catalog.i18nc("@option:check","Scale extremely small models") @@ -646,7 +646,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip","Should models be selected after they are loaded?") - CheckBox + Cura.CheckBox { id: selectModelsOnLoadCheckbox text: catalog.i18nc("@option:check","Select models when loaded") @@ -661,7 +661,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should a prefix based on the printer name be added to the print job name automatically?") - CheckBox + Cura.CheckBox { id: prefixJobNameCheckbox text: catalog.i18nc("@option:check", "Add machine prefix to job name") @@ -676,7 +676,7 @@ UM.PreferencesPage height: childrenRect.height text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?") - CheckBox + Cura.CheckBox { text: catalog.i18nc("@option:check", "Show summary dialog when saving project") checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_project_save")) @@ -694,12 +694,12 @@ UM.PreferencesPage { spacing: 4 * screenScaleFactor - Label + UM.Label { text: catalog.i18nc("@window:text", "Default behavior when opening a project file: ") } - ComboBox + Cura.ComboBox { id: choiceOnOpenProjectDropDownButton width: Math.round(250 * screenScaleFactor) @@ -755,18 +755,18 @@ UM.PreferencesPage { spacing: 4 * screenScaleFactor - Label + UM.Label { font.bold: true text: catalog.i18nc("@label", "Profiles") } - Label + UM.Label { text: catalog.i18nc("@window:text", "Default behavior for changed setting values when switching to a different profile: ") } - ComboBox + Cura.ComboBox { id: choiceOnProfileOverrideDropDownButton width: Math.round(250 * screenScaleFactor) @@ -810,7 +810,7 @@ UM.PreferencesPage width: UM.Theme.getSize("default_margin").height } - Label + UM.Label { font.bold: true text: catalog.i18nc("@label", "Privacy") @@ -821,7 +821,7 @@ UM.PreferencesPage height: visible ? childrenRect.height : 0 text: catalog.i18nc("@info:tooltip", "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.") - CheckBox + Cura.CheckBox { id: sendDataCheckbox text: catalog.i18nc("@option:check","Send (anonymous) print information") @@ -848,7 +848,7 @@ UM.PreferencesPage width: UM.Theme.getSize("default_margin").height } - Label + UM.Label { font.bold: true text: catalog.i18nc("@label", "Updates") @@ -860,7 +860,7 @@ UM.PreferencesPage height: visible ? childrenRect.height : 0 text: catalog.i18nc("@info:tooltip", "Should Cura check for updates when the program is started?") - CheckBox + Cura.CheckBox { id: checkUpdatesCheckbox text: catalog.i18nc("@option:check","Check for updates on start") @@ -913,7 +913,7 @@ UM.PreferencesPage height: visible ? childrenRect.height : 0 text: catalog.i18nc("@info:tooltip", "Should an automatic check for new plugins be done every time Cura is started? It is highly recommended that you do not disable this!") - CheckBox + Cura.CheckBox { id: pluginNotificationsUpdateCheckbox text: catalog.i18nc("@option:check", "Get notifications for plugin updates") From eb7ab657fe985bbca11b883f216eeb55cc727f4b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 16:26:58 +0100 Subject: [PATCH 11/15] Use Cura.Textfield in readonlyTextfield Less code duplication, which is always good CURA-8685 --- resources/qml/Preferences/ReadOnlyTextField.qml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/resources/qml/Preferences/ReadOnlyTextField.qml b/resources/qml/Preferences/ReadOnlyTextField.qml index cc8e83647b..57789cea3c 100644 --- a/resources/qml/Preferences/ReadOnlyTextField.qml +++ b/resources/qml/Preferences/ReadOnlyTextField.qml @@ -5,6 +5,7 @@ import QtQuick 2.1 import QtQuick.Controls 2.1 import UM 1.5 as UM +import Cura 1.0 as Cura Item { @@ -19,23 +20,16 @@ Item width: textField.width height: textField.height - TextField + Cura.TextField { id: textField enabled: !base.readOnly - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default") anchors.fill: parent onEditingFinished: base.editingFinished() Keys.onEnterPressed: base.editingFinished() Keys.onReturnPressed: base.editingFinished() - background: Rectangle - { - radius: UM.Theme.getSize("setting_control_radius").width - color: textField.enabled ? UM.Theme.getColor("setting_control") : UM.Theme.getColor("setting_control_disabled") - } } } From 13227249b5c971112e3741751dd39a1653712755 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 16:28:29 +0100 Subject: [PATCH 12/15] Remove catalog from Textfield The creation of the catalog is rather slow, so it's better not to create it for every component --- resources/qml/Preferences/ReadOnlyTextField.qml | 2 +- resources/qml/Widgets/TextField.qml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/qml/Preferences/ReadOnlyTextField.qml b/resources/qml/Preferences/ReadOnlyTextField.qml index 57789cea3c..325081dd13 100644 --- a/resources/qml/Preferences/ReadOnlyTextField.qml +++ b/resources/qml/Preferences/ReadOnlyTextField.qml @@ -13,7 +13,7 @@ Item property alias text: textField.text - signal editingFinished(); + signal editingFinished() property bool readOnly: false diff --git a/resources/qml/Widgets/TextField.qml b/resources/qml/Widgets/TextField.qml index c126c8a6e0..9cb9a021e7 100644 --- a/resources/qml/Widgets/TextField.qml +++ b/resources/qml/Widgets/TextField.qml @@ -16,9 +16,7 @@ TextField id: textField property alias leftIcon: iconLeft.source - - UM.I18nCatalog { id: catalog; name: "cura" } - + hoverEnabled: true selectByMouse: true font: UM.Theme.getFont("default") From 821581bc65f8f072d1146e1cd92a454922087f2e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 17:07:22 +0100 Subject: [PATCH 13/15] Remove ProgressBar style and use UM.ProgressBar instead CURA-8685 --- .../FirmwareUpdaterMachineAction.qml | 4 +- resources/qml/MonitorButton.qml | 4 +- resources/qml/Widgets/TextField.qml | 2 +- resources/themes/cura-light/styles.qml | 51 ------------------- 4 files changed, 4 insertions(+), 57 deletions(-) diff --git a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml index eb12acce88..23485efb77 100644 --- a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml +++ b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml @@ -7,7 +7,7 @@ import QtQuick.Layouts 1.1 import QtQuick.Window 2.1 import QtQuick.Dialogs 1.2 // For filedialog -import UM 1.2 as UM +import UM 1.3 as UM import Cura 1.0 as Cura @@ -157,7 +157,7 @@ Cura.MachineAction wrapMode: Text.Wrap } - ProgressBar + UM.ProgressBar { id: prog value: (manager.firmwareUpdater != null) ? manager.firmwareUpdater.firmwareProgress / 100 : 0 diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 16c0ae086f..54b9437a6c 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -183,7 +183,7 @@ Item visible: showProgress } - ProgressBar + UM.ProgressBar { id: progressBar; minimumValue: 0; @@ -218,8 +218,6 @@ Item return false; } } - style: UM.Theme.styles.progressbar; - property string backgroundColor: UM.Theme.getColor("progressbar_background"); property string controlColor: base.statusColor; diff --git a/resources/qml/Widgets/TextField.qml b/resources/qml/Widgets/TextField.qml index 9cb9a021e7..b995c34f10 100644 --- a/resources/qml/Widgets/TextField.qml +++ b/resources/qml/Widgets/TextField.qml @@ -16,7 +16,7 @@ TextField id: textField property alias leftIcon: iconLeft.source - + hoverEnabled: true selectByMouse: true font: UM.Theme.getFont("default") diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 11dd2a70eb..2b5e4dc3ac 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -9,57 +9,6 @@ import UM 1.1 as UM QtObject { - property Component progressbar: Component - { - ProgressBarStyle - { - background: Rectangle - { - implicitWidth: UM.Theme.getSize("message").width - (UM.Theme.getSize("default_margin").width * 2) - implicitHeight: UM.Theme.getSize("progressbar").height - color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : UM.Theme.getColor("progressbar_background") - radius: UM.Theme.getSize("progressbar_radius").width - } - progress: Rectangle - { - color: - { - if(control.indeterminate) - { - return "transparent"; - } - else if(control.hasOwnProperty("controlColor")) - { - return control.controlColor; - } - else - { - return UM.Theme.getColor("progressbar_control"); - } - } - radius: UM.Theme.getSize("progressbar_radius").width - Rectangle - { - radius: UM.Theme.getSize("progressbar_radius").width - color: control.hasOwnProperty("controlColor") ? control.controlColor : UM.Theme.getColor("progressbar_control") - width: UM.Theme.getSize("progressbar_control").width - height: UM.Theme.getSize("progressbar_control").height - visible: control.indeterminate - - SequentialAnimation on x - { - id: xAnim - property int animEndPoint: UM.Theme.getSize("message").width - Math.round((UM.Theme.getSize("default_margin").width * 2.5)) - UM.Theme.getSize("progressbar_control").width - running: control.indeterminate && control.visible - loops: Animation.Infinite - NumberAnimation { from: 0; to: xAnim.animEndPoint; duration: 2000;} - NumberAnimation { from: xAnim.animEndPoint; to: 0; duration: 2000;} - } - } - } - } - } - property Component scrollview: Component { ScrollViewStyle From 5f3b35b30da33d136592f81a85fd26e38f66810c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Feb 2022 17:17:54 +0100 Subject: [PATCH 14/15] Use UM label for firmwareUpdater CURA-8685 --- .../FirmwareUpdaterMachineAction.qml | 41 ++++++++----------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml index 23485efb77..47387daa28 100644 --- a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml +++ b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -7,13 +7,13 @@ import QtQuick.Layouts 1.1 import QtQuick.Window 2.1 import QtQuick.Dialogs 1.2 // For filedialog -import UM 1.3 as UM +import UM 1.5 as UM import Cura 1.0 as Cura Cura.MachineAction { - anchors.fill: parent; + anchors.fill: parent property bool printerConnected: Cura.MachineManager.printerConnected property var activeOutputDevice: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null property bool canUpdateFirmware: activeOutputDevice ? activeOutputDevice.activePrinter.canUpdateFirmware : false @@ -25,25 +25,22 @@ Cura.MachineAction UM.I18nCatalog { id: catalog; name: "cura"} spacing: UM.Theme.getSize("default_margin").height - Label + UM.Label { width: parent.width text: catalog.i18nc("@title", "Update Firmware") - wrapMode: Text.WordWrap font.pointSize: 18 } - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work.") } - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap - text: catalog.i18nc("@label", "The firmware shipping with new printers works, but new versions tend to have more features and improvements."); + text: catalog.i18nc("@label", "The firmware shipping with new printers works, but new versions tend to have more features and improvements.") } Row @@ -55,7 +52,7 @@ Cura.MachineAction Button { id: autoUpgradeButton - text: catalog.i18nc("@action:button", "Automatically upgrade Firmware"); + text: catalog.i18nc("@action:button", "Automatically upgrade Firmware") enabled: parent.firmwareName != "" && canUpdateFirmware onClicked: { @@ -66,7 +63,7 @@ Cura.MachineAction Button { id: manualUpgradeButton - text: catalog.i18nc("@action:button", "Upload custom Firmware"); + text: catalog.i18nc("@action:button", "Upload custom Firmware") enabled: canUpdateFirmware onClicked: { @@ -75,20 +72,18 @@ Cura.MachineAction } } - Label + UM.Label { width: parent.width - wrapMode: Text.WordWrap visible: !printerConnected && !updateProgressDialog.visible - text: catalog.i18nc("@label", "Firmware can not be updated because there is no connection with the printer."); + text: catalog.i18nc("@label", "Firmware can not be updated because there is no connection with the printer.") } Label { width: parent.width - wrapMode: Text.WordWrap visible: printerConnected && !canUpdateFirmware - text: catalog.i18nc("@label", "Firmware can not be updated because the connection with the printer does not support upgrading firmware."); + text: catalog.i18nc("@label", "Firmware can not be updated because the connection with the printer does not support upgrading firmware.") } } @@ -122,7 +117,7 @@ Cura.MachineAction { anchors.fill: parent - Label + UM.Label { anchors { @@ -171,8 +166,8 @@ Cura.MachineAction } anchors { - left: parent.left; - right: parent.right; + left: parent.left + right: parent.right } } } @@ -180,9 +175,9 @@ Cura.MachineAction rightButtons: [ Button { - text: catalog.i18nc("@action:button","Close"); - enabled: (manager.firmwareUpdater != null) ? manager.firmwareUpdater.firmwareUpdateState != 1 : true; - onClicked: updateProgressDialog.visible = false; + text: catalog.i18nc("@action:button", "Close") + enabled: manager.firmwareUpdater != null ? manager.firmwareUpdater.firmwareUpdateState != 1 : true + onClicked: updateProgressDialog.visible = false } ] } From 9f7581d4e8229e9475b5bdda5ad4015e20a70d76 Mon Sep 17 00:00:00 2001 From: casper Date: Fri, 18 Feb 2022 08:57:38 +0100 Subject: [PATCH 15/15] Remove ReadOnlyTextField and use a ``` UM.TextField { enabled: false } ``` instead CURA-8688 --- .../Preferences/Materials/MaterialsView.qml | 28 +++++++-------- .../qml/Preferences/ReadOnlyTextField.qml | 35 ------------------- 2 files changed, 14 insertions(+), 49 deletions(-) delete mode 100644 resources/qml/Preferences/ReadOnlyTextField.qml diff --git a/resources/qml/Preferences/Materials/MaterialsView.qml b/resources/qml/Preferences/Materials/MaterialsView.qml index ecb9870fcf..d71a6f398f 100644 --- a/resources/qml/Preferences/Materials/MaterialsView.qml +++ b/resources/qml/Preferences/Materials/MaterialsView.qml @@ -148,32 +148,32 @@ Item } Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Display Name") } - ReadOnlyTextField + Cura.TextField { id: displayNameTextField; width: informationPage.columnWidth; text: properties.name; - readOnly: !base.editingEnabled; + enabled: base.editingEnabled; onEditingFinished: base.updateMaterialDisplayName(properties.name, text) } Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Brand") } - ReadOnlyTextField + Cura.TextField { - id: brandTextField; - width: informationPage.columnWidth; - text: properties.brand; - readOnly: !base.editingEnabled; + id: brandTextField + width: informationPage.columnWidth + text: properties.brand + enabled: base.editingEnabled onEditingFinished: base.updateMaterialBrand(properties.brand, text) } Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Material Type") } - ReadOnlyTextField + Cura.TextField { - id: materialTypeField; - width: informationPage.columnWidth; - text: properties.material; - readOnly: !base.editingEnabled; + id: materialTypeField + width: informationPage.columnWidth + text: properties.material + enabled: base.editingEnabled onEditingFinished: base.updateMaterialType(properties.material, text) } @@ -206,12 +206,12 @@ Item } // pretty color name text field - ReadOnlyTextField + Cura.TextField { id: colorLabel; width: parent.width - colorSelector.width - parent.spacing text: properties.color_name; - readOnly: !base.editingEnabled + enabled: base.editingEnabled onEditingFinished: base.setMetaDataEntry("color_name", properties.color_name, text) } diff --git a/resources/qml/Preferences/ReadOnlyTextField.qml b/resources/qml/Preferences/ReadOnlyTextField.qml deleted file mode 100644 index 325081dd13..0000000000 --- a/resources/qml/Preferences/ReadOnlyTextField.qml +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. -// Different than the name suggests, it is not always read-only. - -import QtQuick 2.1 -import QtQuick.Controls 2.1 -import UM 1.5 as UM -import Cura 1.0 as Cura - -Item -{ - id: base - - property alias text: textField.text - - signal editingFinished() - - property bool readOnly: false - - width: textField.width - height: textField.height - - Cura.TextField - { - id: textField - - enabled: !base.readOnly - - anchors.fill: parent - - onEditingFinished: base.editingFinished() - Keys.onEnterPressed: base.editingFinished() - Keys.onReturnPressed: base.editingFinished() - } -}