nosignal-shell/modules/nexus/WindowFactory.qml
2026-06-05 01:29:06 +10:00

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 {}
}
}
}
}