From 8c4276946d56bd7aa7bdd9c042ddea94ac47e883 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 29 Dec 2022 13:06:49 +0100 Subject: [PATCH 1/4] Fix double lining between popups CURA-9522 --- resources/qml/Menus/MaterialBrandMenu.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/Menus/MaterialBrandMenu.qml b/resources/qml/Menus/MaterialBrandMenu.qml index 83a6959183..4d200e9594 100644 --- a/resources/qml/Menus/MaterialBrandMenu.qml +++ b/resources/qml/Menus/MaterialBrandMenu.qml @@ -94,6 +94,8 @@ Cura.MenuItem // We have to keep a count of itemHovered (instead of just a bool) property int itemHovered: 0 + implicitX: parent.width - UM.Theme.getSize("default_lining").width + MouseArea { id: submenuArea From 70d69031fe6888f654647b0574cfe4adf94eec19 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 29 Dec 2022 13:08:15 +0100 Subject: [PATCH 2/4] Fix width being incorrect on first time opening popups CURA-9522 --- resources/qml/Menus/MaterialBrandSubMenu.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/Menus/MaterialBrandSubMenu.qml b/resources/qml/Menus/MaterialBrandSubMenu.qml index af7e6cfb0e..1cd9d04b5c 100644 --- a/resources/qml/Menus/MaterialBrandSubMenu.qml +++ b/resources/qml/Menus/MaterialBrandSubMenu.qml @@ -81,6 +81,10 @@ Popup materialBrandSubMenu.width = mainWindow.width; } } + + + // This function can cause the scrollbar.width to update but this won't update the width (bug?) so it is done explicitly here. + width = scrollViewContent.width + scrollbar.width + leftPadding + rightPadding } padding: background.border.width From e99719a08fb32338aafaaa13646e483580bae7b3 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 29 Dec 2022 13:35:24 +0100 Subject: [PATCH 3/4] Correct solution to width being incorrect after height resize. CURA-9522 --- resources/qml/Menus/MaterialBrandSubMenu.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/Menus/MaterialBrandSubMenu.qml b/resources/qml/Menus/MaterialBrandSubMenu.qml index 1cd9d04b5c..9c237d12fe 100644 --- a/resources/qml/Menus/MaterialBrandSubMenu.qml +++ b/resources/qml/Menus/MaterialBrandSubMenu.qml @@ -67,6 +67,10 @@ Popup } } + // Changing the height causes implicitWidth to change because of the scrollbar appearing/disappearing + // Reassign it here to update the value + materialBrandSubMenu.width = implicitWidth; + if (globalPosition.x > mainWindow.width - materialBrandSubMenu.width) { if (mainWindow.width > materialBrandSubMenu.width) @@ -81,10 +85,6 @@ Popup materialBrandSubMenu.width = mainWindow.width; } } - - - // This function can cause the scrollbar.width to update but this won't update the width (bug?) so it is done explicitly here. - width = scrollViewContent.width + scrollbar.width + leftPadding + rightPadding } padding: background.border.width From bf30e69f08ca59eaaff014c3b69b5c15ff5b54af Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 2 Jan 2023 10:21:43 +0100 Subject: [PATCH 4/4] Change default implicitX for MaterialBrandSubMenu. CURA-9522 --- resources/qml/Menus/MaterialBrandMenu.qml | 4 ++-- resources/qml/Menus/MaterialBrandSubMenu.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/MaterialBrandMenu.qml b/resources/qml/Menus/MaterialBrandMenu.qml index 4d200e9594..5a5838f4ca 100644 --- a/resources/qml/Menus/MaterialBrandMenu.qml +++ b/resources/qml/Menus/MaterialBrandMenu.qml @@ -94,8 +94,6 @@ Cura.MenuItem // We have to keep a count of itemHovered (instead of just a bool) property int itemHovered: 0 - implicitX: parent.width - UM.Theme.getSize("default_lining").width - MouseArea { id: submenuArea @@ -217,6 +215,8 @@ Cura.MenuItem MaterialBrandSubMenu { id: colorPopup + implicitX: parent.width + property int itemHovered: 0 Column diff --git a/resources/qml/Menus/MaterialBrandSubMenu.qml b/resources/qml/Menus/MaterialBrandSubMenu.qml index 9c237d12fe..bc02e79cdb 100644 --- a/resources/qml/Menus/MaterialBrandSubMenu.qml +++ b/resources/qml/Menus/MaterialBrandSubMenu.qml @@ -19,7 +19,7 @@ Popup implicitHeight: scrollViewContent.height + bottomPadding + topPadding // offset position relative to the parent - property int implicitX: parent.width + property int implicitX: parent.width - UM.Theme.getSize("default_lining").width property int implicitY: -UM.Theme.getSize("thin_margin").height default property alias contents: scrollViewContent.children