blob: ae48a7a5c3ce7491294ce0b533f5aa10798cf644 (
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
64
65
66
67
68
69
70
71
72
|
import QtQuick 2.0
import QtQuick.Layouts 1.1
import Qt.labs.settings 1.0
import "commands.js" as Commands
Item {
id: item
signal executed
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(prefix) {
visible = true;
command.text = prefix;
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
selectByMouse: true
function reset() { text = '' }
onAccepted: {
const prefix = String(text).charAt(0);
const cmd = String(text).substring(1, String(text).length);
switch ( prefix ) {
case ':': {
Commands.execute(cmd);
reset();
break;
}
default: {
console.log('"' + prefix + '"' + " is not a command prefix.");
}
}
item.executed();
}
}
}
}
|