2020-04-27 04:20:45 +10:00
|
|
|
// 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-28 12:40:04 +10:00
|
|
|
property AccountView accountView
|
2020-04-27 04:20:45 +10:00
|
|
|
|
|
|
|
|
|
|
|
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")
|
2020-04-27 04:20:45 +10:00
|
|
|
|
|
|
|
Layout.preferredHeight: theme.baseElementsHeight
|
2020-04-29 06:18:18 +10:00
|
|
|
|
|
|
|
HShortcut {
|
|
|
|
sequences: window.settings.keys.showEveryRoom
|
|
|
|
onActivated: everyRoomButton.clicked()
|
|
|
|
}
|
2020-04-27 04:20:45 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
HListView {
|
|
|
|
id: accountList
|
2020-04-29 04:21:15 +10:00
|
|
|
clip: true
|
2020-04-27 04:20:45 +10:00
|
|
|
model: ModelStore.get("accounts")
|
2020-04-28 12:40:04 +10:00
|
|
|
currentIndex: accountView.currentIndex
|
2020-04-27 04:20:45 +10:00
|
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-27 04:20:45 +10:00
|
|
|
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
|
2020-04-27 04:20:45 +10:00
|
|
|
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-27 04:20:45 +10:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-28 12:40:04 +10:00
|
|
|
onLeftClicked: accountView.currentIndex = model.index
|
2020-04-27 04:20:45 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
Layout.fillHeight: true
|
2020-04-28 12:10:10 +10:00
|
|
|
|
|
|
|
HShortcut {
|
|
|
|
sequences: window.settings.keys.goToPreviousAccount
|
2020-04-28 12:40:04 +10:00
|
|
|
onActivated: accountView.decrementWrapIndex()
|
2020-04-28 12:10:10 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
HShortcut {
|
|
|
|
sequences: window.settings.keys.goToNextAccount
|
2020-04-28 12:40:04 +10:00
|
|
|
onActivated: accountView.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
|
|
|
|
}
|
2020-04-27 04:20:45 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|
2020-04-27 04:20:45 +10:00
|
|
|
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
|
|
|
|
}
|
2020-04-27 04:20:45 +10:00
|
|
|
}
|