moment/harmonyqml/components/UI.qml

64 lines
1.6 KiB
QML
Raw Normal View History

import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.4
2019-04-29 02:45:12 +10:00
import "Base" as Base
2019-04-29 02:40:42 +10:00
import "SidePane" as SidePane
2019-04-29 02:45:12 +10:00
import "Chat" as Chat
2019-04-28 14:44:55 +10:00
Item {
2019-04-28 11:07:20 +10:00
id: mainUI
2019-04-28 14:44:55 +10:00
Base.HImage {
id: mainUIBackground
fillMode: Image.PreserveAspectCrop
source: "../images/login_background.jpg"
anchors.fill: parent
}
property bool accountsLoggedIn: Backend.clientManager.clientCount > 0
2019-04-28 14:44:55 +10:00
Base.HSplitView {
anchors.fill: parent
2019-04-29 02:40:42 +10:00
SidePane.SidePane {
property int parentWidth: parent.width
onParentWidthChanged: width = Math.min(parent.width * 0.3, 300)
Layout.minimumWidth: 36
2019-04-29 02:40:42 +10:00
Layout.maximumWidth: parent.width
visible: accountsLoggedIn
}
StackView {
2019-04-28 14:44:55 +10:00
id: pageStack
property bool initialPageSet: false
2019-04-28 11:07:20 +10:00
function showPage(name, properties) {
2019-04-29 02:45:12 +10:00
pageStack.replace("Pages/" + name + ".qml", properties || {})
}
function showRoom(userId, roomId) {
pageStack.replace(
"Chat/Chat.qml", { userId: userId, roomId: roomId }
)
}
2019-04-28 14:44:55 +10:00
Component.onCompleted: {
if (initialPageSet) { return }
initialPageSet = true
showPage(accountsLoggedIn ? "Default" : "SignIn")
}
onCurrentItemChanged: if (currentItem) {
currentItem.forceActiveFocus()
}
// Buggy
replaceExit: null
popExit: null
pushExit: null
}
}
}