76 lines
2.2 KiB
QML
76 lines
2.2 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
import "../../../../shared"
|
|
import "../../../../shared/status"
|
|
import "../../../../imports"
|
|
import "../components"
|
|
|
|
StatusIconTabButton {
|
|
property string communityId: ""
|
|
property string name: "channelName"
|
|
property int unviewedMessagesCount: 0
|
|
property string image
|
|
property bool hasMentions: false
|
|
|
|
id: communityButton
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
iconSource: communityButton.image
|
|
anchors.topMargin: 0
|
|
|
|
section: Constants.community
|
|
|
|
checked: chatsModel.communities.activeCommunity.active && chatsModel.communities.activeCommunity.id === communityId
|
|
|
|
borderOnChecked: true
|
|
doNotHandleClick: true
|
|
onClicked: {
|
|
appMain.changeAppSection(Constants.chat)
|
|
chatsModel.communities.setActiveCommunity(communityId)
|
|
}
|
|
|
|
StatusToolTip {
|
|
visible: communityButton.hovered
|
|
text: communityButton.name
|
|
delay: 50
|
|
orientation: "right"
|
|
x: communityButton.width + Style.current.padding
|
|
y: communityButton.height / 2 - height / 2 + 4
|
|
}
|
|
|
|
Rectangle {
|
|
id: chatBadge
|
|
visible: unviewedMessagesCount > 0
|
|
anchors.top: parent.top
|
|
anchors.left: parent.right
|
|
anchors.leftMargin: -17
|
|
anchors.topMargin: 1
|
|
radius: height / 2
|
|
color: Style.current.blue
|
|
border.color: Style.current.background
|
|
border.width: 2
|
|
width: unviewedMessagesCount < 10 ? 22 : messageCount.width + 14
|
|
height: 22
|
|
Text {
|
|
id: messageCount
|
|
font.pixelSize: chatsModel.unreadMessagesCount > 99 ? 10 : 12
|
|
color: Style.current.white
|
|
anchors.centerIn: parent
|
|
text: unviewedMessagesCount > 99 ? "99+" : unviewedMessagesCount
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
cursorShape: Qt.PointingHandCursor
|
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
|
onClicked: function (mouse) {
|
|
if (mouse.button === Qt.RightButton) {
|
|
commnunityMenu.communityId = communityButton.communityId
|
|
commnunityMenu.popup()
|
|
return
|
|
}
|
|
communityButton.clicked()
|
|
}
|
|
}
|
|
}
|