summaryrefslogtreecommitdiff
authordwmw2 <dwmw2>2002-04-02 00:02:59 (UTC)
committer dwmw2 <dwmw2>2002-04-02 00:02:59 (UTC)
commit2314955ff0127a570e25e7e7a10ce4d17a2de0e2 (patch) (unidiff)
treec19c960b4efa48c2238fefe743a28de418d382da
parentdd9e49cca8cd9a32a52edfc6b6a0683579612a75 (diff)
downloadopie-2314955ff0127a570e25e7e7a10ce4d17a2de0e2.zip
opie-2314955ff0127a570e25e7e7a10ce4d17a2de0e2.tar.gz
opie-2314955ff0127a570e25e7e7a10ce4d17a2de0e2.tar.bz2
Start of GSM app. Still not decided what to do with gsmlib. Needs icon.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.cpp208
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.h41
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.pro13
-rw-r--r--noncore/unsupported/gsmtool/gsmtoolbase.ui887
-rw-r--r--noncore/unsupported/gsmtool/main.cpp12
-rw-r--r--noncore/unsupported/gsmtool/opie-gsmtool.control10
-rw-r--r--pics/gsmtool/gsmtool.pngbin0 -> 1262 bytes
7 files changed, 1171 insertions, 0 deletions
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp
new file mode 100644
index 0000000..14ef368
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/gsmtool.cpp
@@ -0,0 +1,208 @@
1#include "gsmtool.h"
2#include <qpushbutton.h>
3#include <qcombobox.h>
4#include <qlineedit.h>
5#include <qlabel.h>
6#include <qtabwidget.h>
7
8#include <termios.h>
9
10#include <gsmlib/gsm_me_ta.h>
11#include <gsmlib/gsm_unix_serial.h>
12
13using namespace gsmlib;
14
15
16/*
17 * Constructs a GSMTool which is a child of 'parent', with the
18 * name 'name' and widget flags set to 'f'
19 */
20GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl )
21 : GSMToolBase( parent, name, fl )
22{
23 devicelocked = 0;
24 me = NULL;
25 port = NULL;
26 setConnected(FALSE);
27 /* FIXME: Persistent settings for device/baudrate */
28 connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton()));
29 connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton()));
30 connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged()));
31 timerid = -1; // Is this not possible normally?
32}
33
34/*
35 * Destroys the object and frees any allocated resources
36 */
37GSMTool::~GSMTool()
38{
39 // no need to delete child widgets, Qt does it all for us
40 if (devicelocked)
41 unlockDevice();
42}
43const speed_t GSMTool::baudrates[12] = {
44 B300, B600, B1200, B2400, B4800, B9600, B19200,
45 B38400, B57600, B115200, B230400, B460800
46};
47
48int GSMTool::lockDevice( )
49{
50 devicelocked = 1;
51 /* FIXME */
52 return 0;
53}
54
55void GSMTool::unlockDevice( )
56{
57 devicelocked = 0;
58}
59
60void GSMTool::setConnected( bool conn )
61{
62 TabWidget2->setTabEnabled(tab_2, conn);
63 TabWidget2->setTabEnabled(tab_3, conn);
64 MfrLabel->setEnabled(conn);
65 MfrText->setEnabled(conn);
66 ModelLabel->setEnabled(conn);
67 ModelText->setEnabled(conn);
68 RevisionLabel->setEnabled(conn);
69 RevisionText->setEnabled(conn);
70 SerialLabel->setEnabled(conn);
71 SerialText->setEnabled(conn);
72
73}
74void GSMTool::doTabChanged()
75{
76 int index = TabWidget2->currentPageIndex();
77 qDebug("tab changed to %d", index);
78
79 if (index == 1) {
80 timerid = startTimer(5000);
81 timerEvent(NULL);
82 } else if (timerid != -1) {
83 killTimer(timerid);
84 timerid = -1;
85 }
86}
87
88void GSMTool::timerEvent( QTimerEvent * )
89{
90 OPInfo opi;
91
92 opi = me->getCurrentOPInfo();
93
94 if (opi._numericName == NOT_SET) {
95 NetStatText->setText("No network");
96 NetworkLabel->setEnabled(FALSE);
97 NetworkText->setEnabled(FALSE);
98 NetworkText->setText("");
99 SigStrText->setEnabled(FALSE);
100 SigStrText->setText("");
101 dB->setEnabled(FALSE);
102 SigStrLabel->setEnabled(FALSE);
103 } else {
104 // FIXME: Add 'roaming' info from AT+CFUN
105 qDebug("network");
106 NetStatText->setText("Registered");
107 NetworkLabel->setEnabled(TRUE);
108 NetworkText->setEnabled(TRUE);
109 NetworkText->setText(opi._longName.c_str());
110 SigStrText->setEnabled(TRUE);
111
112 qDebug("get sig str");
113 int csq = me->getSignalStrength();
114 if (csq == 0) {
115 SigStrText->setText("<= -113");
116 dB->setEnabled(TRUE);
117 SigStrLabel->setEnabled(TRUE);
118 } else if (csq == 99) {
119 SigStrText->setText("Unknown");
120 dB->setEnabled(FALSE);
121 SigStrLabel->setEnabled(FALSE);
122 } else {
123 char buf[6];
124 sprintf(buf, "%d", -113 + (2*csq));
125 SigStrText->setText(buf);
126 dB->setEnabled(TRUE);
127 SigStrLabel->setEnabled(TRUE);
128 }
129 }
130}
131
132void GSMTool::doScanButton()
133{
134 qDebug("ScanButton");
135}
136/*
137 * A simple slot... not very interesting.
138 */
139void GSMTool::doConnectButton()
140{
141 speed_t rate;
142 devicename = strdup(DeviceName->currentText().local8Bit().data());
143 rate = baudrates[BaudRate->currentItem()];
144
145 qDebug("Connect Button Pressed");
146 MfrText->setText("Opening...");
147 ModelText->setText("");
148 RevisionText->setText("");
149 SerialText->setText("");
150
151 setConnected(FALSE);
152 if (me) {
153 // delete me;
154 me = NULL;
155 }
156 if (port) {
157 // delete port;
158 port = NULL;
159 }
160
161 if (lockDevice()) {
162 qDebug("lockDevice() failed\n");
163 };
164
165 qDebug("Device name is %s\n", devicename);
166
167 try {
168 port = new UnixSerialPort(devicename, rate, DEFAULT_INIT_STRING, 0);
169 } catch (GsmException) {
170 qDebug("port failed");
171 return;
172 }
173 MfrText->setText("Initialising...");
174 qDebug("got port");
175 try {
176 me = new MeTa(port);
177 } catch (GsmException) {
178 qDebug("meta failed");
179 delete port;
180 port = NULL;
181 unlockDevice();
182 return;
183 }
184
185 qDebug("Opened");
186
187 MEInfo ifo;
188
189 MfrText->setText("Querying...");
190
191 try {
192 ifo = me->getMEInfo();
193 } catch (GsmException) {
194 qDebug("getMEInfo failed");
195 delete me;
196 me = NULL;
197 delete port;
198 port = NULL;
199 unlockDevice();
200 return;
201 }
202
203 MfrText->setText(ifo._manufacturer.c_str());
204 ModelText->setText(ifo._model.c_str());
205 RevisionText->setText(ifo._revision.c_str());
206 SerialText->setText(ifo._serialNumber.c_str());
207 setConnected(TRUE);
208}
diff --git a/noncore/unsupported/gsmtool/gsmtool.h b/noncore/unsupported/gsmtool/gsmtool.h
new file mode 100644
index 0000000..cb19f54
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/gsmtool.h
@@ -0,0 +1,41 @@
1#ifndef EXAMPLE_H
2#define EXAMPLE_H
3#include "gsmtoolbase.h"
4
5#include <termios.h>
6
7#include <gsmlib/gsm_me_ta.h>
8
9class GSMTool : public GSMToolBase
10{
11 Q_OBJECT
12
13public:
14 GSMTool( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
15 ~GSMTool();
16
17protected:
18 void timerEvent(QTimerEvent *te );
19
20private slots:
21 void doConnectButton();
22 void doScanButton();
23 void doTabChanged();
24private:
25 static const speed_t baudrates[];
26 int devicelocked;
27 int timerid;
28
29 gsmlib::MeTa *me;
30 gsmlib::Port *port;
31
32 char *devicename;
33 speed_t baudrate;
34
35 int lockDevice( );
36 void unlockDevice( );
37
38 void setConnected( bool conn );
39};
40
41#endif // EXAMPLE_H
diff --git a/noncore/unsupported/gsmtool/gsmtool.pro b/noncore/unsupported/gsmtool/gsmtool.pro
new file mode 100644
index 0000000..0f5fb43
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/gsmtool.pro
@@ -0,0 +1,13 @@
1 TEMPLATE= app
2 #CONFIG = qt warn_on debug
3 CONFIG = qt warn_on release
4DESTDIR = $(OPIEDIR)/bin
5 HEADERS = gsmtool.h
6 SOURCES = main.cpp gsmtool.cpp
7CXXFLAGS += -fexceptions
8 INCLUDEPATH+= $(OPIEDIR)/include
9 INCLUDEPATH+= $(GSMLIBDIR)
10 DEPENDPATH+= $(OPIEDIR)/include
11LIBS += -lqpe -L$(GSMLIBDIR)/gsmlib/.libs -lgsmme
12 INTERFACES= gsmtoolbase.ui
13 TARGET = gsmtool
diff --git a/noncore/unsupported/gsmtool/gsmtoolbase.ui b/noncore/unsupported/gsmtool/gsmtoolbase.ui
new file mode 100644
index 0000000..36a3d8e
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/gsmtoolbase.ui
@@ -0,0 +1,887 @@
1<!DOCTYPE UI><UI>
2<class>GSMToolBase</class>
3<widget>
4 <class>QWidget</class>
5 <property stdset="1">
6 <name>name</name>
7 <cstring>GSM Tool</cstring>
8 </property>
9 <property stdset="1">
10 <name>geometry</name>
11 <rect>
12 <x>0</x>
13 <y>0</y>
14 <width>272</width>
15 <height>366</height>
16 </rect>
17 </property>
18 <property stdset="1">
19 <name>caption</name>
20 <string>GSM Tool</string>
21 </property>
22 <property>
23 <name>layoutMargin</name>
24 </property>
25 <property>
26 <name>layoutSpacing</name>
27 </property>
28 <vbox>
29 <property stdset="1">
30 <name>margin</name>
31 <number>2</number>
32 </property>
33 <property stdset="1">
34 <name>spacing</name>
35 <number>1</number>
36 </property>
37 <widget>
38 <class>QTabWidget</class>
39 <property stdset="1">
40 <name>name</name>
41 <cstring>TabWidget2</cstring>
42 </property>
43 <property stdset="1">
44 <name>sizePolicy</name>
45 <sizepolicy>
46 <hsizetype>7</hsizetype>
47 <vsizetype>7</vsizetype>
48 </sizepolicy>
49 </property>
50 <property stdset="1">
51 <name>focusPolicy</name>
52 <enum>NoFocus</enum>
53 </property>
54 <property>
55 <name>layoutMargin</name>
56 </property>
57 <property>
58 <name>layoutSpacing</name>
59 </property>
60 <widget>
61 <class>QWidget</class>
62 <property stdset="1">
63 <name>name</name>
64 <cstring>tab</cstring>
65 </property>
66 <attribute>
67 <name>title</name>
68 <string>Device</string>
69 </attribute>
70 <vbox>
71 <property stdset="1">
72 <name>margin</name>
73 <number>2</number>
74 </property>
75 <property stdset="1">
76 <name>spacing</name>
77 <number>1</number>
78 </property>
79 <widget>
80 <class>QLabel</class>
81 <property stdset="1">
82 <name>name</name>
83 <cstring>DeviceLabel</cstring>
84 </property>
85 <property stdset="1">
86 <name>text</name>
87 <string>Modem Device:</string>
88 </property>
89 </widget>
90 <widget>
91 <class>QComboBox</class>
92 <item>
93 <property>
94 <name>text</name>
95 <string>/dev/ircomm0</string>
96 </property>
97 </item>
98 <item>
99 <property>
100 <name>text</name>
101 <string>/dev/ttySA0</string>
102 </property>
103 </item>
104 <item>
105 <property>
106 <name>text</name>
107 <string>/dev/ttyS0</string>
108 </property>
109 </item>
110 <property stdset="1">
111 <name>name</name>
112 <cstring>DeviceName</cstring>
113 </property>
114 <property stdset="1">
115 <name>editable</name>
116 <bool>true</bool>
117 </property>
118 <property stdset="1">
119 <name>currentItem</name>
120 <number>0</number>
121 </property>
122 </widget>
123 <widget>
124 <class>QLabel</class>
125 <property stdset="1">
126 <name>name</name>
127 <cstring>BaudLabel</cstring>
128 </property>
129 <property stdset="1">
130 <name>text</name>
131 <string>Baud Rate:</string>
132 </property>
133 </widget>
134 <widget>
135 <class>QLayoutWidget</class>
136 <property stdset="1">
137 <name>name</name>
138 <cstring>Layout8</cstring>
139 </property>
140 <property>
141 <name>layoutMargin</name>
142 </property>
143 <hbox>
144 <property stdset="1">
145 <name>margin</name>
146 <number>0</number>
147 </property>
148 <property stdset="1">
149 <name>spacing</name>
150 <number>1</number>
151 </property>
152 <widget>
153 <class>QComboBox</class>
154 <item>
155 <property>
156 <name>text</name>
157 <string>300</string>
158 </property>
159 </item>
160 <item>
161 <property>
162 <name>text</name>
163 <string>600</string>
164 </property>
165 </item>
166 <item>
167 <property>
168 <name>text</name>
169 <string>1200</string>
170 </property>
171 </item>
172 <item>
173 <property>
174 <name>text</name>
175 <string>2400</string>
176 </property>
177 </item>
178 <item>
179 <property>
180 <name>text</name>
181 <string>4800</string>
182 </property>
183 </item>
184 <item>
185 <property>
186 <name>text</name>
187 <string>9600</string>
188 </property>
189 </item>
190 <item>
191 <property>
192 <name>text</name>
193 <string>19200</string>
194 </property>
195 </item>
196 <item>
197 <property>
198 <name>text</name>
199 <string>38400</string>
200 </property>
201 </item>
202 <item>
203 <property>
204 <name>text</name>
205 <string>57600</string>
206 </property>
207 </item>
208 <item>
209 <property>
210 <name>text</name>
211 <string>115200</string>
212 </property>
213 </item>
214 <item>
215 <property>
216 <name>text</name>
217 <string>230400</string>
218 </property>
219 </item>
220 <item>
221 <property>
222 <name>text</name>
223 <string>460800</string>
224 </property>
225 </item>
226 <property stdset="1">
227 <name>name</name>
228 <cstring>BaudRate</cstring>
229 </property>
230 <property stdset="1">
231 <name>editable</name>
232 <bool>false</bool>
233 </property>
234 <property stdset="1">
235 <name>currentItem</name>
236 <number>6</number>
237 </property>
238 </widget>
239 <spacer>
240 <property>
241 <name>name</name>
242 <cstring>Spacer5</cstring>
243 </property>
244 <property stdset="1">
245 <name>orientation</name>
246 <enum>Horizontal</enum>
247 </property>
248 <property stdset="1">
249 <name>sizeType</name>
250 <enum>Expanding</enum>
251 </property>
252 <property>
253 <name>sizeHint</name>
254 <size>
255 <width>20</width>
256 <height>20</height>
257 </size>
258 </property>
259 </spacer>
260 <widget>
261 <class>QPushButton</class>
262 <property stdset="1">
263 <name>name</name>
264 <cstring>ConnectButton</cstring>
265 </property>
266 <property stdset="1">
267 <name>sizePolicy</name>
268 <sizepolicy>
269 <hsizetype>1</hsizetype>
270 <vsizetype>1</vsizetype>
271 </sizepolicy>
272 </property>
273 <property stdset="1">
274 <name>text</name>
275 <string>Connect</string>
276 </property>
277 </widget>
278 </hbox>
279 </widget>
280 <widget>
281 <class>Line</class>
282 <property stdset="1">
283 <name>name</name>
284 <cstring>Line1</cstring>
285 </property>
286 <property stdset="1">
287 <name>orientation</name>
288 <enum>Horizontal</enum>
289 </property>
290 </widget>
291 <widget>
292 <class>QLabel</class>
293 <property stdset="1">
294 <name>name</name>
295 <cstring>MfrLabel</cstring>
296 </property>
297 <property stdset="1">
298 <name>enabled</name>
299 <bool>true</bool>
300 </property>
301 <property stdset="1">
302 <name>text</name>
303 <string>Manufacturer:</string>
304 </property>
305 </widget>
306 <widget>
307 <class>QLineEdit</class>
308 <property stdset="1">
309 <name>name</name>
310 <cstring>MfrText</cstring>
311 </property>
312 <property stdset="1">
313 <name>sizePolicy</name>
314 <sizepolicy>
315 <hsizetype>1</hsizetype>
316 <vsizetype>0</vsizetype>
317 </sizepolicy>
318 </property>
319 <property stdset="1">
320 <name>focusPolicy</name>
321 <enum>NoFocus</enum>
322 </property>
323 <property stdset="1">
324 <name>text</name>
325 <string></string>
326 </property>
327 </widget>
328 <widget>
329 <class>QLabel</class>
330 <property stdset="1">
331 <name>name</name>
332 <cstring>ModelLabel</cstring>
333 </property>
334 <property stdset="1">
335 <name>text</name>
336 <string>Model:</string>
337 </property>
338 </widget>
339 <widget>
340 <class>QLineEdit</class>
341 <property stdset="1">
342 <name>name</name>
343 <cstring>ModelText</cstring>
344 </property>
345 <property stdset="1">
346 <name>focusPolicy</name>
347 <enum>NoFocus</enum>
348 </property>
349 </widget>
350 <widget>
351 <class>QLabel</class>
352 <property stdset="1">
353 <name>name</name>
354 <cstring>RevisionLabel</cstring>
355 </property>
356 <property stdset="1">
357 <name>text</name>
358 <string>Revision:</string>
359 </property>
360 </widget>
361 <widget>
362 <class>QLineEdit</class>
363 <property stdset="1">
364 <name>name</name>
365 <cstring>RevisionText</cstring>
366 </property>
367 <property stdset="1">
368 <name>focusPolicy</name>
369 <enum>NoFocus</enum>
370 </property>
371 </widget>
372 <widget>
373 <class>QLabel</class>
374 <property stdset="1">
375 <name>name</name>
376 <cstring>SerialLabel</cstring>
377 </property>
378 <property stdset="1">
379 <name>text</name>
380 <string>Serial Number:</string>
381 </property>
382 </widget>
383 <widget>
384 <class>QLineEdit</class>
385 <property stdset="1">
386 <name>name</name>
387 <cstring>SerialText</cstring>
388 </property>
389 <property stdset="1">
390 <name>focusPolicy</name>
391 <enum>NoFocus</enum>
392 </property>
393 </widget>
394 <spacer>
395 <property>
396 <name>name</name>
397 <cstring>Spacer6</cstring>
398 </property>
399 <property stdset="1">
400 <name>orientation</name>
401 <enum>Vertical</enum>
402 </property>
403 <property stdset="1">
404 <name>sizeType</name>
405 <enum>Expanding</enum>
406 </property>
407 <property>
408 <name>sizeHint</name>
409 <size>
410 <width>20</width>
411 <height>20</height>
412 </size>
413 </property>
414 </spacer>
415 </vbox>
416 </widget>
417 <widget>
418 <class>QWidget</class>
419 <property stdset="1">
420 <name>name</name>
421 <cstring>tab</cstring>
422 </property>
423 <attribute>
424 <name>title</name>
425 <string>Network</string>
426 </attribute>
427 <vbox>
428 <property stdset="1">
429 <name>margin</name>
430 <number>0</number>
431 </property>
432 <property stdset="1">
433 <name>spacing</name>
434 <number>1</number>
435 </property>
436 <widget>
437 <class>QLabel</class>
438 <property stdset="1">
439 <name>name</name>
440 <cstring>NetStatLabel</cstring>
441 </property>
442 <property stdset="1">
443 <name>text</name>
444 <string>Network Status:</string>
445 </property>
446 </widget>
447 <widget>
448 <class>QLineEdit</class>
449 <property stdset="1">
450 <name>name</name>
451 <cstring>NetStatText</cstring>
452 </property>
453 <property stdset="1">
454 <name>focusPolicy</name>
455 <enum>NoFocus</enum>
456 </property>
457 </widget>
458 <widget>
459 <class>QLabel</class>
460 <property stdset="1">
461 <name>name</name>
462 <cstring>NetworkLabel</cstring>
463 </property>
464 <property stdset="1">
465 <name>text</name>
466 <string>Current Network:</string>
467 </property>
468 </widget>
469 <widget>
470 <class>QLineEdit</class>
471 <property stdset="1">
472 <name>name</name>
473 <cstring>NetworkText</cstring>
474 </property>
475 <property stdset="1">
476 <name>focusPolicy</name>
477 <enum>NoFocus</enum>
478 </property>
479 </widget>
480 <widget>
481 <class>QLayoutWidget</class>
482 <property stdset="1">
483 <name>name</name>
484 <cstring>Layout7</cstring>
485 </property>
486 <property>
487 <name>layoutMargin</name>
488 </property>
489 <hbox>
490 <property stdset="1">
491 <name>margin</name>
492 <number>0</number>
493 </property>
494 <property stdset="1">
495 <name>spacing</name>
496 <number>1</number>
497 </property>
498 <widget>
499 <class>QLabel</class>
500 <property stdset="1">
501 <name>name</name>
502 <cstring>SigStrLabel</cstring>
503 </property>
504 <property stdset="1">
505 <name>text</name>
506 <string>Signal Strength:</string>
507 </property>
508 </widget>
509 <widget>
510 <class>QLineEdit</class>
511 <property stdset="1">
512 <name>name</name>
513 <cstring>SigStrText</cstring>
514 </property>
515 <property stdset="1">
516 <name>focusPolicy</name>
517 <enum>NoFocus</enum>
518 </property>
519 </widget>
520 <widget>
521 <class>QLabel</class>
522 <property stdset="1">
523 <name>name</name>
524 <cstring>dB</cstring>
525 </property>
526 <property stdset="1">
527 <name>text</name>
528 <string>dBm</string>
529 </property>
530 </widget>
531 </hbox>
532 </widget>
533 <widget>
534 <class>QLayoutWidget</class>
535 <property stdset="1">
536 <name>name</name>
537 <cstring>Layout9</cstring>
538 </property>
539 <property>
540 <name>layoutMargin</name>
541 </property>
542 <hbox>
543 <property stdset="1">
544 <name>margin</name>
545 <number>0</number>
546 </property>
547 <property stdset="1">
548 <name>spacing</name>
549 <number>1</number>
550 </property>
551 <widget>
552 <class>QLabel</class>
553 <property stdset="1">
554 <name>name</name>
555 <cstring>AltNetsLabel</cstring>
556 </property>
557 <property stdset="1">
558 <name>text</name>
559 <string>Alternative Networks:</string>
560 </property>
561 </widget>
562 <spacer>
563 <property>
564 <name>name</name>
565 <cstring>Spacer13</cstring>
566 </property>
567 <property stdset="1">
568 <name>orientation</name>
569 <enum>Horizontal</enum>
570 </property>
571 <property stdset="1">
572 <name>sizeType</name>
573 <enum>Expanding</enum>
574 </property>
575 <property>
576 <name>sizeHint</name>
577 <size>
578 <width>20</width>
579 <height>20</height>
580 </size>
581 </property>
582 </spacer>
583 <widget>
584 <class>QPushButton</class>
585 <property stdset="1">
586 <name>name</name>
587 <cstring>ScanButton</cstring>
588 </property>
589 <property stdset="1">
590 <name>text</name>
591 <string>Scan</string>
592 </property>
593 </widget>
594 </hbox>
595 </widget>
596 <widget>
597 <class>QListView</class>
598 <column>
599 <property>
600 <name>text</name>
601 <string>Network Name</string>
602 </property>
603 <property>
604 <name>clickable</name>
605 <bool>true</bool>
606 </property>
607 <property>
608 <name>resizeable</name>
609 <bool>true</bool>
610 </property>
611 </column>
612 <column>
613 <property>
614 <name>text</name>
615 <string>Status</string>
616 </property>
617 <property>
618 <name>clickable</name>
619 <bool>true</bool>
620 </property>
621 <property>
622 <name>resizeable</name>
623 <bool>true</bool>
624 </property>
625 </column>
626 <column>
627 <property>
628 <name>text</name>
629 <string>No.</string>
630 </property>
631 <property>
632 <name>clickable</name>
633 <bool>true</bool>
634 </property>
635 <property>
636 <name>resizeable</name>
637 <bool>true</bool>
638 </property>
639 </column>
640 <column>
641 <property>
642 <name>text</name>
643 <string>Shortname</string>
644 </property>
645 <property>
646 <name>clickable</name>
647 <bool>true</bool>
648 </property>
649 <property>
650 <name>resizeable</name>
651 <bool>true</bool>
652 </property>
653 </column>
654 <property stdset="1">
655 <name>name</name>
656 <cstring>NetworkList</cstring>
657 </property>
658 <property stdset="1">
659 <name>sizePolicy</name>
660 <sizepolicy>
661 <hsizetype>7</hsizetype>
662 <vsizetype>7</vsizetype>
663 </sizepolicy>
664 </property>
665 </widget>
666 <widget>
667 <class>QLayoutWidget</class>
668 <property stdset="1">
669 <name>name</name>
670 <cstring>Layout11</cstring>
671 </property>
672 <hbox>
673 <property stdset="1">
674 <name>margin</name>
675 <number>2</number>
676 </property>
677 <property stdset="1">
678 <name>spacing</name>
679 <number>1</number>
680 </property>
681 <spacer>
682 <property>
683 <name>name</name>
684 <cstring>Spacer14</cstring>
685 </property>
686 <property stdset="1">
687 <name>orientation</name>
688 <enum>Horizontal</enum>
689 </property>
690 <property stdset="1">
691 <name>sizeType</name>
692 <enum>Expanding</enum>
693 </property>
694 <property>
695 <name>sizeHint</name>
696 <size>
697 <width>20</width>
698 <height>20</height>
699 </size>
700 </property>
701 </spacer>
702 <widget>
703 <class>QPushButton</class>
704 <property stdset="1">
705 <name>name</name>
706 <cstring>RegisterButton</cstring>
707 </property>
708 <property stdset="1">
709 <name>sizePolicy</name>
710 <sizepolicy>
711 <hsizetype>7</hsizetype>
712 <vsizetype>0</vsizetype>
713 </sizepolicy>
714 </property>
715 <property stdset="1">
716 <name>text</name>
717 <string>Register</string>
718 </property>
719 </widget>
720 </hbox>
721 </widget>
722 </vbox>
723 </widget>
724 <widget>
725 <class>QWidget</class>
726 <property stdset="1">
727 <name>name</name>
728 <cstring>tab</cstring>
729 </property>
730 <attribute>
731 <name>title</name>
732 <string>SMS</string>
733 </attribute>
734 <grid>
735 <property stdset="1">
736 <name>margin</name>
737 <number>2</number>
738 </property>
739 <property stdset="1">
740 <name>spacing</name>
741 <number>1</number>
742 </property>
743 <widget row="0" column="1" >
744 <class>QComboBox</class>
745 <item>
746 <property>
747 <name>text</name>
748 <string>None</string>
749 </property>
750 </item>
751 <item>
752 <property>
753 <name>text</name>
754 <string>Incoming</string>
755 </property>
756 </item>
757 <item>
758 <property>
759 <name>text</name>
760 <string>Outgoing</string>
761 </property>
762 </item>
763 <property stdset="1">
764 <name>name</name>
765 <cstring>ComboBox11</cstring>
766 </property>
767 <property stdset="1">
768 <name>enabled</name>
769 <bool>true</bool>
770 </property>
771 </widget>
772 <widget row="0" column="0" >
773 <class>QLabel</class>
774 <property stdset="1">
775 <name>name</name>
776 <cstring>TextLabel4</cstring>
777 </property>
778 <property stdset="1">
779 <name>text</name>
780 <string>Message Collection:</string>
781 </property>
782 </widget>
783 <widget row="1" column="0" rowspan="1" colspan="2" >
784 <class>QListView</class>
785 <column>
786 <property>
787 <name>text</name>
788 <string>Date</string>
789 </property>
790 <property>
791 <name>clickable</name>
792 <bool>true</bool>
793 </property>
794 <property>
795 <name>resizeable</name>
796 <bool>true</bool>
797 </property>
798 </column>
799 <column>
800 <property>
801 <name>text</name>
802 <string>Number</string>
803 </property>
804 <property>
805 <name>clickable</name>
806 <bool>true</bool>
807 </property>
808 <property>
809 <name>resizeable</name>
810 <bool>true</bool>
811 </property>
812 </column>
813 <property stdset="1">
814 <name>name</name>
815 <cstring>ListView3</cstring>
816 </property>
817 </widget>
818 <widget row="3" column="0" rowspan="1" colspan="2" >
819 <class>QMultiLineEdit</class>
820 <property stdset="1">
821 <name>name</name>
822 <cstring>MultiLineEdit3</cstring>
823 </property>
824 <property stdset="1">
825 <name>readOnly</name>
826 <bool>true</bool>
827 </property>
828 </widget>
829 <widget row="2" column="0" rowspan="1" colspan="2" >
830 <class>QLayoutWidget</class>
831 <property stdset="1">
832 <name>name</name>
833 <cstring>Layout15</cstring>
834 </property>
835 <property>
836 <name>layoutMargin</name>
837 </property>
838 <hbox>
839 <property stdset="1">
840 <name>margin</name>
841 <number>0</number>
842 </property>
843 <property stdset="1">
844 <name>spacing</name>
845 <number>1</number>
846 </property>
847 <widget>
848 <class>QPushButton</class>
849 <property stdset="1">
850 <name>name</name>
851 <cstring>PushButton11</cstring>
852 </property>
853 <property stdset="1">
854 <name>text</name>
855 <string>Delete</string>
856 </property>
857 </widget>
858 <widget>
859 <class>QPushButton</class>
860 <property stdset="1">
861 <name>name</name>
862 <cstring>PushButton12</cstring>
863 </property>
864 <property stdset="1">
865 <name>text</name>
866 <string>Send</string>
867 </property>
868 </widget>
869 <widget>
870 <class>QPushButton</class>
871 <property stdset="1">
872 <name>name</name>
873 <cstring>PushButton13</cstring>
874 </property>
875 <property stdset="1">
876 <name>text</name>
877 <string>New</string>
878 </property>
879 </widget>
880 </hbox>
881 </widget>
882 </grid>
883 </widget>
884 </widget>
885 </vbox>
886</widget>
887</UI>
diff --git a/noncore/unsupported/gsmtool/main.cpp b/noncore/unsupported/gsmtool/main.cpp
new file mode 100644
index 0000000..8f68713
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/main.cpp
@@ -0,0 +1,12 @@
1#include "gsmtool.h"
2#include <qpe/qpeapplication.h>
3
4int main( int argc, char ** argv )
5{
6 QPEApplication a( argc, argv );
7
8 GSMTool mw;
9 a.showMainWidget( &mw );
10
11 return a.exec();
12}
diff --git a/noncore/unsupported/gsmtool/opie-gsmtool.control b/noncore/unsupported/gsmtool/opie-gsmtool.control
new file mode 100644
index 0000000..5db0450
--- a/dev/null
+++ b/noncore/unsupported/gsmtool/opie-gsmtool.control
@@ -0,0 +1,10 @@
1Files: bin/gsmtool apps/Applications/gsmtool.desktop pics/gsmtool
2Priority: optional
3Section: opie/applications
4Maintainer: David Woodhouse <dwmw2@infradead.org>
5Architecture: arm
6Version: 1.0.0
7Depends: qpe-base ($QPE_VERSION)
8License: Public Domain
9Description: GSMTool program
10 An GSM phone utility program for the Opie environment.
diff --git a/pics/gsmtool/gsmtool.png b/pics/gsmtool/gsmtool.png
new file mode 100644
index 0000000..f63d0bc
--- a/dev/null
+++ b/pics/gsmtool/gsmtool.png
Binary files differ