From e28e25281c48999077fea5c01f38b8cae2aa3328 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 12 Oct 2022 10:42:44 +0200 Subject: [PATCH 1/7] Ensure the complete install folder is removed Fixes: CURA-9526 Uninstalling main build doesn't remove all files --- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 9cc6b53bd6..4e1aa451df 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -163,7 +163,7 @@ Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\${APP_NAME} website.url" !endif -RmDir "$INSTDIR" +RmDir /r /REBOOTOK "$INSTDIR" !ifdef REG_START_MENU !insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder From 547d801209f54ff81ccabe3dd0b9a45052f5088f Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 12 Oct 2022 11:48:10 +0200 Subject: [PATCH 2/7] Add VERSION to REG_APP_PATH and UNINSTALL_PATH This should ensure that updating a patch doesn't override the uninstaller in the settings->Installed apps Fixes: #13337 CURA-9670 Correct the version number in the uninstaller --- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 9cc6b53bd6..23ce1e58d7 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -13,8 +13,8 @@ !define MAIN_APP_EXE "{{ main_app }}" !define INSTALL_TYPE "SetShellVarContext all" !define REG_ROOT "HKLM" -!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}" -!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" +!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}-${VERSION}" +!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}-${VERSION}" !define REG_START_MENU "Start Menu Folder" From 7dd37c6a53818755310f3ce0b6176aead48013f6 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 12 Oct 2022 12:02:20 +0200 Subject: [PATCH 3/7] Filter material lists for compatible printers. So that only one identical entry shows up per material, per extruder (per printer). CURA-9689 --- .../Machines/Models/CompatibleMachineModel.py | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/cura/Machines/Models/CompatibleMachineModel.py b/cura/Machines/Models/CompatibleMachineModel.py index 639bba88a0..cf77a15085 100644 --- a/cura/Machines/Models/CompatibleMachineModel.py +++ b/cura/Machines/Models/CompatibleMachineModel.py @@ -38,6 +38,12 @@ class CompatibleMachineModel(ListModel): def _update(self) -> None: self.clear() + def _makeMaterial(brand, name, color): + if name.lower() in ["", "empty"]: + return {"brand": "", "name": "(empty)", "hexcolor": "#ffffff"} + else: + return {"brand": brand, "name": name, "hexcolor": color} + from cura.CuraApplication import CuraApplication machine_manager = CuraApplication.getInstance().getMachineManager() @@ -48,11 +54,8 @@ class CompatibleMachineModel(ListModel): # initialize & add current active material: for extruder in printer.extruders: - materials = [{ - "brand": extruder.activeMaterial.brand, - "name": extruder.activeMaterial.name, - "hexcolor": extruder.activeMaterial.color, - }] + materials = [_makeMaterial( + extruder.activeMaterial.brand, extruder.activeMaterial.name, extruder.activeMaterial.color)] extruder_configs[extruder.getPosition()] = { "position": extruder.getPosition(), "core": extruder.hotendID, @@ -66,11 +69,9 @@ class CompatibleMachineModel(ListModel): Logger.log("w", f"No active extruder for position {extruder.position}.") continue - extruder_configs[extruder.position]["materials"].append({ - "brand": extruder.material.brand, - "name": extruder.material.name, - "hexcolor": extruder.material.color - }) + entry = _makeMaterial(extruder.material.brand, extruder.material.name, extruder.material.color) + if entry not in extruder_configs[extruder.position]["materials"]: + extruder_configs[extruder.position]["materials"].append(entry) if any([len(extruder["materials"]) > 0 for extruder in extruder_configs.values()]): self.appendItem({ From 9bacbb58253f838599a4615122c757e3d4ddd7f5 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 12 Oct 2022 14:37:26 +0200 Subject: [PATCH 4/7] Sort cloud printers in printer selection dropdown menu CURA-9748 --- cura/Machines/Models/MachineListModel.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index df9ca7483f..7306a66740 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -89,12 +89,13 @@ class MachineListModel(ListModel): other_machine_stacks.sort(key = lambda machine: machine.getName().upper()) abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") - abstract_machine_stacks.sort(key = lambda machine: machine.getName(), reverse = True) + abstract_machine_stacks.sort(key = lambda machine: machine.getName().upper()) for abstract_machine in abstract_machine_stacks: definition_id = abstract_machine.definition.getId() online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) online_machine_stacks = list(filter(lambda machine: machine.hasNetworkedConnection(), online_machine_stacks)) + online_machine_stacks.sort(key=lambda machine: machine.getName().upper()) other_machine_stacks.remove(abstract_machine) if abstract_machine in online_machine_stacks: From 8db3f02a4f27f3ed90213d5680935297000e4f96 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 12 Oct 2022 14:43:55 +0200 Subject: [PATCH 5/7] Re-add tooltips for intent profile selection in recommended. They where skipped over when transferring the radio bar to the current large button based setup. CURA-9746 --- .../Recommended/RecommendedQualityProfileSelector.qml | 2 +- .../RecommendedQualityProfileSelectorButton.qml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index bc5826fe7c..89644d887f 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -32,7 +32,7 @@ Item { profileName: model.name icon: model.icon - + tooltipText: (model.description != undefined) ? model.description : "" selected: Cura.MachineManager.activeIntentCategory == model.intent_category diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml index 6804e7e5ba..2a63345b48 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml @@ -19,6 +19,7 @@ Rectangle property bool selected: false property string profileName: "" property string icon: "" + property alias tooltipText: tooltip.text signal clicked() @@ -30,6 +31,13 @@ Rectangle onClicked: base.clicked() } + UM.ToolTip + { + id: tooltip + visible: mouseArea.containsMouse + targetPoint: Qt.point(base.x + (base.width / 2), base.y + (base.height / 2)) + } + Item { width: intentIcon.width From e9b268bc06ceb4850bf68b6947ba30239d97acce Mon Sep 17 00:00:00 2001 From: Remco Burema <41987080+rburema@users.noreply.github.com> Date: Wed, 12 Oct 2022 14:54:33 +0200 Subject: [PATCH 6/7] Review suggestion; best practices; javascript. done as part of CURA-9746 Co-authored-by: Casper Lamboo --- .../Recommended/RecommendedQualityProfileSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 89644d887f..b9fbf04f9c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -32,7 +32,7 @@ Item { profileName: model.name icon: model.icon - tooltipText: (model.description != undefined) ? model.description : "" + tooltipText: model.description ? model.description : "" selected: Cura.MachineManager.activeIntentCategory == model.intent_category From e25048d88a76bf184de6fee76a84aaf54b1d8cbb Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 12 Oct 2022 15:29:08 +0200 Subject: [PATCH 7/7] Add width to intent tool tips CURA-9746 --- .../Recommended/RecommendedQualityProfileSelectorButton.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml index 2a63345b48..4e912edfe0 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml @@ -36,6 +36,7 @@ Rectangle id: tooltip visible: mouseArea.containsMouse targetPoint: Qt.point(base.x + (base.width / 2), base.y + (base.height / 2)) + width: UM.Theme.getSize("tooltip").width } Item