diff options
| -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> | 
