diff options
author | Adrian Kummerlaender | 2015-08-07 14:42:32 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2015-08-07 14:42:32 +0200 |
commit | 359c878cbfe97dafad328c748ae744b38a7dbd5b (patch) | |
tree | c487d69cf877e576306a72ee13c5b5b8880df4b9 /qml/StateHandler.qml | |
parent | 107f0c94200658476dfd5fe536c57a57daf6eed3 (diff) | |
download | MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar.gz MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar.bz2 MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar.lz MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar.xz MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.tar.zst MetaTerm-359c878cbfe97dafad328c748ae744b38a7dbd5b.zip |
Implemented basic command mode
Exposes access to the application via JavaScript to the user.
This will enable easy configuration changes as well as make more complex commands possible.
All JavaScript entered in command mode is evaluated at the application root.
Diffstat (limited to 'qml/StateHandler.qml')
-rw-r--r-- | qml/StateHandler.qml | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/qml/StateHandler.qml b/qml/StateHandler.qml index 4d226c9..8c78e2f 100644 --- a/qml/StateHandler.qml +++ b/qml/StateHandler.qml @@ -5,7 +5,8 @@ import Qt.labs.settings 1.0 Item { id: item - property Item terminalList : null + property Item terminalList : null + property CommandInput commandInput : null Settings { id: settings @@ -13,6 +14,7 @@ Item { property string insertMode : "i" property string normalMode : "Shift+ESC" + property string commandMode : ":" property string nextItem : "j" property string prevItem : "k" property string firstItem : "g" @@ -32,8 +34,9 @@ Item { State { name: "NORMAL" - PropertyChanges { target: escapeInsertAction; enabled: false } + PropertyChanges { target: enterNormalAction; enabled: false } PropertyChanges { target: enterInsertAction; enabled: true } + PropertyChanges { target: enterCommandAction; enabled: true } PropertyChanges { target: nextTerminalAction; enabled: true } PropertyChanges { target: heightenTerminalAction; enabled: true } PropertyChanges { target: shortenTerminalAction; enabled: true } @@ -45,8 +48,23 @@ Item { State { name: "INSERT" - PropertyChanges { target: escapeInsertAction; enabled: true } + PropertyChanges { target: enterNormalAction; enabled: true } PropertyChanges { target: enterInsertAction; enabled: false } + PropertyChanges { target: enterCommandAction; enabled: false } + PropertyChanges { target: nextTerminalAction; enabled: false } + PropertyChanges { target: heightenTerminalAction; enabled: false } + PropertyChanges { target: shortenTerminalAction; enabled: false } + PropertyChanges { target: prevTerminalAction; enabled: false } + PropertyChanges { target: lastTerminalAction; enabled: false } + PropertyChanges { target: firstTerminalAction; enabled: false } + PropertyChanges { target: resetTerminalAction; enabled: false } + }, + State { + name: "COMMAND" + + PropertyChanges { target: enterNormalAction; enabled: true } + PropertyChanges { target: enterInsertAction; enabled: false } + PropertyChanges { target: enterCommandAction; enabled: false } PropertyChanges { target: nextTerminalAction; enabled: false } PropertyChanges { target: heightenTerminalAction; enabled: false } PropertyChanges { target: shortenTerminalAction; enabled: false } @@ -58,6 +76,18 @@ Item { ] Action { + id: enterNormalAction + shortcut: settings.normalMode + onTriggered: { + item.state = "NORMAL"; + + terminalList.forceActiveFocus(); + terminalList.unfocusCurrent(); + commandInput.unfocus(); + } + } + + Action { id: enterInsertAction shortcut: settings.insertMode onTriggered: { @@ -68,13 +98,12 @@ Item { } Action { - id: escapeInsertAction - shortcut: settings.normalMode + id: enterCommandAction + shortcut: settings.commandMode onTriggered: { - item.state = "NORMAL"; + item.state = "COMMAND"; - terminalList.forceActiveFocus(); - terminalList.unfocusCurrent(); + commandInput.focus(); } } |