diff --git a/src/StatusQ/Components/StatusListItem.qml b/src/StatusQ/Components/StatusListItem.qml index 61f48e35..d831360d 100644 --- a/src/StatusQ/Components/StatusListItem.qml +++ b/src/StatusQ/Components/StatusListItem.qml @@ -20,6 +20,7 @@ Rectangle { property real rightPadding: 16 property bool enabled: true property bool highlighted: false + property bool propagateTitleClicks: true property int type: StatusListItem.Type.Primary property list components @@ -175,7 +176,7 @@ Rectangle { anchors.fill: parent cursorShape: containsMouse? Qt.PointingHandCursor : Qt.ArrowCursor hoverEnabled: true - propagateComposedEvents: true + propagateComposedEvents: statusListItem.propagateTitleClicks onClicked: { statusListItem.titleClicked(statusListItem.titleId) mouse.accepted = false diff --git a/src/StatusQ/Popups/StatusSearchLocationMenu.qml b/src/StatusQ/Popups/StatusSearchLocationMenu.qml index ba6dcf35..d488b39c 100644 --- a/src/StatusQ/Popups/StatusSearchLocationMenu.qml +++ b/src/StatusQ/Popups/StatusSearchLocationMenu.qml @@ -10,6 +10,7 @@ StatusPopupMenu { property var searchPopup property var locationModel + readonly property int numDefaultItems: 2 signal itemClicked(string firstLevelItemValue, string secondLevelItemValue) @@ -43,7 +44,7 @@ StatusPopupMenu { color: model.iconColor, isLetterIdenticon: !model.imageSource && !model.iconName }); - root.insertMenu(index+2, item); + root.insertMenu(index + numDefaultItems, item); } else { item.value = model.value item.text = model.title; @@ -52,7 +53,7 @@ StatusPopupMenu { item.iconSettings.isLetterIdenticon = !model.imageSource && !model.iconName item.image.source = model.imageSource; item.image.isIdenticon = model.isIdenticon; - root.insertItem(index+2, item); + root.insertItem(index + numDefaultItems, item); } } } diff --git a/src/StatusQ/Popups/StatusSearchPopup.qml b/src/StatusQ/Popups/StatusSearchPopup.qml index c932d8ea..0eb6aa10 100644 --- a/src/StatusQ/Popups/StatusSearchPopup.qml +++ b/src/StatusQ/Popups/StatusSearchPopup.qml @@ -24,6 +24,9 @@ StatusModal { property Menu searchOptionsPopupMenu: Menu { } property var searchResults: [ ] property var searchSelectionButton + // This function is called to know if the popup accepts clicks in the title + // If it does not, the clicks on the titles mousearea will be propagated to the main body instead + property var acceptsTitleClick: function(titleId) {return true} signal resultItemClicked(string itemId) signal resultItemTitleClicked(string titleId) @@ -275,8 +278,11 @@ StatusModal { root.resultItemClicked(itemId) } + propagateTitleClicks: !root.acceptsTitleClick(titleId) onTitleClicked: { - root.resultItemTitleClicked(titleId) + if (root.acceptsTitleClick(titleId)) { + root.resultItemTitleClicked(titleId) + } } } section.property: "sectionName"