diff --git a/lookandfeel/contents/systemdialog/SystemDialog.qml b/lookandfeel/contents/systemdialog/SystemDialog.qml deleted file mode 100644 index d3a35ac6..00000000 --- a/lookandfeel/contents/systemdialog/SystemDialog.qml +++ /dev/null @@ -1,165 +0,0 @@ -// SPDX-FileCopyrightText: 2021-2024 Devin Lin -// SPDX-License-Identifier: LGPL-2.0-or-later - -import QtQuick -import QtQuick.Controls as QQC2 -import QtQuick.Layouts -import QtQuick.Window -import Qt5Compat.GraphicalEffects -import QtQuick.Templates as T -import org.kde.kirigami as Kirigami - -Item { - id: root - - // -- public API: should match plasma-workspace implementation -- - - default property Item mainItem - property string mainText: "" - property string subtitle: "" - property string iconName - property list actions - readonly property alias dialogButtonBox: footerButtonBox - - required property Window window - readonly property real minimumHeight: implicitWidth - readonly property real minimumWidth: implicitHeight - readonly property int flags: Qt.FramelessWindowHint | Qt.Dialog - property var standardButtons // footerButtonBox standardButtons - readonly property int spacing: Kirigami.Units.gridUnit - - function present() { - window.showMaximized(); - } - - onWindowChanged: { - if (window) { - window.color = Qt.rgba(0, 0, 0, 0.5); - } - } - - Item { - id: windowItem - anchors.centerIn: parent - // margins for shadow - implicitWidth: Math.min(Screen.width, control.implicitWidth + 2 * Kirigami.Units.gridUnit) - implicitHeight: Math.min(Screen.height, control.implicitHeight + 2 * Kirigami.Units.gridUnit) - - // shadow - RectangularGlow { - id: glow - anchors.topMargin: 1 - anchors.fill: control - cached: true - glowRadius: 2 - cornerRadius: Kirigami.Units.gridUnit - spread: 0.1 - color: Qt.rgba(0, 0, 0, 0.4) - } - - // actual window - QQC2.Control { - id: control - anchors.fill: parent - anchors.margins: glow.cornerRadius - topPadding: root.spacing - bottomPadding: root.spacing - rightPadding: root.spacing - leftPadding: root.spacing - - implicitWidth: Kirigami.Units.gridUnit * 22 - - background: Item { - Rectangle { // border - anchors.fill: parent - anchors.margins: -1 - radius: Kirigami.Units.largeSpacing + 1 - color: Qt.darker(Kirigami.Theme.backgroundColor, 1.5) - } - Rectangle { // background colour - anchors.fill: parent - radius: Kirigami.Units.largeSpacing - color: Kirigami.Theme.backgroundColor - } - } - - contentItem: ColumnLayout { - id: column - spacing: 0 - - // header - Kirigami.Heading { - Layout.fillWidth: true - Layout.maximumWidth: root.window.maximumWidth - level: 3 - font.weight: Font.Bold - text: root.mainText - wrapMode: Text.Wrap - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - } - - QQC2.Label { - Layout.topMargin: Kirigami.Units.largeSpacing - Layout.bottomMargin: Kirigami.Units.largeSpacing - Layout.maximumWidth: root.window.maximumWidth - Layout.fillWidth: true - text: root.subtitle - visible: text.length > 0 - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - } - - Kirigami.Icon { - Layout.topMargin: Kirigami.Units.largeSpacing - Layout.alignment: Qt.AlignCenter - source: root.iconName - implicitWidth: Kirigami.Units.iconSizes.large - implicitHeight: Kirigami.Units.iconSizes.large - } - - // content - QQC2.Control { - id: content - - Layout.fillHeight: true - Layout.fillWidth: true - Layout.topMargin: Kirigami.Units.gridUnit - Layout.maximumWidth: root.window.maximumWidth - - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - - contentItem: root.mainItem - background: Item {} - } - - QQC2.DialogButtonBox { - id: footerButtonBox - // ensure we never have no buttons, we always must have the cancel button available - standardButtons: (root.standardButtons === QQC2.DialogButtonBox.NoButton) ? QQC2.DialogButtonBox.Cancel : root.standardButtons - - Layout.topMargin: Kirigami.Units.largeSpacing - Layout.fillWidth: true - Layout.maximumWidth: root.window.maximumWidth - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - - onAccepted: root.window.accept() - onRejected: root.window.reject() - - Repeater { - model: root.actions - delegate: QQC2.Button { - action: modelData - } - } - } - } - } - } -}