summaryrefslogtreecommitdiff
authordwmw2 <dwmw2>2002-04-03 18:22:16 (UTC)
committer dwmw2 <dwmw2>2002-04-03 18:22:16 (UTC)
commit2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa (patch) (side-by-side diff)
treeaa725b743c70f7f7dbf05f4eb74c597a40146edc
parent7993b149e594bf8abd05add99653abd529f5c10a (diff)
downloadopie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.zip
opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.gz
opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.bz2
Read SMS messages from phone
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,42 +1,48 @@
#include "gsmtool.h"
#include <qpushbutton.h>
#include <qcombobox.h>
#include <qlineedit.h>
#include <qlabel.h>
#include <qtabwidget.h>
#include <qlistview.h>
-
+#include <qtextbrowser.h>
#include <termios.h>
#include <gsmlib/gsm_me_ta.h>
#include <gsmlib/gsm_unix_serial.h>
+#include <gsmlib/gsm_sms.h>
+#include <gsmlib/gsm_sorted_sms_store.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;
+ sms_store = 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()));
+ connect(SMSStoreList, SIGNAL(activated(int)), this, SLOT(doSMSStoreChanged()));
+ connect(SMSViewType, SIGNAL(activated(int)), this, SLOT(doSMSTypeChanged()));
+
timerid = -1; // Is this not possible normally?
}
/*
* Destroys the object and frees any allocated resources
*/
GSMTool::~GSMTool()
{
// no need to delete child widgets, Qt does it all for us
if (devicelocked)
unlockDevice();
}
@@ -120,24 +126,67 @@ void GSMTool::timerEvent( QTimerEvent * )
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::doSMSStoreChanged()
+{
+ const char *storename = SMSStoreList->currentText().ascii();
+ qDebug("Store Changed to '%s'", storename);
+ try {
+ sms_store = me->getSMSStore(storename);
+
+ qDebug("got store of size %d", sms_store->size());
+ } catch (GsmException) {
+ sms_store = NULL;
+ qDebug("get store failed");
+ }
+ doSMSTypeChanged();
+}
+
+void GSMTool::doSMSTypeChanged()
+{
+ int direction = SMSViewType->currentItem();
+ qDebug("direction %s\n", direction?"outgoing":"incoming");
+
+ SMSList->clear();
+ if (sms_store == NULL)
+ return;
+ for (int i = 0; i < sms_store->size(); i++) {
+ qDebug("Message %d", i);
+ qDebug("Is%sempty", sms_store()[i].empty()?" ":" not ");
+ if (sms_store()[i].empty())
+ continue;
+
+ qDebug("Status %d", sms_store()[i].status());
+ SMSMessageRef message = sms_store()[i].message();
+ qDebug("Got message.");
+
+#if 0 // WTF does this die? Did I mention that gsmlib needs rewriting in a sane language?
+ qDebug(message->toString().c_str());
+ if (direction == message->messageType()) {
+ qDebug("yes\n");
+ new QListViewItem(SMSList, "xx", message->address()._number.c_str());
+ } else qDebug("no. dir %d, type %d\n", direction, message->messageType());
+#endif
+ }
+}
+
void GSMTool::doScanButton()
{
qDebug("ScanButton");
NetworkList->setEnabled(FALSE);
AvailNetsLabel->setEnabled(FALSE);
NetworkList->clear();
new QListViewItem(NetworkList, "Scanning...");
vector<OPInfo> opis;
try {
@@ -239,13 +288,25 @@ void GSMTool::doConnectButton()
qDebug("getMEInfo failed");
MfrText->setText("Query GSM unit failed");
me = NULL;
unlockDevice();
return;
}
MfrText->setText(ifo._manufacturer.c_str());
ModelText->setText(ifo._model.c_str());
RevisionText->setText(ifo._revision.c_str());
SerialText->setText(ifo._serialNumber.c_str());
setConnected(TRUE);
+
+ SMSStoreList->clear();
+ SMSStoreList->insertItem("None");
+
+ vector<string> storenames = me->getSMSStoreNames();
+
+ for (vector<string>::iterator i = storenames.begin(); i != storenames.end(); ++i) {
+ SMSStoreList->insertItem(i->c_str());
+ }
+ SMSList->clear();
+ SMSText->setText("");
+ sms_store = NULL;
}
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
@@ -12,29 +12,33 @@ class GSMTool : public GSMToolBase
public:
GSMTool( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
~GSMTool();
protected:
void timerEvent(QTimerEvent *te );
private slots:
void doConnectButton();
void doScanButton();
void doTabChanged();
+ void doSMSStoreChanged();
+ void doSMSTypeChanged();
+
private:
static const speed_t baudrates[];
int devicelocked;
int timerid;
gsmlib::MeTa *me;
+ gsmlib::SMSStoreRef sms_store;
char *devicename;
speed_t baudrate;
int lockDevice( );
void unlockDevice( );
void setConnected( bool conn );
};
#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
@@ -2,26 +2,26 @@
<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>388</width>
- <height>502</height>
+ <width>309</width>
+ <height>390</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>GSM Tool</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
@@ -730,74 +730,109 @@
</vbox>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>tab</cstring>
</property>
<attribute>
<name>title</name>
<string>SMS</string>
</attribute>
- <grid>
+ <vbox>
<property stdset="1">
<name>margin</name>
- <number>2</number>
+ <number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>1</number>
+ <number>6</number>
</property>
- <widget row="0" column="1" >
- <class>QComboBox</class>
- <item>
- <property>
- <name>text</name>
- <string>None</string>
- </property>
- </item>
- <item>
- <property>
- <name>text</name>
- <string>Incoming</string>
- </property>
- </item>
- <item>
- <property>
- <name>text</name>
- <string>Outgoing</string>
- </property>
- </item>
- <property stdset="1">
- <name>name</name>
- <cstring>ComboBox11</cstring>
- </property>
- <property stdset="1">
- <name>enabled</name>
- <bool>true</bool>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
+ <widget>
+ <class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
- <cstring>TextLabel4</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Message Collection:</string>
+ <cstring>Layout6</cstring>
</property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>SMSStoreLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Store:</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QComboBox</class>
+ <item>
+ <property>
+ <name>text</name>
+ <string>None</string>
+ </property>
+ </item>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>SMSStoreList</cstring>
+ </property>
+ <property stdset="1">
+ <name>enabled</name>
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>SMSTypeLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Type:</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QComboBox</class>
+ <item>
+ <property>
+ <name>text</name>
+ <string>Incoming</string>
+ </property>
+ </item>
+ <item>
+ <property>
+ <name>text</name>
+ <string>Outgoing</string>
+ </property>
+ </item>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>SMSViewType</cstring>
+ </property>
+ </widget>
+ </hbox>
</widget>
- <widget row="1" column="0" rowspan="1" colspan="2" >
+ <widget>
<class>QListView</class>
<column>
<property>
<name>text</name>
<string>Date</string>
</property>
<property>
<name>clickable</name>
<bool>true</bool>
</property>
<property>
<name>resizeable</name>
@@ -811,85 +846,81 @@
</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>ListView3</cstring>
- </property>
- </widget>
- <widget row="3" column="0" rowspan="1" colspan="2" >
- <class>QMultiLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>MultiLineEdit3</cstring>
- </property>
- <property stdset="1">
- <name>readOnly</name>
- <bool>true</bool>
+ <cstring>SMSList</cstring>
</property>
</widget>
- <widget row="2" column="0" rowspan="1" colspan="2" >
+ <widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout15</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>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>PushButton11</cstring>
+ <cstring>SMSDeleteButton</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Delete</string>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>PushButton12</cstring>
+ <cstring>SMSSendButton</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Send</string>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>PushButton13</cstring>
+ <cstring>SMSNewButton</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>New</string>
</property>
</widget>
</hbox>
</widget>
- </grid>
+ <widget>
+ <class>QTextBrowser</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>SMSText</cstring>
+ </property>
+ </widget>
+ </vbox>
</widget>
</widget>
</vbox>
</widget>
</UI>