shift-shell/kcms/waydroidintegration/ui/main.qml
Devin Lin a8b858dc3e Remove kirigami version in imports
This fixes potential issues stemming from pinning versions on Kirigami
qml api imports
2026-03-06 22:08:07 -05:00

104 lines
3.3 KiB
QML

/*
* SPDX-FileCopyrightText: 2025 Florian RICHER <florian.richer@protonmail.com>
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15 as QQC2
import org.kde.kirigami as Kirigami
import org.kde.kcmutils as KCM
import org.kde.kirigamiaddons.formcard 1.0 as FormCard
import org.kde.plasma.components 3.0 as PC3
import org.kde.plasma.private.mobileshell.waydroidintegrationplugin as AIP
KCM.SimpleKCM {
id: root
title: i18n("Waydroid Integration")
topPadding: 0
bottomPadding: 0
leftPadding: 0
rightPadding: 0
ColumnLayout {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.NotSupported
anchors.centerIn: parent
spacing: Kirigami.Units.largeSpacing
QQC2.Label {
text: i18n("Waydroid is not installed")
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: Text.AlignHCenter
}
PC3.Button {
text: i18n("Check installation")
Layout.alignment: Qt.AlignHCenter
onClicked: AIP.WaydroidDBusClient.refreshSupportsInfo()
}
}
WaydroidInitialConfigurationForm {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.NotInitialized
}
WaydroidDownloadStatus {
id: downloadStatus
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.Initializing
text: i18n("Downloading Android and vendor images.\nIt can take a few minutes.")
Connections {
target: AIP.WaydroidDBusClient
function onDownloadStatusChanged(downloaded, total, speed) {
downloadStatus.downloaded = downloaded
downloadStatus.total = total
downloadStatus.speed = speed
}
}
}
WaydroidLoader {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.Resetting
text: i18n("Waydroid is resetting.\nIt can take a few seconds.")
}
ColumnLayout {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.Initialized && AIP.WaydroidDBusClient.sessionStatus === AIP.WaydroidDBusClient.SessionStopped
anchors.centerIn: parent
spacing: Kirigami.Units.largeSpacing
QQC2.Label {
text: i18n("The Waydroid session is not running.")
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: Text.AlignHCenter
}
PC3.Button {
text: i18n("Start the session")
Layout.alignment: Qt.AlignHCenter
onClicked: AIP.WaydroidDBusClient.startSession()
}
}
WaydroidLoader {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.Initialized && AIP.WaydroidDBusClient.sessionStatus === AIP.WaydroidDBusClient.SessionStarting
text: i18n("Waydroid session is starting.\nIt can take a few seconds.")
}
WaydroidConfigurationForm {
visible: AIP.WaydroidDBusClient.status === AIP.WaydroidDBusClient.Initialized && AIP.WaydroidDBusClient.sessionStatus === AIP.WaydroidDBusClient.SessionRunning
}
Connections {
target: AIP.WaydroidDBusClient
function onErrorOccurred(title, message) {
kcm.push("WaydroidErrorPage.qml", { title, message })
}
}
}