author | dwmw2 <dwmw2> | 2002-04-03 18:22:16 (UTC) |
---|---|---|
committer | dwmw2 <dwmw2> | 2002-04-03 18:22:16 (UTC) |
commit | 2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa (patch) (side-by-side diff) | |
tree | aa725b743c70f7f7dbf05f4eb74c597a40146edc | |
parent | 7993b149e594bf8abd05add99653abd529f5c10a (diff) | |
download | opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.zip opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.gz opie-2c2fbf9ae12eb117d5ec6ab9b6a14e27d93261fa.tar.bz2 |
Read SMS messages from phone
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtool.cpp | 63 | ||||
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtool.h | 4 | ||||
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtoolbase.ui | 149 |
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 @@ -6,9 +6,11 @@ #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; @@ -24,4 +26,5 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) devicelocked = 0; me = NULL; + sms_store = NULL; setConnected(FALSE); /* FIXME: Persistent settings for device/baudrate */ @@ -29,4 +32,7 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) 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? } @@ -130,4 +136,47 @@ 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() { @@ -249,3 +298,15 @@ void GSMTool::doConnectButton() 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 @@ -22,4 +22,7 @@ private slots: void doScanButton(); void doTabChanged(); + void doSMSStoreChanged(); + void doSMSTypeChanged(); + private: static const speed_t baudrates[]; @@ -28,4 +31,5 @@ private: gsmlib::MeTa *me; + gsmlib::SMSStoreRef sms_store; char *devicename; 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 @@ -12,6 +12,6 @@ <x>0</x> <y>0</y> - <width>388</width> - <height>502</height> + <width>309</width> + <height>390</height> </rect> </property> @@ -740,54 +740,89 @@ <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> @@ -821,19 +856,8 @@ <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"> @@ -857,5 +881,5 @@ <property stdset="1"> <name>name</name> - <cstring>PushButton11</cstring> + <cstring>SMSDeleteButton</cstring> </property> <property stdset="1"> @@ -868,5 +892,5 @@ <property stdset="1"> <name>name</name> - <cstring>PushButton12</cstring> + <cstring>SMSSendButton</cstring> </property> <property stdset="1"> @@ -879,5 +903,5 @@ <property stdset="1"> <name>name</name> - <cstring>PushButton13</cstring> + <cstring>SMSNewButton</cstring> </property> <property stdset="1"> @@ -888,5 +912,12 @@ </hbox> </widget> - </grid> + <widget> + <class>QTextBrowser</class> + <property stdset="1"> + <name>name</name> + <cstring>SMSText</cstring> + </property> + </widget> + </vbox> </widget> </widget> |