mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-22 20:47:45 +00:00
Giant commit overhauling the interface to use KDE's Kirigami framework, which is based on Qt Quick. The logic is all but rewritten, allowing accounts to be separate from profiles.
74 lines
1.7 KiB
QML
74 lines
1.7 KiB
QML
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Window 2.15
|
|
import org.kde.kirigami 2.20 as Kirigami
|
|
import QtQuick.Controls 2.15 as Controls
|
|
import QtQuick.Layouts 1.15
|
|
import com.redstrate.astra 1.0
|
|
|
|
import "Pages"
|
|
|
|
Kirigami.ApplicationWindow {
|
|
id: appWindow
|
|
|
|
width: 1280
|
|
height: 720
|
|
visible: true
|
|
title: LauncherCore.isSteam ? "Astra (Steam)" : "Astra"
|
|
|
|
property var currentSetupProfile: LauncherCore.profileManager.getProfile(0)
|
|
|
|
pageStack.initialPage: Kirigami.Page
|
|
{
|
|
Kirigami.LoadingPlaceholder {
|
|
anchors.centerIn: parent
|
|
}
|
|
}
|
|
|
|
function checkSetup() {
|
|
if (!LauncherCore.loadingFinished) {
|
|
return
|
|
}
|
|
|
|
pageStack.layers.clear()
|
|
|
|
if (!currentSetupProfile.isGameInstalled) {
|
|
// User must set up the profile
|
|
pageStack.layers.replace('qrc:/ui/Setup/SetupPage.qml', {
|
|
profile: currentSetupProfile
|
|
})
|
|
} else if (!currentSetupProfile.account) {
|
|
// User must select an account for the profile
|
|
pageStack.layers.replace('qrc:/ui/Setup/AccountSetup.qml', {
|
|
profile: currentSetupProfile
|
|
})
|
|
} else {
|
|
pageStack.layers.replace('qrc:/ui/Pages/NewsPage.qml')
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: LauncherCore
|
|
|
|
function onLoadingFinished() {
|
|
checkSetup()
|
|
}
|
|
}
|
|
|
|
contextDrawer: LoginPage {
|
|
drawerOpen: true
|
|
modal: false
|
|
|
|
edge: Qt.RightEdge
|
|
|
|
topPadding: 0
|
|
leftPadding: 0
|
|
rightPadding: 0
|
|
|
|
width: 400
|
|
}
|
|
|
|
Component.onCompleted: checkSetup()
|
|
}
|