Add account presences to account context menu
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import Clipboard 0.1
|
||||
import "../Base"
|
||||
|
||||
HMenu {
|
||||
property string userId
|
||||
property string presence
|
||||
property bool firstSyncDone
|
||||
|
||||
|
||||
function setPresence(presence) {
|
||||
py.callClientCoro(userId, "set_presence", [presence])
|
||||
}
|
||||
|
||||
|
||||
HMenuItem {
|
||||
@@ -36,4 +44,38 @@ HMenu {
|
||||
popup: "Popups/SignOutPopup.qml"
|
||||
properties: { "userId": userId }
|
||||
}
|
||||
|
||||
HMenuSeparator { }
|
||||
|
||||
HMenuItem {
|
||||
enabled: presence !== "online" && firstSyncDone
|
||||
icon.name: "user-presence"
|
||||
icon.color: theme.controls.presence.online
|
||||
text: qsTr("Online")
|
||||
onTriggered: setPresence("online")
|
||||
}
|
||||
|
||||
HMenuItem {
|
||||
enabled: presence !== "unavailable" && firstSyncDone
|
||||
icon.name: "user-presence"
|
||||
icon.color: theme.controls.presence.unavailable
|
||||
text: qsTr("Unavailable")
|
||||
onTriggered: setPresence("unavailable")
|
||||
}
|
||||
|
||||
HMenuItem {
|
||||
enabled: presence !== "invisible" && firstSyncDone
|
||||
icon.name: "user-presence"
|
||||
icon.color: theme.controls.presence.offline
|
||||
text: qsTr("Invisible")
|
||||
onTriggered: setPresence("invisible")
|
||||
}
|
||||
|
||||
HMenuItem {
|
||||
enabled: presence !== "offline" && firstSyncDone
|
||||
icon.name: "user-presence"
|
||||
icon.color: theme.controls.presence.offline
|
||||
text: qsTr("Offline")
|
||||
onTriggered: setPresence("offline")
|
||||
}
|
||||
}
|
||||
|
@@ -25,8 +25,7 @@ HTile {
|
||||
radius: theme.mainPane.listView.account.avatarRadius
|
||||
compact: account.compact
|
||||
|
||||
// XXX
|
||||
presence: model.first_sync_done ? "online" : ""
|
||||
presence: model.presence
|
||||
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
|
||||
@@ -136,7 +135,11 @@ HTile {
|
||||
}
|
||||
}
|
||||
|
||||
contextMenu: AccountContextMenu { userId: model.id }
|
||||
contextMenu: AccountContextMenu {
|
||||
userId: model.id
|
||||
presence: model.presence
|
||||
firstSyncDone: model.first_sync_done
|
||||
}
|
||||
|
||||
|
||||
property bool enableKeybinds: false
|
||||
|
Reference in New Issue
Block a user