summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.cpp63
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.h4
-rw-r--r--noncore/unsupported/gsmtool/gsmtoolbase.ui149
3 files changed, 156 insertions, 60 deletions
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp
index 38baf45..c3f9482 100644
--- a/noncore/unsupported/gsmtool/gsmtool.cpp
+++ b/noncore/unsupported/gsmtool/gsmtool.cpp
@@ -1,251 +1,312 @@
1#include "gsmtool.h" 1#include "gsmtool.h"
2#include <qpushbutton.h> 2#include <qpushbutton.h>
3#include <qcombobox.h> 3#include <qcombobox.h>
4#include <qlineedit.h> 4#include <qlineedit.h>
5#include <qlabel.h> 5#include <qlabel.h>
6#include <qtabwidget.h> 6#include <qtabwidget.h>
7#include <qlistview.h> 7#include <qlistview.h>
8 8#include <qtextbrowser.h>
9#include <termios.h> 9#include <termios.h>
10 10
11#include <gsmlib/gsm_me_ta.h> 11#include <gsmlib/gsm_me_ta.h>
12#include <gsmlib/gsm_unix_serial.h> 12#include <gsmlib/gsm_unix_serial.h>
13#include <gsmlib/gsm_sms.h>
14#include <gsmlib/gsm_sorted_sms_store.h>
13 15
14using namespace gsmlib; 16using namespace gsmlib;
15 17
16 18
17/* 19/*
18 * Constructs a GSMTool which is a child of 'parent', with the 20 * Constructs a GSMTool which is a child of 'parent', with the
19 * name 'name' and widget flags set to 'f' 21 * name 'name' and widget flags set to 'f'
20 */ 22 */
21GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) 23GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl )
22 : GSMToolBase( parent, name, fl ) 24 : GSMToolBase( parent, name, fl )
23{ 25{
24 devicelocked = 0; 26 devicelocked = 0;
25 me = NULL; 27 me = NULL;
28 sms_store = NULL;
26 setConnected(FALSE); 29 setConnected(FALSE);
27 /* FIXME: Persistent settings for device/baudrate */ 30 /* FIXME: Persistent settings for device/baudrate */
28 connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); 31 connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton()));
29 connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); 32 connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton()));
30 connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged())); 33 connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged()));
34 connect(SMSStoreList, SIGNAL(activated(int)), this, SLOT(doSMSStoreChanged()));
35 connect(SMSViewType, SIGNAL(activated(int)), this, SLOT(doSMSTypeChanged()));
36
31 timerid = -1; // Is this not possible normally? 37 timerid = -1; // Is this not possible normally?
32} 38}
33 39
34/* 40/*
35 * Destroys the object and frees any allocated resources 41 * Destroys the object and frees any allocated resources
36 */ 42 */
37GSMTool::~GSMTool() 43GSMTool::~GSMTool()
38{ 44{
39 // no need to delete child widgets, Qt does it all for us 45 // no need to delete child widgets, Qt does it all for us
40 if (devicelocked) 46 if (devicelocked)
41 unlockDevice(); 47 unlockDevice();
42} 48}
43const speed_t GSMTool::baudrates[12] = { 49const speed_t GSMTool::baudrates[12] = {
44 B300, B600, B1200, B2400, B4800, B9600, B19200, 50 B300, B600, B1200, B2400, B4800, B9600, B19200,
45 B38400, B57600, B115200, B230400, B460800 51 B38400, B57600, B115200, B230400, B460800
46}; 52};
47 53
48int GSMTool::lockDevice( ) 54int GSMTool::lockDevice( )
49{ 55{
50 devicelocked = 1; 56 devicelocked = 1;
51 /* FIXME */ 57 /* FIXME */
52 return 0; 58 return 0;
53} 59}
54 60
55void GSMTool::unlockDevice( ) 61void GSMTool::unlockDevice( )
56{ 62{
57 devicelocked = 0; 63 devicelocked = 0;
58} 64}
59 65
60void GSMTool::setConnected( bool conn ) 66void GSMTool::setConnected( bool conn )
61{ 67{
62 TabWidget2->setTabEnabled(tab_2, conn); 68 TabWidget2->setTabEnabled(tab_2, conn);
63 TabWidget2->setTabEnabled(tab_3, conn); 69 TabWidget2->setTabEnabled(tab_3, conn);
64 MfrLabel->setEnabled(conn); 70 MfrLabel->setEnabled(conn);
65 MfrText->setEnabled(conn); 71 MfrText->setEnabled(conn);
66 ModelLabel->setEnabled(conn); 72 ModelLabel->setEnabled(conn);
67 ModelText->setEnabled(conn); 73 ModelText->setEnabled(conn);
68 RevisionLabel->setEnabled(conn); 74 RevisionLabel->setEnabled(conn);
69 RevisionText->setEnabled(conn); 75 RevisionText->setEnabled(conn);
70 SerialLabel->setEnabled(conn); 76 SerialLabel->setEnabled(conn);
71 SerialText->setEnabled(conn); 77 SerialText->setEnabled(conn);
72 78
73} 79}
74void GSMTool::doTabChanged() 80void GSMTool::doTabChanged()
75{ 81{
76 int index = TabWidget2->currentPageIndex(); 82 int index = TabWidget2->currentPageIndex();
77 qDebug("tab changed to %d", index); 83 qDebug("tab changed to %d", index);
78 84
79 if (index == 1) { 85 if (index == 1) {
80 timerid = startTimer(5000); 86 timerid = startTimer(5000);
81 timerEvent(NULL); 87 timerEvent(NULL);
82 } else if (timerid != -1) { 88 } else if (timerid != -1) {
83 killTimer(timerid); 89 killTimer(timerid);
84 timerid = -1; 90 timerid = -1;
85 } 91 }
86} 92}
87 93
88void GSMTool::timerEvent( QTimerEvent * ) 94void GSMTool::timerEvent( QTimerEvent * )
89{ 95{
90 OPInfo opi; 96 OPInfo opi;
91 97
92 opi = me->getCurrentOPInfo(); 98 opi = me->getCurrentOPInfo();
93 99
94 if (opi._numericName == NOT_SET) { 100 if (opi._numericName == NOT_SET) {
95 NetStatText->setText("No network"); 101 NetStatText->setText("No network");
96 NetworkLabel->setEnabled(FALSE); 102 NetworkLabel->setEnabled(FALSE);
97 NetworkText->setEnabled(FALSE); 103 NetworkText->setEnabled(FALSE);
98 NetworkText->setText(""); 104 NetworkText->setText("");
99 SigStrText->setEnabled(FALSE); 105 SigStrText->setEnabled(FALSE);
100 SigStrText->setText(""); 106 SigStrText->setText("");
101 dB->setEnabled(FALSE); 107 dB->setEnabled(FALSE);
102 SigStrLabel->setEnabled(FALSE); 108 SigStrLabel->setEnabled(FALSE);
103 } else { 109 } else {
104 // FIXME: Add 'roaming' info from AT+CFUN 110 // FIXME: Add 'roaming' info from AT+CFUN
105 qDebug("network"); 111 qDebug("network");
106 NetStatText->setText("Registered"); 112 NetStatText->setText("Registered");
107 NetworkLabel->setEnabled(TRUE); 113 NetworkLabel->setEnabled(TRUE);
108 NetworkText->setEnabled(TRUE); 114 NetworkText->setEnabled(TRUE);
109 NetworkText->setText(opi._longName.c_str()); 115 NetworkText->setText(opi._longName.c_str());
110 SigStrText->setEnabled(TRUE); 116 SigStrText->setEnabled(TRUE);
111 117
112 qDebug("get sig str"); 118 qDebug("get sig str");
113 int csq = me->getSignalStrength(); 119 int csq = me->getSignalStrength();
114 if (csq == 0) { 120 if (csq == 0) {
115 SigStrText->setText("<= -113"); 121 SigStrText->setText("<= -113");
116 dB->setEnabled(TRUE); 122 dB->setEnabled(TRUE);
117 SigStrLabel->setEnabled(TRUE); 123 SigStrLabel->setEnabled(TRUE);
118 } else if (csq == 99) { 124 } else if (csq == 99) {
119 SigStrText->setText("Unknown"); 125 SigStrText->setText("Unknown");
120 dB->setEnabled(FALSE); 126 dB->setEnabled(FALSE);
121 SigStrLabel->setEnabled(FALSE); 127 SigStrLabel->setEnabled(FALSE);
122 } else { 128 } else {
123 char buf[6]; 129 char buf[6];
124 sprintf(buf, "%d", -113 + (2*csq)); 130 sprintf(buf, "%d", -113 + (2*csq));
125 SigStrText->setText(buf); 131 SigStrText->setText(buf);
126 dB->setEnabled(TRUE); 132 dB->setEnabled(TRUE);
127 SigStrLabel->setEnabled(TRUE); 133 SigStrLabel->setEnabled(TRUE);
128 } 134 }
129 } 135 }
130} 136}
131 137
138void GSMTool::doSMSStoreChanged()
139{
140 const char *storename = SMSStoreList->currentText().ascii();
141 qDebug("Store Changed to '%s'", storename);
142 try {
143 sms_store = me->getSMSStore(storename);
144
145 qDebug("got store of size %d", sms_store->size());
146 } catch (GsmException) {
147 sms_store = NULL;
148 qDebug("get store failed");
149 }
150 doSMSTypeChanged();
151}
152
153void GSMTool::doSMSTypeChanged()
154{
155 int direction = SMSViewType->currentItem();
156 qDebug("direction %s\n", direction?"outgoing":"incoming");
157
158 SMSList->clear();
159 if (sms_store == NULL)
160 return;
161 for (int i = 0; i < sms_store->size(); i++) {
162 qDebug("Message %d", i);
163 qDebug("Is%sempty", sms_store()[i].empty()?" ":" not ");
164 if (sms_store()[i].empty())
165 continue;
166
167 qDebug("Status %d", sms_store()[i].status());
168 SMSMessageRef message = sms_store()[i].message();
169 qDebug("Got message.");
170
171#if 0 // WTF does this die? Did I mention that gsmlib needs rewriting in a sane language?
172 qDebug(message->toString().c_str());
173 if (direction == message->messageType()) {
174 qDebug("yes\n");
175 new QListViewItem(SMSList, "xx", message->address()._number.c_str());
176 } else qDebug("no. dir %d, type %d\n", direction, message->messageType());
177#endif
178 }
179}
180
132void GSMTool::doScanButton() 181void GSMTool::doScanButton()
133{ 182{
134 qDebug("ScanButton"); 183 qDebug("ScanButton");
135 184
136 NetworkList->setEnabled(FALSE); 185 NetworkList->setEnabled(FALSE);
137 AvailNetsLabel->setEnabled(FALSE); 186 AvailNetsLabel->setEnabled(FALSE);
138 NetworkList->clear(); 187 NetworkList->clear();
139 new QListViewItem(NetworkList, "Scanning..."); 188 new QListViewItem(NetworkList, "Scanning...");
140 189
141 vector<OPInfo> opis; 190 vector<OPInfo> opis;
142 191
143 try { 192 try {
144 opis = me->getAvailableOPInfo(); 193 opis = me->getAvailableOPInfo();
145 } catch (GsmException) { 194 } catch (GsmException) {
146 NetworkList->clear(); 195 NetworkList->clear();
147 new QListViewItem(NetworkList, "Scan failed..."); 196 new QListViewItem(NetworkList, "Scan failed...");
148 return; 197 return;
149 } 198 }
150 199
151 NetworkList->clear(); 200 NetworkList->clear();
152 for (vector<OPInfo>::iterator i = opis.begin(); i != opis.end(); ++i) { 201 for (vector<OPInfo>::iterator i = opis.begin(); i != opis.end(); ++i) {
153 char *statustext; 202 char *statustext;
154 switch (i->_status) { 203 switch (i->_status) {
155 204
156 case UnknownOPStatus: 205 case UnknownOPStatus:
157 statustext = "unknown"; 206 statustext = "unknown";
158 break; 207 break;
159 208
160 case CurrentOPStatus: 209 case CurrentOPStatus:
161 statustext = "current"; 210 statustext = "current";
162 break; 211 break;
163 212
164 case AvailableOPStatus: 213 case AvailableOPStatus:
165 statustext = "available"; 214 statustext = "available";
166 break; 215 break;
167 216
168 case ForbiddenOPStatus: 217 case ForbiddenOPStatus:
169 statustext = "forbidden"; 218 statustext = "forbidden";
170 break; 219 break;
171 220
172 default: 221 default:
173 statustext = "(ERROR)"; 222 statustext = "(ERROR)";
174 } 223 }
175 char num[7]; 224 char num[7];
176 snprintf(num, 6, "%d", i->_numericName); 225 snprintf(num, 6, "%d", i->_numericName);
177 new QListViewItem(NetworkList, i->_longName.c_str(), statustext, num, i->_shortName.c_str()); 226 new QListViewItem(NetworkList, i->_longName.c_str(), statustext, num, i->_shortName.c_str());
178 } 227 }
179 NetworkList->setEnabled(TRUE); 228 NetworkList->setEnabled(TRUE);
180 AvailNetsLabel->setEnabled(TRUE); 229 AvailNetsLabel->setEnabled(TRUE);
181} 230}
182/* 231/*
183 * A simple slot... not very interesting. 232 * A simple slot... not very interesting.
184 */ 233 */
185void GSMTool::doConnectButton() 234void GSMTool::doConnectButton()
186{ 235{
187 gsmlib::Port *port; 236 gsmlib::Port *port;
188 237
189 speed_t rate; 238 speed_t rate;
190 devicename = strdup(DeviceName->currentText().local8Bit().data()); 239 devicename = strdup(DeviceName->currentText().local8Bit().data());
191 rate = baudrates[BaudRate->currentItem()]; 240 rate = baudrates[BaudRate->currentItem()];
192 241
193 qDebug("Connect Button Pressed"); 242 qDebug("Connect Button Pressed");
194 MfrText->setText("Opening..."); 243 MfrText->setText("Opening...");
195 ModelText->setText(""); 244 ModelText->setText("");
196 RevisionText->setText(""); 245 RevisionText->setText("");
197 SerialText->setText(""); 246 SerialText->setText("");
198 247
199 setConnected(FALSE); 248 setConnected(FALSE);
200 if (me) { 249 if (me) {
201 me = NULL; 250 me = NULL;
202 } 251 }
203 252
204 if (lockDevice()) { 253 if (lockDevice()) {
205 qDebug("lockDevice() failed\n"); 254 qDebug("lockDevice() failed\n");
206 MfrText->setText("Lock port failed"); 255 MfrText->setText("Lock port failed");
207 }; 256 };
208 257
209 qDebug("Device name is %s\n", devicename); 258 qDebug("Device name is %s\n", devicename);
210 259
211 try { 260 try {
212 port = new UnixSerialPort(devicename, rate, DEFAULT_INIT_STRING, 0); 261 port = new UnixSerialPort(devicename, rate, DEFAULT_INIT_STRING, 0);
213 } catch (GsmException) { 262 } catch (GsmException) {
214 qDebug("port failed"); 263 qDebug("port failed");
215 MfrText->setText("Open port failed"); 264 MfrText->setText("Open port failed");
216 return; 265 return;
217 } 266 }
218 MfrText->setText("Initialising..."); 267 MfrText->setText("Initialising...");
219 qDebug("got port"); 268 qDebug("got port");
220 try { 269 try {
221 me = new MeTa(port); 270 me = new MeTa(port);
222 } catch (GsmException) { 271 } catch (GsmException) {
223 qDebug("meta failed"); 272 qDebug("meta failed");
224 MfrText->setText("Initialise GSM unit failed"); 273 MfrText->setText("Initialise GSM unit failed");
225 me = NULL; 274 me = NULL;
226 unlockDevice(); 275 unlockDevice();
227 return; 276 return;
228 } 277 }
229 278
230 qDebug("Opened"); 279 qDebug("Opened");
231 280
232 MEInfo ifo; 281 MEInfo ifo;
233 282
234 MfrText->setText("Querying..."); 283 MfrText->setText("Querying...");
235 284
236 try { 285 try {
237 ifo = me->getMEInfo(); 286 ifo = me->getMEInfo();
238 } catch (GsmException) { 287 } catch (GsmException) {
239 qDebug("getMEInfo failed"); 288 qDebug("getMEInfo failed");
240 MfrText->setText("Query GSM unit failed"); 289 MfrText->setText("Query GSM unit failed");
241 me = NULL; 290 me = NULL;
242 unlockDevice(); 291 unlockDevice();
243 return; 292 return;
244 } 293 }
245 294
246 MfrText->setText(ifo._manufacturer.c_str()); 295 MfrText->setText(ifo._manufacturer.c_str());
247 ModelText->setText(ifo._model.c_str()); 296 ModelText->setText(ifo._model.c_str());
248 RevisionText->setText(ifo._revision.c_str()); 297 RevisionText->setText(ifo._revision.c_str());
249 SerialText->setText(ifo._serialNumber.c_str()); 298 SerialText->setText(ifo._serialNumber.c_str());
250 setConnected(TRUE); 299 setConnected(TRUE);
300
301 SMSStoreList->clear();
302 SMSStoreList->insertItem("None");
303
304 vector<string> storenames = me->getSMSStoreNames();
305
306 for (vector<string>::iterator i = storenames.begin(); i != storenames.end(); ++i) {
307 SMSStoreList->insertItem(i->c_str());
308 }
309 SMSList->clear();
310 SMSText->setText("");
311 sms_store = NULL;
251} 312}
diff --git a/noncore/unsupported/gsmtool/gsmtool.h b/noncore/unsupported/gsmtool/gsmtool.h
index 1625cb1..49387d9 100644
--- a/noncore/unsupported/gsmtool/gsmtool.h
+++ b/noncore/unsupported/gsmtool/gsmtool.h
@@ -1,40 +1,44 @@
1#ifndef EXAMPLE_H 1#ifndef EXAMPLE_H
2#define EXAMPLE_H 2#define EXAMPLE_H
3#include "gsmtoolbase.h" 3#include "gsmtoolbase.h"
4 4
5#include <termios.h> 5#include <termios.h>
6 6
7#include <gsmlib/gsm_me_ta.h> 7#include <gsmlib/gsm_me_ta.h>
8 8
9class GSMTool : public GSMToolBase 9class GSMTool : public GSMToolBase
10{ 10{
11 Q_OBJECT 11 Q_OBJECT
12 12
13public: 13public:
14 GSMTool( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 14 GSMTool( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
15 ~GSMTool(); 15 ~GSMTool();
16 16
17protected: 17protected:
18 void timerEvent(QTimerEvent *te ); 18 void timerEvent(QTimerEvent *te );
19 19
20private slots: 20private slots:
21 void doConnectButton(); 21 void doConnectButton();
22 void doScanButton(); 22 void doScanButton();
23 void doTabChanged(); 23 void doTabChanged();
24 void doSMSStoreChanged();
25 void doSMSTypeChanged();
26
24private: 27private:
25 static const speed_t baudrates[]; 28 static const speed_t baudrates[];
26 int devicelocked; 29 int devicelocked;
27 int timerid; 30 int timerid;
28 31
29 gsmlib::MeTa *me; 32 gsmlib::MeTa *me;
33 gsmlib::SMSStoreRef sms_store;
30 34
31 char *devicename; 35 char *devicename;
32 speed_t baudrate; 36 speed_t baudrate;
33 37
34 int lockDevice( ); 38 int lockDevice( );
35 void unlockDevice( ); 39 void unlockDevice( );
36 40
37 void setConnected( bool conn ); 41 void setConnected( bool conn );
38}; 42};
39 43
40#endif // EXAMPLE_H 44#endif // EXAMPLE_H
diff --git a/noncore/unsupported/gsmtool/gsmtoolbase.ui b/noncore/unsupported/gsmtool/gsmtoolbase.ui
index 72c943a..340f26c 100644
--- a/noncore/unsupported/gsmtool/gsmtoolbase.ui
+++ b/noncore/unsupported/gsmtool/gsmtoolbase.ui
@@ -1,143 +1,143 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>GSMToolBase</class> 2<class>GSMToolBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>GSM Tool</cstring> 7 <cstring>GSM Tool</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>388</width> 14 <width>309</width>
15 <height>502</height> 15 <height>390</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>GSM Tool</string> 20 <string>GSM Tool</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <vbox> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>2</number> 31 <number>2</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>1</number> 35 <number>1</number>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QTabWidget</class> 38 <class>QTabWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>TabWidget2</cstring> 41 <cstring>TabWidget2</cstring>
42 </property> 42 </property>
43 <property stdset="1"> 43 <property stdset="1">
44 <name>sizePolicy</name> 44 <name>sizePolicy</name>
45 <sizepolicy> 45 <sizepolicy>
46 <hsizetype>7</hsizetype> 46 <hsizetype>7</hsizetype>
47 <vsizetype>7</vsizetype> 47 <vsizetype>7</vsizetype>
48 </sizepolicy> 48 </sizepolicy>
49 </property> 49 </property>
50 <property stdset="1"> 50 <property stdset="1">
51 <name>focusPolicy</name> 51 <name>focusPolicy</name>
52 <enum>NoFocus</enum> 52 <enum>NoFocus</enum>
53 </property> 53 </property>
54 <property> 54 <property>
55 <name>layoutMargin</name> 55 <name>layoutMargin</name>
56 </property> 56 </property>
57 <property> 57 <property>
58 <name>layoutSpacing</name> 58 <name>layoutSpacing</name>
59 </property> 59 </property>
60 <widget> 60 <widget>
61 <class>QWidget</class> 61 <class>QWidget</class>
62 <property stdset="1"> 62 <property stdset="1">
63 <name>name</name> 63 <name>name</name>
64 <cstring>tab</cstring> 64 <cstring>tab</cstring>
65 </property> 65 </property>
66 <attribute> 66 <attribute>
67 <name>title</name> 67 <name>title</name>
68 <string>Device</string> 68 <string>Device</string>
69 </attribute> 69 </attribute>
70 <vbox> 70 <vbox>
71 <property stdset="1"> 71 <property stdset="1">
72 <name>margin</name> 72 <name>margin</name>
73 <number>2</number> 73 <number>2</number>
74 </property> 74 </property>
75 <property stdset="1"> 75 <property stdset="1">
76 <name>spacing</name> 76 <name>spacing</name>
77 <number>1</number> 77 <number>1</number>
78 </property> 78 </property>
79 <widget> 79 <widget>
80 <class>QLabel</class> 80 <class>QLabel</class>
81 <property stdset="1"> 81 <property stdset="1">
82 <name>name</name> 82 <name>name</name>
83 <cstring>DeviceLabel</cstring> 83 <cstring>DeviceLabel</cstring>
84 </property> 84 </property>
85 <property stdset="1"> 85 <property stdset="1">
86 <name>text</name> 86 <name>text</name>
87 <string>Modem Device:</string> 87 <string>Modem Device:</string>
88 </property> 88 </property>
89 </widget> 89 </widget>
90 <widget> 90 <widget>
91 <class>QComboBox</class> 91 <class>QComboBox</class>
92 <item> 92 <item>
93 <property> 93 <property>
94 <name>text</name> 94 <name>text</name>
95 <string>/dev/ircomm0</string> 95 <string>/dev/ircomm0</string>
96 </property> 96 </property>
97 </item> 97 </item>
98 <item> 98 <item>
99 <property> 99 <property>
100 <name>text</name> 100 <name>text</name>
101 <string>/dev/ttySA0</string> 101 <string>/dev/ttySA0</string>
102 </property> 102 </property>
103 </item> 103 </item>
104 <item> 104 <item>
105 <property> 105 <property>
106 <name>text</name> 106 <name>text</name>
107 <string>/dev/ttyS0</string> 107 <string>/dev/ttyS0</string>
108 </property> 108 </property>
109 </item> 109 </item>
110 <property stdset="1"> 110 <property stdset="1">
111 <name>name</name> 111 <name>name</name>
112 <cstring>DeviceName</cstring> 112 <cstring>DeviceName</cstring>
113 </property> 113 </property>
114 <property stdset="1"> 114 <property stdset="1">
115 <name>editable</name> 115 <name>editable</name>
116 <bool>true</bool> 116 <bool>true</bool>
117 </property> 117 </property>
118 <property stdset="1"> 118 <property stdset="1">
119 <name>currentItem</name> 119 <name>currentItem</name>
120 <number>0</number> 120 <number>0</number>
121 </property> 121 </property>
122 </widget> 122 </widget>
123 <widget> 123 <widget>
124 <class>QLabel</class> 124 <class>QLabel</class>
125 <property stdset="1"> 125 <property stdset="1">
126 <name>name</name> 126 <name>name</name>
127 <cstring>BaudLabel</cstring> 127 <cstring>BaudLabel</cstring>
128 </property> 128 </property>
129 <property stdset="1"> 129 <property stdset="1">
130 <name>text</name> 130 <name>text</name>
131 <string>Baud Rate:</string> 131 <string>Baud Rate:</string>
132 </property> 132 </property>
133 </widget> 133 </widget>
134 <widget> 134 <widget>
135 <class>QLayoutWidget</class> 135 <class>QLayoutWidget</class>
136 <property stdset="1"> 136 <property stdset="1">
137 <name>name</name> 137 <name>name</name>
138 <cstring>Layout8</cstring> 138 <cstring>Layout8</cstring>
139 </property> 139 </property>
140 <property> 140 <property>
141 <name>layoutMargin</name> 141 <name>layoutMargin</name>
142 </property> 142 </property>
143 <hbox> 143 <hbox>
@@ -614,282 +614,313 @@
614 <name>text</name> 614 <name>text</name>
615 <string>Status</string> 615 <string>Status</string>
616 </property> 616 </property>
617 <property> 617 <property>
618 <name>clickable</name> 618 <name>clickable</name>
619 <bool>true</bool> 619 <bool>true</bool>
620 </property> 620 </property>
621 <property> 621 <property>
622 <name>resizeable</name> 622 <name>resizeable</name>
623 <bool>true</bool> 623 <bool>true</bool>
624 </property> 624 </property>
625 </column> 625 </column>
626 <column> 626 <column>
627 <property> 627 <property>
628 <name>text</name> 628 <name>text</name>
629 <string>No.</string> 629 <string>No.</string>
630 </property> 630 </property>
631 <property> 631 <property>
632 <name>clickable</name> 632 <name>clickable</name>
633 <bool>true</bool> 633 <bool>true</bool>
634 </property> 634 </property>
635 <property> 635 <property>
636 <name>resizeable</name> 636 <name>resizeable</name>
637 <bool>true</bool> 637 <bool>true</bool>
638 </property> 638 </property>
639 </column> 639 </column>
640 <column> 640 <column>
641 <property> 641 <property>
642 <name>text</name> 642 <name>text</name>
643 <string>Shortname</string> 643 <string>Shortname</string>
644 </property> 644 </property>
645 <property> 645 <property>
646 <name>clickable</name> 646 <name>clickable</name>
647 <bool>true</bool> 647 <bool>true</bool>
648 </property> 648 </property>
649 <property> 649 <property>
650 <name>resizeable</name> 650 <name>resizeable</name>
651 <bool>true</bool> 651 <bool>true</bool>
652 </property> 652 </property>
653 </column> 653 </column>
654 <property stdset="1"> 654 <property stdset="1">
655 <name>name</name> 655 <name>name</name>
656 <cstring>NetworkList</cstring> 656 <cstring>NetworkList</cstring>
657 </property> 657 </property>
658 <property stdset="1"> 658 <property stdset="1">
659 <name>enabled</name> 659 <name>enabled</name>
660 <bool>false</bool> 660 <bool>false</bool>
661 </property> 661 </property>
662 <property stdset="1"> 662 <property stdset="1">
663 <name>sizePolicy</name> 663 <name>sizePolicy</name>
664 <sizepolicy> 664 <sizepolicy>
665 <hsizetype>7</hsizetype> 665 <hsizetype>7</hsizetype>
666 <vsizetype>7</vsizetype> 666 <vsizetype>7</vsizetype>
667 </sizepolicy> 667 </sizepolicy>
668 </property> 668 </property>
669 </widget> 669 </widget>
670 <widget> 670 <widget>
671 <class>QLayoutWidget</class> 671 <class>QLayoutWidget</class>
672 <property stdset="1"> 672 <property stdset="1">
673 <name>name</name> 673 <name>name</name>
674 <cstring>Layout11</cstring> 674 <cstring>Layout11</cstring>
675 </property> 675 </property>
676 <hbox> 676 <hbox>
677 <property stdset="1"> 677 <property stdset="1">
678 <name>margin</name> 678 <name>margin</name>
679 <number>2</number> 679 <number>2</number>
680 </property> 680 </property>
681 <property stdset="1"> 681 <property stdset="1">
682 <name>spacing</name> 682 <name>spacing</name>
683 <number>1</number> 683 <number>1</number>
684 </property> 684 </property>
685 <spacer> 685 <spacer>
686 <property> 686 <property>
687 <name>name</name> 687 <name>name</name>
688 <cstring>Spacer14</cstring> 688 <cstring>Spacer14</cstring>
689 </property> 689 </property>
690 <property stdset="1"> 690 <property stdset="1">
691 <name>orientation</name> 691 <name>orientation</name>
692 <enum>Horizontal</enum> 692 <enum>Horizontal</enum>
693 </property> 693 </property>
694 <property stdset="1"> 694 <property stdset="1">
695 <name>sizeType</name> 695 <name>sizeType</name>
696 <enum>Expanding</enum> 696 <enum>Expanding</enum>
697 </property> 697 </property>
698 <property> 698 <property>
699 <name>sizeHint</name> 699 <name>sizeHint</name>
700 <size> 700 <size>
701 <width>20</width> 701 <width>20</width>
702 <height>20</height> 702 <height>20</height>
703 </size> 703 </size>
704 </property> 704 </property>
705 </spacer> 705 </spacer>
706 <widget> 706 <widget>
707 <class>QPushButton</class> 707 <class>QPushButton</class>
708 <property stdset="1"> 708 <property stdset="1">
709 <name>name</name> 709 <name>name</name>
710 <cstring>RegisterButton</cstring> 710 <cstring>RegisterButton</cstring>
711 </property> 711 </property>
712 <property stdset="1"> 712 <property stdset="1">
713 <name>enabled</name> 713 <name>enabled</name>
714 <bool>false</bool> 714 <bool>false</bool>
715 </property> 715 </property>
716 <property stdset="1"> 716 <property stdset="1">
717 <name>sizePolicy</name> 717 <name>sizePolicy</name>
718 <sizepolicy> 718 <sizepolicy>
719 <hsizetype>7</hsizetype> 719 <hsizetype>7</hsizetype>
720 <vsizetype>0</vsizetype> 720 <vsizetype>0</vsizetype>
721 </sizepolicy> 721 </sizepolicy>
722 </property> 722 </property>
723 <property stdset="1"> 723 <property stdset="1">
724 <name>text</name> 724 <name>text</name>
725 <string>Register</string> 725 <string>Register</string>
726 </property> 726 </property>
727 </widget> 727 </widget>
728 </hbox> 728 </hbox>
729 </widget> 729 </widget>
730 </vbox> 730 </vbox>
731 </widget> 731 </widget>
732 <widget> 732 <widget>
733 <class>QWidget</class> 733 <class>QWidget</class>
734 <property stdset="1"> 734 <property stdset="1">
735 <name>name</name> 735 <name>name</name>
736 <cstring>tab</cstring> 736 <cstring>tab</cstring>
737 </property> 737 </property>
738 <attribute> 738 <attribute>
739 <name>title</name> 739 <name>title</name>
740 <string>SMS</string> 740 <string>SMS</string>
741 </attribute> 741 </attribute>
742 <grid> 742 <vbox>
743 <property stdset="1"> 743 <property stdset="1">
744 <name>margin</name> 744 <name>margin</name>
745 <number>2</number> 745 <number>11</number>
746 </property> 746 </property>
747 <property stdset="1"> 747 <property stdset="1">
748 <name>spacing</name> 748 <name>spacing</name>
749 <number>1</number> 749 <number>6</number>
750 </property> 750 </property>
751 <widget row="0" column="1" > 751 <widget>
752 <class>QComboBox</class> 752 <class>QLayoutWidget</class>
753 <item>
754 <property>
755 <name>text</name>
756 <string>None</string>
757 </property>
758 </item>
759 <item>
760 <property>
761 <name>text</name>
762 <string>Incoming</string>
763 </property>
764 </item>
765 <item>
766 <property>
767 <name>text</name>
768 <string>Outgoing</string>
769 </property>
770 </item>
771 <property stdset="1">
772 <name>name</name>
773 <cstring>ComboBox11</cstring>
774 </property>
775 <property stdset="1">
776 <name>enabled</name>
777 <bool>true</bool>
778 </property>
779 </widget>
780 <widget row="0" column="0" >
781 <class>QLabel</class>
782 <property stdset="1"> 753 <property stdset="1">
783 <name>name</name> 754 <name>name</name>
784 <cstring>TextLabel4</cstring> 755 <cstring>Layout6</cstring>
785 </property>
786 <property stdset="1">
787 <name>text</name>
788 <string>Message Collection:</string>
789 </property> 756 </property>
757 <hbox>
758 <property stdset="1">
759 <name>margin</name>
760 <number>0</number>
761 </property>
762 <property stdset="1">
763 <name>spacing</name>
764 <number>6</number>
765 </property>
766 <widget>
767 <class>QLabel</class>
768 <property stdset="1">
769 <name>name</name>
770 <cstring>SMSStoreLabel</cstring>
771 </property>
772 <property stdset="1">
773 <name>text</name>
774 <string>Store:</string>
775 </property>
776 </widget>
777 <widget>
778 <class>QComboBox</class>
779 <item>
780 <property>
781 <name>text</name>
782 <string>None</string>
783 </property>
784 </item>
785 <property stdset="1">
786 <name>name</name>
787 <cstring>SMSStoreList</cstring>
788 </property>
789 <property stdset="1">
790 <name>enabled</name>
791 <bool>true</bool>
792 </property>
793 </widget>
794 <widget>
795 <class>QLabel</class>
796 <property stdset="1">
797 <name>name</name>
798 <cstring>SMSTypeLabel</cstring>
799 </property>
800 <property stdset="1">
801 <name>text</name>
802 <string>Type:</string>
803 </property>
804 </widget>
805 <widget>
806 <class>QComboBox</class>
807 <item>
808 <property>
809 <name>text</name>
810 <string>Incoming</string>
811 </property>
812 </item>
813 <item>
814 <property>
815 <name>text</name>
816 <string>Outgoing</string>
817 </property>
818 </item>
819 <property stdset="1">
820 <name>name</name>
821 <cstring>SMSViewType</cstring>
822 </property>
823 </widget>
824 </hbox>
790 </widget> 825 </widget>
791 <widget row="1" column="0" rowspan="1" colspan="2" > 826 <widget>
792 <class>QListView</class> 827 <class>QListView</class>
793 <column> 828 <column>
794 <property> 829 <property>
795 <name>text</name> 830 <name>text</name>
796 <string>Date</string> 831 <string>Date</string>
797 </property> 832 </property>
798 <property> 833 <property>
799 <name>clickable</name> 834 <name>clickable</name>
800 <bool>true</bool> 835 <bool>true</bool>
801 </property> 836 </property>
802 <property> 837 <property>
803 <name>resizeable</name> 838 <name>resizeable</name>
804 <bool>true</bool> 839 <bool>true</bool>
805 </property> 840 </property>
806 </column> 841 </column>
807 <column> 842 <column>
808 <property> 843 <property>
809 <name>text</name> 844 <name>text</name>
810 <string>Number</string> 845 <string>Number</string>
811 </property> 846 </property>
812 <property> 847 <property>
813 <name>clickable</name> 848 <name>clickable</name>
814 <bool>true</bool> 849 <bool>true</bool>
815 </property> 850 </property>
816 <property> 851 <property>
817 <name>resizeable</name> 852 <name>resizeable</name>
818 <bool>true</bool> 853 <bool>true</bool>
819 </property> 854 </property>
820 </column> 855 </column>
821 <property stdset="1"> 856 <property stdset="1">
822 <name>name</name> 857 <name>name</name>
823 <cstring>ListView3</cstring> 858 <cstring>SMSList</cstring>
824 </property>
825 </widget>
826 <widget row="3" column="0" rowspan="1" colspan="2" >
827 <class>QMultiLineEdit</class>
828 <property stdset="1">
829 <name>name</name>
830 <cstring>MultiLineEdit3</cstring>
831 </property>
832 <property stdset="1">
833 <name>readOnly</name>
834 <bool>true</bool>
835 </property> 859 </property>
836 </widget> 860 </widget>
837 <widget row="2" column="0" rowspan="1" colspan="2" > 861 <widget>
838 <class>QLayoutWidget</class> 862 <class>QLayoutWidget</class>
839 <property stdset="1"> 863 <property stdset="1">
840 <name>name</name> 864 <name>name</name>
841 <cstring>Layout15</cstring> 865 <cstring>Layout15</cstring>
842 </property> 866 </property>
843 <property> 867 <property>
844 <name>layoutMargin</name> 868 <name>layoutMargin</name>
845 </property> 869 </property>
846 <hbox> 870 <hbox>
847 <property stdset="1"> 871 <property stdset="1">
848 <name>margin</name> 872 <name>margin</name>
849 <number>0</number> 873 <number>0</number>
850 </property> 874 </property>
851 <property stdset="1"> 875 <property stdset="1">
852 <name>spacing</name> 876 <name>spacing</name>
853 <number>1</number> 877 <number>1</number>
854 </property> 878 </property>
855 <widget> 879 <widget>
856 <class>QPushButton</class> 880 <class>QPushButton</class>
857 <property stdset="1"> 881 <property stdset="1">
858 <name>name</name> 882 <name>name</name>
859 <cstring>PushButton11</cstring> 883 <cstring>SMSDeleteButton</cstring>
860 </property> 884 </property>
861 <property stdset="1"> 885 <property stdset="1">
862 <name>text</name> 886 <name>text</name>
863 <string>Delete</string> 887 <string>Delete</string>
864 </property> 888 </property>
865 </widget> 889 </widget>
866 <widget> 890 <widget>
867 <class>QPushButton</class> 891 <class>QPushButton</class>
868 <property stdset="1"> 892 <property stdset="1">
869 <name>name</name> 893 <name>name</name>
870 <cstring>PushButton12</cstring> 894 <cstring>SMSSendButton</cstring>
871 </property> 895 </property>
872 <property stdset="1"> 896 <property stdset="1">
873 <name>text</name> 897 <name>text</name>
874 <string>Send</string> 898 <string>Send</string>
875 </property> 899 </property>
876 </widget> 900 </widget>
877 <widget> 901 <widget>
878 <class>QPushButton</class> 902 <class>QPushButton</class>
879 <property stdset="1"> 903 <property stdset="1">
880 <name>name</name> 904 <name>name</name>
881 <cstring>PushButton13</cstring> 905 <cstring>SMSNewButton</cstring>
882 </property> 906 </property>
883 <property stdset="1"> 907 <property stdset="1">
884 <name>text</name> 908 <name>text</name>
885 <string>New</string> 909 <string>New</string>
886 </property> 910 </property>
887 </widget> 911 </widget>
888 </hbox> 912 </hbox>
889 </widget> 913 </widget>
890 </grid> 914 <widget>
915 <class>QTextBrowser</class>
916 <property stdset="1">
917 <name>name</name>
918 <cstring>SMSText</cstring>
919 </property>
920 </widget>
921 </vbox>
891 </widget> 922 </widget>
892 </widget> 923 </widget>
893 </vbox> 924 </vbox>
894</widget> 925</widget>
895</UI> 926</UI>