186 lines
3.8 KiB
QML
186 lines
3.8 KiB
QML
import QtQuick 2.9
|
|
import QtQuick.Controls 2.2
|
|
import QtQuick.Controls.Material 2.2
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import Spectral.Component 2.0
|
|
import Spectral.Effect 2.0
|
|
|
|
import Spectral 0.1
|
|
import Spectral.Setting 0.1
|
|
|
|
Page {
|
|
property alias listModel: accountSettingsListView.model
|
|
|
|
property alias addAccountButton: addAccountButton
|
|
|
|
implicitWidth: 400
|
|
implicitHeight: 300
|
|
|
|
Page {
|
|
id: accountForm
|
|
|
|
parent: null
|
|
|
|
padding: 64
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
|
|
AutoListView {
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
|
|
id: accountSettingsListView
|
|
|
|
boundsBehavior: Flickable.DragOverBounds
|
|
|
|
clip: true
|
|
|
|
delegate: SettingAccountDelegate {}
|
|
}
|
|
|
|
Button {
|
|
Layout.fillWidth: true
|
|
|
|
id: addAccountButton
|
|
|
|
text: "Add Account"
|
|
flat: true
|
|
highlighted: true
|
|
}
|
|
}
|
|
}
|
|
|
|
Page {
|
|
id: generalForm
|
|
|
|
parent: null
|
|
|
|
padding: 64
|
|
|
|
Column {
|
|
Switch {
|
|
text: "Use press and hold instead of right click"
|
|
checked: MSettings.pressAndHold
|
|
|
|
onCheckedChanged: MSettings.pressAndHold = checked
|
|
}
|
|
|
|
Switch {
|
|
text: "Confirm on Exit"
|
|
checked: MSettings.confirmOnExit
|
|
|
|
onCheckedChanged: MSettings.confirmOnExit = checked
|
|
}
|
|
}
|
|
}
|
|
|
|
Page {
|
|
id: appearanceForm
|
|
|
|
parent: null
|
|
|
|
padding: 64
|
|
|
|
Column {
|
|
Switch {
|
|
text: "Dark theme"
|
|
checked: MSettings.darkTheme
|
|
|
|
onCheckedChanged: MSettings.darkTheme = checked
|
|
}
|
|
|
|
Switch {
|
|
text: "Mini Room List"
|
|
checked: MSettings.miniMode
|
|
|
|
onCheckedChanged: MSettings.miniMode = checked
|
|
}
|
|
}
|
|
}
|
|
|
|
Page {
|
|
id: aboutForm
|
|
|
|
parent: null
|
|
|
|
padding: 64
|
|
|
|
ColumnLayout {
|
|
spacing: 16
|
|
Image {
|
|
Layout.preferredWidth: 64
|
|
Layout.preferredHeight: 64
|
|
|
|
source: "qrc:/assets/img/icon.png"
|
|
}
|
|
Label {
|
|
text: "Spectral, an IM client for the Matrix protocol."
|
|
}
|
|
Label {
|
|
text: "Released under GNU General Public License, version 3."
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
width: 240
|
|
height: parent.height
|
|
z: 10
|
|
|
|
id: settingDrawer
|
|
|
|
color: MSettings.darkTheme ? "#323232" : "#f3f3f3"
|
|
|
|
layer.enabled: true
|
|
layer.effect: ElevationEffect {
|
|
elevation: 4
|
|
}
|
|
|
|
Column {
|
|
anchors.fill: parent
|
|
|
|
Repeater {
|
|
model: ListModel {
|
|
ListElement {
|
|
category: "Accounts"
|
|
form: 0
|
|
}
|
|
ListElement {
|
|
category: "General"
|
|
form: 1
|
|
}
|
|
ListElement {
|
|
category: "Appearance"
|
|
form: 2
|
|
}
|
|
ListElement {
|
|
category: "About"
|
|
form: 3
|
|
}
|
|
}
|
|
|
|
delegate: SettingCategoryDelegate {
|
|
width: parent.width
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
StackView {
|
|
anchors.fill: parent
|
|
anchors.leftMargin: settingDrawer.width
|
|
|
|
id: settingStackView
|
|
|
|
initialItem: aboutForm
|
|
}
|
|
}
|
|
|
|
|
|
/*##^## Designer {
|
|
D{i:0;autoSize:true;height:480;width:640}
|
|
}
|
|
##^##*/
|