summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml')
-rw-r--r--raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml312
1 files changed, 0 insertions, 312 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml
deleted file mode 100644
index c65f3e0..0000000
--- a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/Common/InputModal.qml
+++ /dev/null
@@ -1,312 +0,0 @@
-import QtQuick
-import qs.Common
-import qs.Modals.Common
-import qs.Widgets
-
-DankModal {
- id: root
-
- layerNamespace: "dms:input-modal"
- keepPopoutsOpen: true
-
- property string inputTitle: ""
- property string inputMessage: ""
- property string inputPlaceholder: ""
- property string inputText: ""
- property string confirmButtonText: "Confirm"
- property string cancelButtonText: "Cancel"
- property color confirmButtonColor: Theme.primary
- property var onConfirm: function (text) {}
- property var onCancel: function () {}
- property int selectedButton: -1
- property bool keyboardNavigation: false
-
- function show(title, message, onConfirmCallback, onCancelCallback) {
- inputTitle = title || "";
- inputMessage = message || "";
- inputPlaceholder = "";
- inputText = "";
- confirmButtonText = "Confirm";
- cancelButtonText = "Cancel";
- confirmButtonColor = Theme.primary;
- onConfirm = onConfirmCallback || ((text) => {});
- onCancel = onCancelCallback || (() => {});
- selectedButton = -1;
- keyboardNavigation = false;
- open();
- }
-
- function showWithOptions(options) {
- inputTitle = options.title || "";
- inputMessage = options.message || "";
- inputPlaceholder = options.placeholder || "";
- inputText = options.initialText || "";
- confirmButtonText = options.confirmText || "Confirm";
- cancelButtonText = options.cancelText || "Cancel";
- confirmButtonColor = options.confirmColor || Theme.primary;
- onConfirm = options.onConfirm || ((text) => {});
- onCancel = options.onCancel || (() => {});
- selectedButton = -1;
- keyboardNavigation = false;
- open();
- }
-
- function confirmAndClose() {
- const text = inputText;
- close();
- if (onConfirm) {
- onConfirm(text);
- }
- }
-
- function cancelAndClose() {
- close();
- if (onCancel) {
- onCancel();
- }
- }
-
- function selectButton() {
- if (selectedButton === 0) {
- cancelAndClose();
- } else {
- confirmAndClose();
- }
- }
-
- shouldBeVisible: false
- allowStacking: true
- modalWidth: 350
- modalHeight: contentLoader.item ? contentLoader.item.implicitHeight + Theme.spacingM * 2 : 200
- enableShadow: true
- shouldHaveFocus: true
- onBackgroundClicked: cancelAndClose()
- onOpened: {
- Qt.callLater(function () {
- if (contentLoader.item && contentLoader.item.textInputRef) {
- contentLoader.item.textInputRef.forceActiveFocus();
- }
- });
- }
-
- content: Component {
- FocusScope {
- anchors.fill: parent
- implicitHeight: mainColumn.implicitHeight
- focus: true
-
- property alias textInputRef: textInput
-
- Keys.onPressed: function (event) {
- const textFieldFocused = textInput.activeFocus;
-
- switch (event.key) {
- case Qt.Key_Escape:
- root.cancelAndClose();
- event.accepted = true;
- break;
- case Qt.Key_Tab:
- if (textFieldFocused) {
- root.keyboardNavigation = true;
- root.selectedButton = 0;
- textInput.focus = false;
- } else {
- root.keyboardNavigation = true;
- if (root.selectedButton === -1) {
- root.selectedButton = 0;
- } else if (root.selectedButton === 0) {
- root.selectedButton = 1;
- } else {
- root.selectedButton = -1;
- textInput.forceActiveFocus();
- }
- }
- event.accepted = true;
- break;
- case Qt.Key_Left:
- if (!textFieldFocused) {
- root.keyboardNavigation = true;
- root.selectedButton = 0;
- event.accepted = true;
- }
- break;
- case Qt.Key_Right:
- if (!textFieldFocused) {
- root.keyboardNavigation = true;
- root.selectedButton = 1;
- event.accepted = true;
- }
- break;
- case Qt.Key_Return:
- case Qt.Key_Enter:
- if (root.selectedButton !== -1) {
- root.selectButton();
- } else {
- root.confirmAndClose();
- }
- event.accepted = true;
- break;
- }
- }
-
- Column {
- id: mainColumn
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.top: parent.top
- anchors.leftMargin: Theme.spacingL
- anchors.rightMargin: Theme.spacingL
- anchors.topMargin: Theme.spacingL
- spacing: 0
-
- StyledText {
- text: root.inputTitle
- font.pixelSize: Theme.fontSizeLarge
- color: Theme.surfaceText
- font.weight: Font.Medium
- width: parent.width
- horizontalAlignment: Text.AlignHCenter
- }
-
- Item {
- width: 1
- height: Theme.spacingL
- }
-
- StyledText {
- text: root.inputMessage
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- width: parent.width
- horizontalAlignment: Text.AlignHCenter
- wrapMode: Text.WordWrap
- visible: root.inputMessage !== ""
- }
-
- Item {
- width: 1
- height: root.inputMessage !== "" ? Theme.spacingL : 0
- visible: root.inputMessage !== ""
- }
-
- Rectangle {
- width: parent.width
- height: 40
- radius: Theme.cornerRadius
- color: Theme.surfaceVariantAlpha
- border.color: textInput.activeFocus ? Theme.primary : "transparent"
- border.width: textInput.activeFocus ? 1 : 0
-
- TextInput {
- id: textInput
-
- anchors.fill: parent
- anchors.leftMargin: Theme.spacingM
- anchors.rightMargin: Theme.spacingM
- verticalAlignment: TextInput.AlignVCenter
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- selectionColor: Theme.primary
- selectedTextColor: Theme.primaryText
- clip: true
- text: root.inputText
- onTextChanged: root.inputText = text
-
- StyledText {
- anchors.fill: parent
- verticalAlignment: Text.AlignVCenter
- font.pixelSize: Theme.fontSizeMedium
- color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.4)
- text: root.inputPlaceholder
- visible: textInput.text === "" && !textInput.activeFocus
- }
- }
- }
-
- Item {
- width: 1
- height: Theme.spacingL * 1.5
- }
-
- Row {
- anchors.horizontalCenter: parent.horizontalCenter
- spacing: Theme.spacingM
-
- Rectangle {
- width: 120
- height: 40
- radius: Theme.cornerRadius
- color: {
- if (root.keyboardNavigation && root.selectedButton === 0) {
- return Qt.rgba(Theme.primary.r, Theme.primary.g, Theme.primary.b, 0.12);
- } else if (cancelButton.containsMouse) {
- return Theme.surfacePressed;
- } else {
- return Theme.surfaceVariantAlpha;
- }
- }
- border.color: (root.keyboardNavigation && root.selectedButton === 0) ? Theme.primary : "transparent"
- border.width: (root.keyboardNavigation && root.selectedButton === 0) ? 1 : 0
-
- StyledText {
- text: root.cancelButtonText
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- font.weight: Font.Medium
- anchors.centerIn: parent
- }
-
- MouseArea {
- id: cancelButton
-
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: root.cancelAndClose()
- }
- }
-
- Rectangle {
- width: 120
- height: 40
- radius: Theme.cornerRadius
- color: {
- const baseColor = root.confirmButtonColor;
- if (root.keyboardNavigation && root.selectedButton === 1) {
- return Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 1);
- } else if (confirmButton.containsMouse) {
- return Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 0.9);
- } else {
- return baseColor;
- }
- }
- border.color: (root.keyboardNavigation && root.selectedButton === 1) ? "white" : "transparent"
- border.width: (root.keyboardNavigation && root.selectedButton === 1) ? 1 : 0
-
- StyledText {
- text: root.confirmButtonText
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.primaryText
- font.weight: Font.Medium
- anchors.centerIn: parent
- }
-
- MouseArea {
- id: confirmButton
-
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: root.confirmAndClose()
- }
- }
- }
-
- Item {
- width: 1
- height: Theme.spacingL
- }
- }
- }
- }
-}