Use ItemDelegate for CommunitiesList

This commit is contained in:
Nicolas Werner 2021-11-03 23:20:28 +01:00
parent 1e22274d8c
commit 8563ec002d
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9

View file

@ -47,29 +47,32 @@ Page {
} }
delegate: Rectangle { delegate: ItemDelegate {
id: communityItem id: communityItem
property color background: Nheko.colors.window property color backgroundColor: Nheko.colors.window
property color importantText: Nheko.colors.text property color importantText: Nheko.colors.text
property color unimportantText: Nheko.colors.buttonText property color unimportantText: Nheko.colors.buttonText
property color bubbleBackground: Nheko.colors.highlight property color bubbleBackground: Nheko.colors.highlight
property color bubbleText: Nheko.colors.highlightedText property color bubbleText: Nheko.colors.highlightedText
color: background background: Rectangle {
color: backgroundColor
}
height: avatarSize + 2 * Nheko.paddingMedium height: avatarSize + 2 * Nheko.paddingMedium
width: ListView.view.width width: ListView.view.width
state: "normal" state: "normal"
ToolTip.visible: hovered.hovered && collapsed ToolTip.visible: hovered && collapsed
ToolTip.text: model.tooltip ToolTip.text: model.tooltip
states: [ states: [
State { State {
name: "highlight" name: "highlight"
when: (hovered.hovered || model.hidden) && !(Communities.currentTagId == model.id) when: (communityItem.hovered || model.hidden) && !(Communities.currentTagId == model.id)
PropertyChanges { PropertyChanges {
target: communityItem target: communityItem
background: Nheko.colors.dark backgroundColor: Nheko.colors.dark
importantText: Nheko.colors.brightText importantText: Nheko.colors.brightText
unimportantText: Nheko.colors.brightText unimportantText: Nheko.colors.brightText
bubbleBackground: Nheko.colors.highlight bubbleBackground: Nheko.colors.highlight
@ -83,7 +86,7 @@ Page {
PropertyChanges { PropertyChanges {
target: communityItem target: communityItem
background: Nheko.colors.highlight backgroundColor: Nheko.colors.highlight
importantText: Nheko.colors.highlightedText importantText: Nheko.colors.highlightedText
unimportantText: Nheko.colors.highlightedText unimportantText: Nheko.colors.highlightedText
bubbleBackground: Nheko.colors.highlightedText bubbleBackground: Nheko.colors.highlightedText
@ -93,24 +96,20 @@ Page {
} }
] ]
TapHandler { Item {
margin: -Nheko.paddingSmall anchors.fill: parent
acceptedButtons: Qt.RightButton
onSingleTapped: communityContextMenu.show(model.id) TapHandler {
gesturePolicy: TapHandler.ReleaseWithinBounds acceptedButtons: Qt.RightButton
onSingleTapped: communityContextMenu.show(model.id)
gesturePolicy: TapHandler.ReleaseWithinBounds
acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus | PointerDevice.TouchPad
}
} }
TapHandler { onClicked: Communities.setCurrentTagId(model.id)
margin: -Nheko.paddingSmall onPressAndHold: communityContextMenu.show(model.id)
onSingleTapped: Communities.setCurrentTagId(model.id)
onLongPressed: communityContextMenu.show(model.id)
}
HoverHandler {
id: hovered
margin: -Nheko.paddingSmall
}
RowLayout { RowLayout {
spacing: Nheko.paddingMedium spacing: Nheko.paddingMedium
@ -132,7 +131,7 @@ Page {
} }
roomid: model.id roomid: model.id
displayName: model.displayName displayName: model.displayName
color: communityItem.background color: communityItem.backgroundColor
} }
ElidedLabel { ElidedLabel {