60 lines
1.3 KiB
QML
60 lines
1.3 KiB
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import Caelestia.Config
|
|
import qs.components
|
|
import qs.services
|
|
import qs.modules.nexus
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
function create(parent: Item, props: var): void {
|
|
nexusComp.createObject(parent ?? dummy, props);
|
|
}
|
|
|
|
QtObject {
|
|
id: dummy
|
|
}
|
|
|
|
Component {
|
|
id: nexusComp
|
|
|
|
FloatingWindow {
|
|
id: win
|
|
|
|
color: Colours.tPalette.m3surface
|
|
surfaceFormat.opaque: false
|
|
|
|
onVisibleChanged: {
|
|
if (!visible)
|
|
destroy();
|
|
}
|
|
|
|
implicitWidth: nexus.implicitWidth
|
|
implicitHeight: nexus.implicitHeight
|
|
|
|
minimumSize.width: contentItem.Tokens.sizes.nexus.minWidth
|
|
minimumSize.height: contentItem.Tokens.sizes.nexus.minHeight
|
|
|
|
contentItem.Config.screen: screen.name
|
|
contentItem.Tokens.screen: screen.name
|
|
|
|
title: qsTr("Nexus — %1").arg(PageRegistry.pages[nexus.nState.currentPageIdx].label)
|
|
|
|
Nexus {
|
|
id: nexus
|
|
|
|
anchors.fill: parent
|
|
nState.screen: win.screen
|
|
nState.isWindow: true
|
|
onClose: win.destroy()
|
|
}
|
|
|
|
Behavior on color {
|
|
CAnim {}
|
|
}
|
|
}
|
|
}
|
|
}
|