diff options
Diffstat (limited to 'qml')
-rw-r--r-- | qml/CommandInput.qml | 19 | ||||
-rw-r--r-- | qml/StateHandler.qml | 2 | ||||
-rw-r--r-- | qml/commands.js | 19 | ||||
-rw-r--r-- | qml/ui.qrc | 1 |
4 files changed, 33 insertions, 8 deletions
diff --git a/qml/CommandInput.qml b/qml/CommandInput.qml index 835ccae..e7defbf 100644 --- a/qml/CommandInput.qml +++ b/qml/CommandInput.qml @@ -2,6 +2,8 @@ import QtQuick 2.0 import QtQuick.Layouts 1.1 import Qt.labs.settings 1.0 +import "commands.js" as Commands + Item { id: item @@ -17,8 +19,9 @@ Item { property color fontColor : "white" } - function focus() { - visible = true; + function focus(prefix) { + visible = true; + command.text = prefix; command.forceActiveFocus(); } @@ -41,9 +44,9 @@ Item { color: settings.fontColor selectionColor: settings.fontColor selectedTextColor: settings.background - text: ":" + selectByMouse: true - selectByMouse: true + function reset() { text = '' } onAccepted: { const prefix = String(text).charAt(0); @@ -51,11 +54,13 @@ Item { switch ( prefix ) { case ':': { - eval(cmd); - text = ':'; + Commands.execute(cmd); + reset(); break; } - default: { } + default: { + console.log('"' + prefix + '"' + " is not a command prefix"); + } } } } diff --git a/qml/StateHandler.qml b/qml/StateHandler.qml index 8c78e2f..75c5d6b 100644 --- a/qml/StateHandler.qml +++ b/qml/StateHandler.qml @@ -103,7 +103,7 @@ Item { onTriggered: { item.state = "COMMAND"; - commandInput.focus(); + commandInput.focus(shortcut); } } diff --git a/qml/commands.js b/qml/commands.js new file mode 100644 index 0000000..ee13a1b --- /dev/null +++ b/qml/commands.js @@ -0,0 +1,19 @@ +function execute(command) { + var args = command.split(' '); + var func = args[0]; + args.shift(); + + eval(func + '(' + JSON.stringify(args) + ')'); +} + +function exec(args) { + eval(args.join(' ')); +} + +function next() { + terminalList.selectNext(); +} + +function prev() { + terminalList.selectPrev(); +} @@ -7,5 +7,6 @@ <file>CommandInput.qml</file> <file>TerminalList.qml</file> <file>Highlighter.qml</file> + <file>commands.js</file> </qresource> </RCC> |