summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.cpp47
-rw-r--r--noncore/unsupported/gsmtool/gsmtoolbase.ui16
2 files changed, 59 insertions, 4 deletions
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp
index 38c8c59..38baf45 100644
--- a/noncore/unsupported/gsmtool/gsmtool.cpp
+++ b/noncore/unsupported/gsmtool/gsmtool.cpp
@@ -1,30 +1,31 @@
#include "gsmtool.h"
#include <qpushbutton.h>
#include <qcombobox.h>
#include <qlineedit.h>
#include <qlabel.h>
#include <qtabwidget.h>
+#include <qlistview.h>
#include <termios.h>
#include <gsmlib/gsm_me_ta.h>
#include <gsmlib/gsm_unix_serial.h>
using namespace gsmlib;
/*
* Constructs a GSMTool which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
*/
GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl )
: GSMToolBase( parent, name, fl )
{
devicelocked = 0;
me = NULL;
setConnected(FALSE);
/* FIXME: Persistent settings for device/baudrate */
connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton()));
connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton()));
connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged()));
timerid = -1; // Is this not possible normally?
@@ -110,48 +111,94 @@ void GSMTool::timerEvent( QTimerEvent * )
qDebug("get sig str");
int csq = me->getSignalStrength();
if (csq == 0) {
SigStrText->setText("<= -113");
dB->setEnabled(TRUE);
SigStrLabel->setEnabled(TRUE);
} else if (csq == 99) {
SigStrText->setText("Unknown");
dB->setEnabled(FALSE);
SigStrLabel->setEnabled(FALSE);
} else {
char buf[6];
sprintf(buf, "%d", -113 + (2*csq));
SigStrText->setText(buf);
dB->setEnabled(TRUE);
SigStrLabel->setEnabled(TRUE);
}
}
}
void GSMTool::doScanButton()
{
qDebug("ScanButton");
+
+ NetworkList->setEnabled(FALSE);
+ AvailNetsLabel->setEnabled(FALSE);
+ NetworkList->clear();
+ new QListViewItem(NetworkList, "Scanning...");
+
+ vector<OPInfo> opis;
+
+ try {
+ opis = me->getAvailableOPInfo();
+ } catch (GsmException) {
+ NetworkList->clear();
+ new QListViewItem(NetworkList, "Scan failed...");
+ return;
+ }
+
+ NetworkList->clear();
+ for (vector<OPInfo>::iterator i = opis.begin(); i != opis.end(); ++i) {
+ char *statustext;
+ switch (i->_status) {
+
+ case UnknownOPStatus:
+ statustext = "unknown";
+ break;
+
+ case CurrentOPStatus:
+ statustext = "current";
+ break;
+
+ case AvailableOPStatus:
+ statustext = "available";
+ break;
+
+ case ForbiddenOPStatus:
+ statustext = "forbidden";
+ break;
+
+ default:
+ statustext = "(ERROR)";
+ }
+ char num[7];
+ snprintf(num, 6, "%d", i->_numericName);
+ new QListViewItem(NetworkList, i->_longName.c_str(), statustext, num, i->_shortName.c_str());
+ }
+ NetworkList->setEnabled(TRUE);
+ AvailNetsLabel->setEnabled(TRUE);
}
/*
* A simple slot... not very interesting.
*/
void GSMTool::doConnectButton()
{
gsmlib::Port *port;
speed_t rate;
devicename = strdup(DeviceName->currentText().local8Bit().data());
rate = baudrates[BaudRate->currentItem()];
qDebug("Connect Button Pressed");
MfrText->setText("Opening...");
ModelText->setText("");
RevisionText->setText("");
SerialText->setText("");
setConnected(FALSE);
if (me) {
me = NULL;
}
if (lockDevice()) {
diff --git a/noncore/unsupported/gsmtool/gsmtoolbase.ui b/noncore/unsupported/gsmtool/gsmtoolbase.ui
index 36a3d8e..72c943a 100644
--- a/noncore/unsupported/gsmtool/gsmtoolbase.ui
+++ b/noncore/unsupported/gsmtool/gsmtoolbase.ui
@@ -1,39 +1,39 @@
<!DOCTYPE UI><UI>
<class>GSMToolBase</class>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>GSM Tool</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>272</width>
- <height>366</height>
+ <width>388</width>
+ <height>502</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>GSM Tool</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>2</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>1</number>
</property>
<widget>
<class>QTabWidget</class>
<property stdset="1">
@@ -531,53 +531,53 @@
</hbox>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout9</cstring>
</property>
<property>
<name>layoutMargin</name>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>1</number>
</property>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
- <cstring>AltNetsLabel</cstring>
+ <cstring>AvailNetsLabel</cstring>
</property>
<property stdset="1">
<name>text</name>
- <string>Alternative Networks:</string>
+ <string>Available Networks:</string>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer13</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
@@ -635,48 +635,52 @@
<property>
<name>resizeable</name>
<bool>true</bool>
</property>
</column>
<column>
<property>
<name>text</name>
<string>Shortname</string>
</property>
<property>
<name>clickable</name>
<bool>true</bool>
</property>
<property>
<name>resizeable</name>
<bool>true</bool>
</property>
</column>
<property stdset="1">
<name>name</name>
<cstring>NetworkList</cstring>
</property>
<property stdset="1">
+ <name>enabled</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
</sizepolicy>
</property>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout11</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>2</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>1</number>
</property>
<spacer>
<property>
@@ -685,48 +689,52 @@
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>RegisterButton</cstring>
</property>
<property stdset="1">
+ <name>enabled</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>Register</string>
</property>
</widget>
</hbox>
</widget>
</vbox>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>tab</cstring>
</property>
<attribute>
<name>title</name>
<string>SMS</string>