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 --- 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; } 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 @@ -21,12 +21,16 @@ 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; 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 @@ -11,8 +11,8 @@ 0 0 - 388 - 502 + 309 + 390 @@ -739,56 +739,91 @@ title SMS - + margin - 2 + 11 spacing - 1 + 6 - - QComboBox - - - text - None - - - - - text - Incoming - - - - - text - Outgoing - - - - name - ComboBox11 - - - enabled - true - - - - QLabel + + QLayoutWidget name - TextLabel4 - - - text - Message Collection: + Layout6 + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + SMSStoreLabel + + + text + Store: + + + + QComboBox + + + text + None + + + + name + SMSStoreList + + + enabled + true + + + + QLabel + + name + SMSTypeLabel + + + text + Type: + + + + QComboBox + + + text + Incoming + + + + + text + Outgoing + + + + name + SMSViewType + + + - + QListView @@ -820,21 +855,10 @@ name - ListView3 - - - - QMultiLineEdit - - name - MultiLineEdit3 - - - readOnly - true + SMSList - + QLayoutWidget name @@ -856,7 +880,7 @@ QPushButton name - PushButton11 + SMSDeleteButton text @@ -867,7 +891,7 @@ QPushButton name - PushButton12 + SMSSendButton text @@ -878,7 +902,7 @@ QPushButton name - PushButton13 + SMSNewButton text @@ -887,7 +911,14 @@ - + + QTextBrowser + + name + SMSText + + + -- cgit v0.9.0.2