C++ / fmt (pull_request) Successful in 4s
JS/TS / fmt (pull_request) Successful in 15s
JS/TS / lint (pull_request) Successful in 19s
Python / static (pull_request) Successful in 57s
Rust / fmt (pull_request) Successful in 1m9s
Rust / build (pull_request) Successful in 2m11s
C++ / build (pull_request) Successful in 2m34s
Rust / clippy (pull_request) Successful in 1m30s
Python / verify (pull_request) Successful in 2m55s
C++ / clang-tidy (pull_request) Successful in 3m59s
72 lines
1.4 KiB
QML
72 lines
1.4 KiB
QML
import QtQuick
|
|
import ZShell.Config
|
|
import qs.Services
|
|
import qs.Helpers
|
|
import qs.Components
|
|
|
|
CustomRect {
|
|
id: root
|
|
|
|
readonly property bool closing: PopupManager.closed
|
|
readonly property url currentPopup: PopupManager.currentPopup
|
|
property bool shouldBeVisible: loader.status === Loader.Ready
|
|
|
|
color: Qt.alpha(Colors.palette.m3shadow, 0.3)
|
|
opacity: shouldBeVisible && !closing ? 1 : 0
|
|
visible: opacity > 0
|
|
|
|
Behavior on opacity {
|
|
Anim {
|
|
}
|
|
}
|
|
|
|
onVisibleChanged: {
|
|
if (!visible) {
|
|
PopupManager.requestClose();
|
|
PopupManager.currentPopup = "";
|
|
}
|
|
}
|
|
|
|
CustomMouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
preventStealing: true
|
|
propagateComposedEvents: false
|
|
|
|
onClicked: {
|
|
const insideItemWidth = mouseX < loader.x + loader.item.width && mouseX > loader.x;
|
|
const insideItemHeight = mouseY < loader.y + loader.item.height && mouseY > loader.y;
|
|
if (insideItemHeight && insideItemWidth)
|
|
return;
|
|
|
|
PopupManager.requestClose();
|
|
}
|
|
}
|
|
|
|
Loader {
|
|
id: loader
|
|
|
|
anchors.centerIn: parent
|
|
|
|
Connections {
|
|
function onCurrentPopupChanged(): void {
|
|
if (PopupManager.currentPopup) {
|
|
loader.setSource(PopupManager.currentPopup, PopupManager.currentPopupProps);
|
|
} else {
|
|
loader.source = null;
|
|
}
|
|
}
|
|
|
|
target: PopupManager
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
function onNetworkConnected(): void {
|
|
PopupManager.requestClose();
|
|
}
|
|
|
|
target: Network
|
|
}
|
|
}
|