moment/src/gui/MainPane/AccountsBar.qml

126 lines
3.6 KiB
QML
Raw Normal View History

// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import ".."
import "../Base"
import "../Base/HTile"
HColumnLayout {
2020-04-29 06:40:33 +10:00
property AccountSwipeView accountSwipeView
HButton {
2020-04-29 06:18:18 +10:00
id: everyRoomButton
icon.name: "every-room"
toolTip.text: qsTr("Every room")
backgroundColor: theme.accountsBar.everyRoomButtonBackground
// onClicked: pageLoader.showPage("AddAccount/AddAccount")
Layout.preferredHeight: theme.baseElementsHeight
2020-04-29 06:18:18 +10:00
HShortcut {
sequences: window.settings.keys.showEveryRoom
onActivated: everyRoomButton.clicked()
}
}
HListView {
id: accountList
2020-04-29 04:21:15 +10:00
clip: true
model: ModelStore.get("accounts")
2020-04-29 06:40:33 +10:00
currentIndex: accountSwipeView.currentIndex
2020-04-29 04:21:15 +10:00
highlight: Item {
Rectangle {
anchors.fill: parent
color: theme.accountsBar.accountList.account.selectedBackground
opacity: theme.accountsBar.accountList.account
.selectedBackgroundOpacity
}
Rectangle {
z: 100
width: theme.accountsBar.accountList.account.selectedBorderSize
height: parent.height
color: theme.accountsBar.accountList.account.selectedBorder
}
}
delegate: HTileDelegate {
id: tile
width: accountList.width
2020-04-28 13:49:36 +10:00
backgroundColor: theme.accountsBar.accountList.account.background
2020-04-29 04:21:15 +10:00
topPadding: (accountList.width - avatar.width) / 4
bottomPadding: topPadding
leftPadding: 0
rightPadding: leftPadding
contentItem: Item {
implicitHeight: avatar.height
HUserAvatar {
id: avatar
anchors.horizontalCenter: parent.horizontalCenter
userId: model.id
displayName: model.display_name
mxc: model.avatar_url
// compact: account.compact
2020-04-28 13:49:36 +10:00
radius: theme.accountsBar.accountList.account.avatarRadius
}
}
2020-04-29 06:40:33 +10:00
onLeftClicked: accountSwipeView.currentIndex = model.index
}
Layout.fillWidth: true
Layout.fillHeight: true
2020-04-28 12:10:10 +10:00
HShortcut {
sequences: window.settings.keys.goToPreviousAccount
2020-04-29 06:40:33 +10:00
onActivated: accountSwipeView.decrementWrapIndex()
2020-04-28 12:10:10 +10:00
}
HShortcut {
sequences: window.settings.keys.goToNextAccount
2020-04-29 06:40:33 +10:00
onActivated: accountSwipeView.incrementWrapIndex()
2020-04-28 12:10:10 +10:00
}
2020-04-28 13:49:36 +10:00
Rectangle {
anchors.fill: parent
z: -100
color: theme.accountsBar.accountList.background
}
}
HButton {
id: addAccountButton
icon.name: "add-account"
toolTip.text: qsTr("Add another account")
2020-04-28 13:49:36 +10:00
backgroundColor: theme.accountsBar.addAccountButtonBackground
onClicked: pageLoader.showPage("AddAccount/AddAccount")
Layout.preferredHeight: theme.baseElementsHeight
HShortcut {
sequences: window.settings.keys.addNewAccount
onActivated: addAccountButton.clicked()
}
}
2020-04-29 06:18:18 +10:00
HButton {
id: settingsButton
backgroundColor: theme.accountsBar.settingsButtonBackground
icon.name: "settings"
toolTip.text: qsTr("Open config folder")
onClicked: py.callCoro("get_config_dir", [], Qt.openUrlExternally)
Layout.preferredHeight: theme.baseElementsHeight
}
}