blob: a8cb72a5b4d70052a2dff5764748b8148bda7514 (
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
import Qt 4.6
//Layout of the mainPage
//---------------------------------------------- ____ mainPage
//| ------------------- ---------------------- | /
//| | serviceList | | dialScreen | |/
//| | | | | |
//| | | | | |
//| | | | | |
//| ------------------- | | |
//| ------------------- | | |
//| | serviceDetails | | | |
//| ------------------- | | |
//| | | |
//| | | |
//| | | |
//| | | |
//| ------------------- | | |
//| | status | | | |
//| ------------------- ---------------------- |
//----------------------------------------------
Rectangle {
id: mainPage
width: 500
height: 250
color: "white"
ServiceList {
id: serviceList
height: childrenRect.height + 10
width: childrenRect.width
anchors.top: parent.top
anchors.left: parent.left
anchors.right: dialScreen.left
anchors.topMargin: 5
anchors.leftMargin: 5
anchors.rightMargin: 5
radius: 5
color: "steelblue"
border.color: "black"
border.width: 3
gradient:
Gradient {
GradientStop {
position: 0.0
color: "lightsteelblue"
}
GradientStop {
position: 1.0
color: "steelblue"
}
}
onServiceSelected: { ServiceSelected(); }
}
Script {
function ServiceSelected()
{
serviceDetails.text = "Selected dial service:" + "\n " +
serviceList.dialService.serviceName +
"\n (" + serviceList.dialService.version + ")";
}
}
Text {
id: serviceDetails
text: "Selected dial service:"
anchors.topMargin: 5
anchors.leftMargin: 5
anchors.rightMargin: 5;
anchors.left: parent.left
anchors.top: serviceList.bottom
}
Text {
id: status
anchors.top: parent.bottom
anchors.left: parent.left
anchors.topMargin: -40
anchors.leftMargin: 5
}
Timer {
id: clearStatusTimer
interval: 2000
running: false
repeat: false
onTriggered: {
status.text = ""
}
}
//! [0]
DialScreen {
id: dialScreen
property bool activeCall : false
property var currentDialer: 0;
anchors.topMargin: 5
anchors.leftMargin: 5
anchors.rightMargin: 5
anchors.right: parent.right
anchors.top: parent.top
onDial: {
if (activeCall == false) {
if (serviceList.dialService != 0) {
var o = serviceList.dialService.serviceObject();
status.text = "Dialing " + numberToDial +"...";
dialScreen.currentDialer = o;
o.dialNumber(numberToDial);
activeCall = true;
}
}
}
onHangup: {
if (activeCall) {
if (dialScreen.currentDialer != 0) {
dialScreen.currentDialer.hangup();
}
status.text = "Hang up";
}
}
}
//! [0]
//! [1]
Connection {
sender: dialScreen
signal: "stateChanged()"
script: {
if (dialScreen.currentDialer.state == 1) {
status.text += "\nRinging";
}
else if (dialScreen.currentDialer.state == 2) {
status.text += "\nConnected";
}
else if (dialScreen.currentDialer.state == 0) {
status.text += "\nConnection terminated";
dialScreen.activeCall = false;
clearStatusTimer.running = true;
}
else if (dialScreen.currentDialer.state == 3) {
status.text += "\nPhone already engaged";
}
}
}
//! [1]
}
|