aboutsummaryrefslogtreecommitdiff
path: root/qml/CommandInput.qml
blob: 835ccaeda38d6cd1e6b93517525055f099ca970c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import QtQuick 2.0
import QtQuick.Layouts 1.1
import Qt.labs.settings 1.0

Item {
	id: item

	visible: false

	Settings {
		id: settings
		category: "command"

		property color  background : "black"
		property int    fontSize   : 12
		property string fontFamily : "Monospace"
		property color  fontColor  : "white"
	}

	function focus() {
		visible = true;
		command.forceActiveFocus();
	}

	function unfocus() {
		visible = false;
	}

	Rectangle {
		anchors.fill: parent
		color: settings.background

		TextInput {
			id: command

			font {
				family:    settings.fontFamily
				pointSize: settings.fontSize
			}

			color:             settings.fontColor
			selectionColor:    settings.fontColor
			selectedTextColor: settings.background
			text: ":"

			selectByMouse:    true

			onAccepted: {
				const prefix = String(text).charAt(0);
				const cmd    = String(text).substring(1, String(text).length);

				switch ( prefix ) {
					case ':': {
						eval(cmd);
						text = ':';
						break;
					}
					default: { }
				}
			}
		}
	}
}