From fa37f5c2bc4ef025f370027ee2958a7fc0093fdf Mon Sep 17 00:00:00 2001 From: Felix Weilbach Date: Sat, 21 Aug 2021 00:26:48 +0200 Subject: [PATCH] Don't create binding loop Signed-off-by: Felix Weilbach --- resources.qrc | 1 + src/gui/tray/AutoSizingMenu.qml | 15 +++++++++++++++ src/gui/tray/Window.qml | 19 +------------------ 3 files changed, 17 insertions(+), 18 deletions(-) create mode 100644 src/gui/tray/AutoSizingMenu.qml diff --git a/resources.qrc b/resources.qrc index 54c4b5cd98..9fa393c4ef 100644 --- a/resources.qrc +++ b/resources.qrc @@ -7,5 +7,6 @@ theme/Style/qmldir src/gui/tray/ActivityActionButton.qml src/gui/tray/ActivityItem.qml + src/gui/tray/AutoSizingMenu.qml diff --git a/src/gui/tray/AutoSizingMenu.qml b/src/gui/tray/AutoSizingMenu.qml new file mode 100644 index 0000000000..fe929eb3c1 --- /dev/null +++ b/src/gui/tray/AutoSizingMenu.qml @@ -0,0 +1,15 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.3 + +Menu { + width: { + var result = 0; + var padding = 0; + for (var i = 0; i < count; ++i) { + var item = itemAt(i); + result = Math.max(item.contentItem.implicitWidth, result); + padding = Math.max(item.padding, padding); + } + return result + padding * 2; + } +} diff --git a/src/gui/tray/Window.qml b/src/gui/tray/Window.qml index 1e0d8436bf..ccb4af74e8 100644 --- a/src/gui/tray/Window.qml +++ b/src/gui/tray/Window.qml @@ -508,12 +508,10 @@ Window { Accessible.name: qsTr("More apps") Accessible.onPressAction: trayWindowAppsButton.clicked() - Menu { + AutoSizingMenu { id: appsMenu y: (trayWindowAppsButton.y + trayWindowAppsButton.height + 2) readonly property Item listContentItem: contentItem.contentItem - width: Math.min(listContentItem.childrenRect.width + 4, Style.trayWindowWidth / 2) - height: Math.min(implicitHeight, maxMenuHeight) closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape background: Rectangle { @@ -531,24 +529,9 @@ Window { text: appName font.pixelSize: Style.topLinePixelSize icon.source: appIconUrl - width: contentItem.implicitWidth + leftPadding + rightPadding onTriggered: UserAppsModel.openAppUrl(appUrl) hoverEnabled: true - background: Item { - width: appsMenu.width - height: parent.height - - Rectangle { - anchors.fill: parent - anchors.margins: 1 - color: appEntry.hovered ? Style.lightHover : "transparent" - } - - Accessible.role: Accessible.PopupMenu - Accessible.name: qsTr("Apps menu") - } - Accessible.role: Accessible.MenuItem Accessible.name: qsTr("Open %1 in browser").arg(appName) Accessible.onPressAction: appEntry.triggered()