blob: a82cecdcaaddd3c4e5b6e72d9ee993bdf09840da (
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<Rect id="fieldText"
height="30"
radius="5"
color="black">
<properties>
<Property
name="text"
value=""
onValueChanged="reset()"/>
<Property
name="label"
value=""/>
</properties>
<signals>
<Signal name="confirmed"/>
</signals>
<resources>
<Script>
function edit() {
if (!contacts.mouseGrabbed) {
fieldText.state='editing';
contacts.mouseGrabbed=true;
}
}
function confirm() {
fieldText.text = textEdit.text;
fieldText.state='';
contacts.mouseGrabbed=false;
fieldText.confirmed.emit();
}
function reset() {
textEdit.text = fieldText.text;
fieldText.state='';
contacts.mouseGrabbed=false;
}
</Script>
</resources>
<Image id="cancelIcon"
width="22" height="22"
anchors.right="{parent.right}" anchors.rightMargin="4"
anchors.verticalCenter="{parent.verticalCenter}"
src="../shared/pics/cancel.png"
opacity="0"/>
<Image id="confirmIcon"
width="22" height="22"
anchors.left="{parent.left}" anchors.leftMargin="4"
anchors.verticalCenter="{parent.verticalCenter}"
src="../shared/pics/ok.png"
opacity="0"/>
<TextEdit id="textEdit"
anchors.left="{parent.left}" anchors.leftMargin="0"
anchors.right="{parent.right}" anchors.rightMargin="0"
anchors.verticalCenter="{parent.verticalCenter}"
color="white"
font.bold="true"
readOnly="true"
wrap="false"
/>
<Text id="textLabel"
x="5" width="{parent.width-10}"
anchors.verticalCenter="{parent.verticalCenter}"
hAlign="AlignHCenter"
color="#505050"
font.italic="true"
text="{fieldText.label}"
opacity="{textEdit.text != '' ? 0 : 1}">
<opacity>
<Behaviour>
<NumericAnimation property="opacity" duration="250"/>
</Behaviour>
</opacity>
</Text>
<MouseRegion anchors.fill="{cancelIcon}" onClicked="reset()"/>
<MouseRegion anchors.fill="{confirmIcon}" onClicked="confirm()"/>
<MouseRegion
id="editRegion"
anchors.fill="{textEdit}"
onClicked="edit()"/>
<states>
<State name="editing">
<SetProperty target="{confirmIcon}" property="opacity" value="1"/>
<SetProperty target="{cancelIcon}" property="opacity" value="1"/>
<SetProperty target="{fieldText}" property="color" value="white"/>
<SetProperty target="{textEdit}" property="color" value="black"/>
<SetProperty target="{textEdit}" property="readOnly" value="false"/>
<SetProperty target="{textEdit}" property="focus" value="true"/>
<SetProperty target="{editRegion}" property="opacity" value="0"/>
<SetProperty target="{textEdit.anchors}" property="leftMargin" value="34"/>
<SetProperty target="{textEdit.anchors}" property="rightMargin" value="34"/>
</State>
</states>
<transitions>
<Transition fromState='' toState="*" reversible="true">
<NumericAnimation properties="opacity,leftMargin,rightMargin" duration="200"/>
<ColorAnimation duration="150"/>
</Transition>
</transitions>
</Rect>
|