summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
committerNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
commit3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch)
treec5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml
parent56616f693b4f263cbf0d47da43b67424efa6022d (diff)
downloadRaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.tar.gz
RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.zip
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml244
1 files changed, 244 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml b/raveos-hyprland-theme/theme-data/dms/PLUGINS/LauncherExample/LauncherExampleSettings.qml
new file mode 100644
index 0000000..e30aaa8
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/dms/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
+ }
+}