1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-22 20:47:45 +00:00
astra/launcher/ui/main.qml
Joshua Goins 16420b7421 Complete rewrite to Kirigami
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.
2023-07-30 08:49:34 -04:00

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()
}