summaryrefslogtreecommitdiff
path: root/noncore/unsupported/gsmtool/gsmtool.cpp
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 /noncore/unsupported/gsmtool/gsmtool.cpp
parent7993b149e594bf8abd05add99653abd529f5c10a (diff)
downloadopie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.zip
opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.gz
opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.bz2
Read SMS messages from phone
Diffstat (limited to 'noncore/unsupported/gsmtool/gsmtool.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.cpp63
1 files changed, 62 insertions, 1 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
@@ -5,11 +5,13 @@
#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;
@@ -23,11 +25,15 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags 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?
}
@@ -129,6 +135,49 @@ void GSMTool::timerEvent( QTimerEvent * )
}
}
+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");
@@ -248,4 +297,16 @@ void GSMTool::doConnectButton()
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;
}