Compare commits

...
Author SHA1 Message Date
Pascal Precht 7136968b3a feat(StatusChatToolBar): add tooltips to action buttons
Closes #244
2021-07-09 16:10:16 +02:00
Pascal Precht cf6b745567 feat(StatusChatToolBar): add members and search button
This commit adds the members and search button which are needed for certain
features in Status Desktop. In views where these aren't needed, each button
can be set `visible: false` individually:

```qml
StatusChatToolBar {
    ...
    membersButton.visible: false
    searchButton.visible: false
}
```

Closes #243
2021-07-09 16:09:40 +02:00
2 changed files with 64 additions and 12 deletions
+2
View File
@@ -255,6 +255,8 @@ Rectangle {
chatInfoButton.type: StatusChatInfoButton.Type.OneToOneChat
chatInfoButton.pinnedMessagesCount: 1
searchButton.visible: false
membersButton.visible: false
notificationCount: 1
onNotificationButtonClicked: notificationCount = 0
+62 -12
View File
@@ -14,6 +14,8 @@ Rectangle {
property alias chatInfoButton: statusChatInfoButton
property alias menuButton: menuButton
property alias notificationButton: notificationButton
property alias membersButton: membersButton
property alias searchButton: searchButton
property int notificationCount: 0
property Component popupMenu
@@ -21,6 +23,8 @@ Rectangle {
signal chatInfoButtonClicked()
signal menuButtonClicked()
signal notificationButtonClicked()
signal membersButtonClicked()
signal searchButtonClicked()
onPopupMenuChanged: {
if (!!popupMenu) {
@@ -44,6 +48,38 @@ Rectangle {
spacing: 8
StatusFlatRoundButton {
id: searchButton
width: 32
height: 32
icon.name: "search"
type: StatusFlatRoundButton.Type.Secondary
onClicked: statusChatToolBar.searchButtonClicked()
StatusToolTip {
visible: !!text && parent.hovered
text: "Search"
orientation: StatusToolTip.Orientation.Bottom
y: parent.height + 12
}
}
StatusFlatRoundButton {
id: membersButton
width: 32
height: 32
icon.name: "group-chat"
type: StatusFlatRoundButton.Type.Secondary
onClicked: statusChatToolBar.membersButtonClicked()
StatusToolTip {
visible: !!text && parent.hovered
text: "Members"
orientation: StatusToolTip.Orientation.Bottom
y: parent.height + 12
}
}
StatusFlatRoundButton {
id: menuButton
width: 32
@@ -55,8 +91,24 @@ Rectangle {
onClicked: {
statusChatToolBar.menuButtonClicked()
highlighted = true
let p = menuButton.mapToItem(statusChatToolBar, menuButton.x, menuButton.y)
popupMenuSlot.item.popup(p.x + menuButton.width - popupMenuSlot.item.width, p.y + 4 + menuButton.height)
popupMenuSlot.item.popup(-popupMenuSlot.item.width + menuButton.width, menuButton.height + 4)
}
StatusToolTip {
visible: !!text && parent.hovered && !popupMenuSlot.item.opened
text: "More"
orientation: StatusToolTip.Orientation.Bottom
y: parent.height + 12
}
Loader {
id: popupMenuSlot
active: !!statusChatToolBar.popupMenu
onLoaded: {
popupMenuSlot.item.closeHandler = function () {
menuButton.highlighted = false
}
}
}
}
@@ -65,7 +117,8 @@ Rectangle {
width: 1
color: Theme.palette.directColor7
anchors.verticalCenter: parent.verticalCenter
visible: menuButton.visible && notificationButton.visible
visible: notificationButton.visible &&
(menuButton.visible || membersButton.visible || searchButton.visible)
}
StatusFlatRoundButton {
@@ -100,18 +153,15 @@ Rectangle {
border.width: 2
border.color: parent.hovered ? Theme.palette.baseColor2 : Theme.palette.statusAppLayout.backgroundColor
}
}
}
Loader {
id: popupMenuSlot
active: !!statusChatToolBar.popupMenu
onLoaded: {
popupMenuSlot.item.closeHandler = function () {
menuButton.highlighted = false
StatusToolTip {
visible: !!text && parent.hovered
text: "Activity"
orientation: StatusToolTip.Orientation.Bottom
y: parent.height + 12
}
}
}
}