diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/PLUGINS/LauncherExample/LauncherExampleSettings.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/PLUGINS/LauncherExample/LauncherExampleSettings.qml | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/PLUGINS/LauncherExample/LauncherExampleSettings.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/PLUGINS/LauncherExample/LauncherExampleSettings.qml new file mode 100644 index 0000000..e30aaa8 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/PLUGINS/LauncherExample/LauncherExampleSettings.qml @@ -0,0 +1,244 @@ +import QtQuick +import QtQuick.Controls +import qs.Widgets + +FocusScope { + id: root + + property var pluginService: null + + implicitHeight: settingsColumn.implicitHeight + height: implicitHeight + + Column { + id: settingsColumn + anchors.fill: parent + anchors.margins: 16 + spacing: 16 + + Text { + text: "Launcher Example Plugin Settings" + font.pixelSize: 18 + font.weight: Font.Bold + color: "#FFFFFF" + } + + Text { + text: "This plugin demonstrates the launcher plugin system with example items and actions." + font.pixelSize: 14 + color: "#CCFFFFFF" + wrapMode: Text.WordWrap + width: parent.width - 32 + } + + Rectangle { + width: parent.width - 32 + height: 1 + color: "#30FFFFFF" + } + + Column { + spacing: 12 + width: parent.width - 32 + + Text { + text: "Trigger Configuration" + font.pixelSize: 16 + font.weight: Font.Medium + color: "#FFFFFF" + } + + Text { + text: noTriggerToggle.checked ? "Items will always show in the launcher (no trigger needed)." : "Set the trigger text to activate this plugin. Type the trigger in the launcher to filter to this plugin's items." + font.pixelSize: 12 + color: "#CCFFFFFF" + wrapMode: Text.WordWrap + width: parent.width + } + + Row { + spacing: 12 + + CheckBox { + id: noTriggerToggle + text: "No trigger (always show)" + checked: loadSettings("noTrigger", false) + + contentItem: Text { + text: noTriggerToggle.text + font.pixelSize: 14 + color: "#FFFFFF" + leftPadding: noTriggerToggle.indicator.width + 8 + verticalAlignment: Text.AlignVCenter + } + + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + radius: 4 + border.color: noTriggerToggle.checked ? "#4CAF50" : "#60FFFFFF" + border.width: 2 + color: noTriggerToggle.checked ? "#4CAF50" : "transparent" + + Rectangle { + width: 12 + height: 12 + anchors.centerIn: parent + radius: 2 + color: "#FFFFFF" + visible: noTriggerToggle.checked + } + } + + onCheckedChanged: { + saveSettings("noTrigger", checked) + if (checked) { + saveSettings("trigger", "") + } else { + saveSettings("trigger", triggerField.text || "#") + } + } + } + } + + Row { + spacing: 12 + anchors.left: parent.left + anchors.right: parent.right + visible: !noTriggerToggle.checked + + Text { + text: "Trigger:" + font.pixelSize: 14 + color: "#FFFFFF" + anchors.verticalCenter: parent.verticalCenter + } + + DankTextField { + id: triggerField + width: 100 + height: 40 + text: loadSettings("trigger", "#") + placeholderText: "#" + backgroundColor: "#30FFFFFF" + textColor: "#FFFFFF" + + onTextEdited: { + const newTrigger = text.trim() + saveSettings("trigger", newTrigger || "#") + saveSettings("noTrigger", newTrigger === "") + } + } + + Text { + text: "Examples: #, !, @, !ex, etc." + font.pixelSize: 12 + color: "#AAFFFFFF" + anchors.verticalCenter: parent.verticalCenter + } + } + } + + Rectangle { + width: parent.width - 32 + height: 1 + color: "#30FFFFFF" + } + + Column { + spacing: 8 + width: parent.width - 32 + + Text { + text: "Example Items:" + font.pixelSize: 14 + font.weight: Font.Medium + color: "#FFFFFF" + } + + Column { + spacing: 4 + leftPadding: 16 + + Text { + text: "• Test Item 1, 2, 3 - Show toast notifications" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + + Text { + text: "• Example Copy Action - Copy text to clipboard" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + + Text { + text: "• Example Script Action - Demonstrate script execution" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + } + } + + Rectangle { + width: parent.width - 32 + height: 1 + color: "#30FFFFFF" + } + + Column { + spacing: 8 + width: parent.width - 32 + + Text { + text: "Usage:" + font.pixelSize: 14 + font.weight: Font.Medium + color: "#FFFFFF" + } + + Column { + spacing: 4 + leftPadding: 16 + bottomPadding: 24 + + Text { + text: "1. Open Launcher (Ctrl+Space or click launcher button)" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + + Text { + text: noTriggerToggle.checked ? "2. Items are always visible in the launcher" : "2. Type your trigger (default: #) to filter to this plugin" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + + Text { + text: noTriggerToggle.checked ? "3. Search works normally with plugin items included" : "3. Optionally add search terms: '# test' to find test items" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + + Text { + text: "4. Select an item and press Enter to execute its action" + font.pixelSize: 12 + color: "#CCFFFFFF" + } + } + } + } + + function saveSettings(key, value) { + if (pluginService) { + pluginService.savePluginData("launcherExample", key, value) + } + } + + function loadSettings(key, defaultValue) { + if (pluginService) { + return pluginService.loadPluginData("launcherExample", key, defaultValue) + } + return defaultValue + } +} |