moment/src/qml/UI.qml
2019-07-16 17:08:06 -04:00

103 lines
2.9 KiB
QML

// Copyright 2019 miruka
// This file is part of harmonyqml, licensed under LGPLv3.
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Window 2.7
import "Base"
import "SidePane"
Item {
id: mainUI
Connections {
target: py
onWillLoadAccounts: function(will) {
pageStack.showPage(will ? "Default": "SignIn")
if (will) {initialRoomTimer.start()}
}
}
property bool accountsPresent:
accounts.count > 0 || py.loadingAccounts
HImage {
id: mainUIBackground
fillMode: Image.PreserveAspectCrop
source: "../images/login_background.jpg"
sourceSize.width: Screen.width
sourceSize.height: Screen.height
anchors.fill: parent
asynchronous: false
}
HSplitView {
id: uiSplitView
anchors.fill: parent
SidePane {
id: sidePane
canAutoSize: uiSplitView.canAutoSize
// Initial width until user manually resizes
width: implicitWidth
Layout.minimumWidth: reduce ? 0 : theme.sidePane.collapsedWidth
// -1: avoid making swipeview stuff disappear when dragged to max
Layout.maximumWidth: parent.width - 1
Behavior on Layout.minimumWidth {
// Must run faster than SidePane implicitWidth anim
HNumberAnimation { duration: theme.animationDuration / 2 }
}
}
StackView {
id: pageStack
function showPage(name, properties) {
pageStack.replace("Pages/" + name + ".qml", properties || {})
}
function showRoom(userId, category, roomId) {
var info = rooms.getWhere({
"userId": userId,
"roomId": roomId,
"category": category
}, 1)[0]
pageStack.replace("Chat/Chat.qml", {"roomInfo": info})
}
Timer {
// TODO: remove this, debug
id: initialRoomTimer
interval: 5000
repeat: false
// onTriggered: pageStack.showRoom(
// "@test_mary:matrix.org",
// "Rooms",
// "!TSXGsbBbdwsdylIOJZ:matrix.org"
// "Invites",
// "!xjqvLOGhMVutPXpAqi:matrix.org"
// )
onTriggered: pageStack.showPage(
"EditAccount/EditAccount",
{"userId": "@test_mary:matrix.org"}
)
}
onCurrentItemChanged: if (currentItem) {
currentItem.forceActiveFocus()
}
// Buggy
replaceExit: null
popExit: null
pushExit: null
}
Keys.onEscapePressed: if (window.debug) { py.call("APP.pdb") }
}
}