From 2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa Mon Sep 17 00:00:00 2001 From: dwmw2 Date: Wed, 03 Apr 2002 18:22:16 +0000 Subject: Read SMS messages from phone --- (limited to 'noncore/unsupported/gsmtool/gsmtool.cpp') 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 #include #include - +#include #include #include #include +#include +#include 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 storenames = me->getSMSStoreNames(); + + for (vector::iterator i = storenames.begin(); i != storenames.end(); ++i) { + SMSStoreList->insertItem(i->c_str()); + } + SMSList->clear(); + SMSText->setText(""); + sms_store = NULL; } -- cgit v0.9.0.2