fix(StatusChatListCategoryItem): Disable sensor when chevron clicked

List items' mouse area was also triggered when chevron
(sub menu) button was clicked so it was unsetting the
opened variable which is responsible for opening/closing
the chats list.
This commit is contained in:
Alexandra Betouni 2021-09-14 17:23:12 +03:00 committed by Michał Cieślak
parent 0c0d9bf919
commit 56212c547a
3 changed files with 22 additions and 13 deletions

View File

@ -42,14 +42,15 @@ Column {
highlighted: statusChatListCategory.dragged highlighted: statusChatListCategory.dragged
sensor.onClicked: { sensor.onClicked: {
if (mouse.button === Qt.RightButton && showActionButtons && !!statusChatListCategory.popupMenu) { if (sensor.enabled) {
highlighted = true if (mouse.button === Qt.RightButton && showActionButtons && !!statusChatListCategory.popupMenu) {
popupMenuSlot.item.popup(mouse.x + 4, mouse.y + 6) highlighted = true;
return popupMenuSlot.item.popup(mouse.x + 4, mouse.y + 6);
return
}
statusChatListCategory.opened = !opened;
} }
statusChatListCategory.opened = !opened
} }
onTitleClicked: statusChatListCategory.opened = !opened onTitleClicked: statusChatListCategory.opened = !opened
onToggleButtonClicked: statusChatListCategory.opened = !opened onToggleButtonClicked: statusChatListCategory.opened = !opened
onMenuButtonClicked: { onMenuButtonClicked: {

View File

@ -60,7 +60,15 @@ StatusListItem {
icon.name: "chevron-down" icon.name: "chevron-down"
icon.width: 18 icon.width: 18
icon.rotation: statusChatListCategoryItem.opened ? 0 : 270 icon.rotation: statusChatListCategoryItem.opened ? 0 : 270
onClicked: statusChatListCategoryItem.toggleButtonClicked(mouse) onPressed: {
sensor.enabled = false;
}
onClicked: {
statusChatListCategoryItem.toggleButtonClicked(mouse);
}
onReleased: {
sensor.enabled = true;
}
} }
] ]
} }

View File

@ -51,7 +51,7 @@ Rectangle {
width: 20 width: 20
rotation: 0 rotation: 0
isLetterIdenticon: false isLetterIdenticon: false
color: type === StatusListItem.Type.Danger ? color: type === StatusListItem.Type.Danger ?
Theme.palette.dangerColor1 : Theme.palette.primaryColor1 Theme.palette.dangerColor1 : Theme.palette.primaryColor1
background: StatusIconBackgroundSettings { background: StatusIconBackgroundSettings {
width: 40 width: 40
@ -60,11 +60,11 @@ Rectangle {
if (sensor.containsMouse) { if (sensor.containsMouse) {
return type === StatusListItem.Type.Secondary || return type === StatusListItem.Type.Secondary ||
type === StatusListItem.Type.Danger ? "transparent" : type === StatusListItem.Type.Danger ? "transparent" :
Theme.palette.primaryColor3 Theme.palette.primaryColor3
} }
return type === StatusListItem.Type.Danger ? return type === StatusListItem.Type.Danger ?
Theme.palette.dangerColor3 : Theme.palette.primaryColor3 Theme.palette.dangerColor3 : Theme.palette.primaryColor3
} }
} }
} }
property StatusImageSettings image: StatusImageSettings { property StatusImageSettings image: StatusImageSettings {
@ -123,8 +123,8 @@ Rectangle {
return !!statusListItem.icon.name ? statusRoundedIcon : statusRoundedImage return !!statusListItem.icon.name ? statusRoundedIcon : statusRoundedImage
} }
active: statusListItem.icon.isLetterIdenticon || active: statusListItem.icon.isLetterIdenticon ||
!!statusListItem.icon.name || !!statusListItem.icon.name ||
!!statusListItem.image.source.toString() !!statusListItem.image.source.toString()
} }