-rw-r--r-- | noncore/unsupported/gsmtool/gsmtool.cpp | 129 | ||||
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtool.h | 9 | ||||
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtoolbase.ui | 179 |
3 files changed, 278 insertions, 39 deletions
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp index 8273461..6fea596 100644 --- a/noncore/unsupported/gsmtool/gsmtool.cpp +++ b/noncore/unsupported/gsmtool/gsmtool.cpp @@ -33,2 +33,7 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); + connect(SMSDeleteButton, SIGNAL(clicked()), this, SLOT(doSMSDeleteButton())); + connect(SMSSendButton, SIGNAL(clicked()), this, SLOT(doSMSSendButton())); + connect(NewSMSClearButton, SIGNAL(clicked()), this, SLOT(doNewSMSClearButton())); + connect(NewSMSSaveButton, SIGNAL(clicked()), this, SLOT(doNewSMSSaveButton())); + connect(NewSMSSendButton, SIGNAL(clicked()), this, SLOT(doNewSMSSendButton())); connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); @@ -71,2 +76,3 @@ void GSMTool::setConnected( bool conn ) TabWidget2->setTabEnabled(tab_3, conn); + TabWidget2->setTabEnabled(tab_4, conn); MfrLabel->setEnabled(conn); @@ -146,3 +152,4 @@ void GSMTool::doSMSStoreChanged() } else try { - sms_store = me->getSMSStore(storename); + sms_store = new SortedSMSStore(me->getSMSStore(storename)); + sms_store->setSortOrder(ByIndex); @@ -155,2 +162,3 @@ void GSMTool::doSMSStoreChanged() SMSList->setEnabled(!(sms_store == NULL)); + NewSMSSaveButton->setEnabled(!(sms_store == NULL)); doSMSTypeChanged(); @@ -162,2 +170,6 @@ void GSMTool::doSMSTypeChanged() qDebug("direction %s\n", direction?"outgoing":"incoming"); + if (direction) + SMSSendButton->setText("Send"); + else + SMSSendButton->setText("Reply"); @@ -168,10 +180,11 @@ void GSMTool::doSMSTypeChanged() 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()) + for (SortedSMSStore::iterator e = sms_store->begin(); + e != sms_store->end(); e++) { + // qDebug("Message %d", i); + qDebug("Is%sempty", e->empty()?" ":" not "); + if (e->empty()) continue; - qDebug("Status %d", sms_store()[i].status()); - SMSMessageRef message = sms_store()[i].message(); + qDebug("Status %d", e->status()); + SMSMessageRef message = e->message(); qDebug("Got message."); @@ -182,3 +195,3 @@ void GSMTool::doSMSTypeChanged() char buf[3]; - snprintf(buf, 3, "%d", i); + snprintf(buf, 3, "%d", e->index()); new QListViewItem(SMSList, message->address()._number.c_str(), message->serviceCentreTimestamp().toString().c_str(), buf); @@ -209,3 +222,3 @@ void GSMTool::doSelectedSMSChanged(QListViewItem *item) qDebug("index %d\n", index); - SMSMessageRef message = sms_store()[index].message(); + SMSMessageRef message = sms_store->find(index)->message(); @@ -217,2 +230,100 @@ void GSMTool::doSelectedSMSChanged(QListViewItem *item) } + +void GSMTool::doSMSSendButton() +{ + qDebug("SMSSendButton"); + + QListViewItem *item = SMSList->currentItem(); + if (!item) + return; + + int index = atoi(item->text(2).ascii()); + qDebug("index %d\n", index); + + int direction = SMSViewType->currentItem(); + qDebug("direction %s\n", direction?"outgoing":"incoming"); + + SMSMessageRef message = sms_store->find(index)->message(); + + if (direction) + NewSMSText->setText(message->userData().c_str()); + else + NewSMSText->setText(""); + NewSMSToBox->insertItem(message->address()._number.c_str(), 0); + TabWidget2->setCurrentPage(3); + +} + +void GSMTool::doNewSMSClearButton() +{ + NewSMSText->setText(""); +} + +void GSMTool::doNewSMSSaveButton() +{ + qDebug("NewSMSSaveButton"); + const char *msgtext = strdup(NewSMSText->text().local8Bit()); + const char *dest = NewSMSToBox->currentText().ascii(); + + NewSMSStatusLabel->setText("Sending..."); + me->setMessageService(1); + + qDebug("NewSMSSendButton: '%s' to '%s'", msgtext, dest); + + SMSMessageRef m = new SMSSubmitMessage (msgtext, dest); + sms_store->insert(m); + free((void *)msgtext); + +} +void GSMTool::doNewSMSSendButton() +{ + const char *msgtext = strdup(NewSMSText->text().local8Bit()); + const char *dest = NewSMSToBox->currentText().ascii(); + + NewSMSStatusLabel->setText("Sending..."); + me->setMessageService(1); + + qDebug("NewSMSSendButton: '%s' to '%s'", msgtext, dest); + + SMSSubmitMessage m(msgtext, dest); + try { + Ref<SMSMessage> ackPDU; + m.setAt(new GsmAt(*me)); + m.send(ackPDU); + + // print acknowledgement if available + if (! ackPDU.isnull()) + cout << ackPDU->toString(); + NewSMSStatusLabel->setText("Message sent."); + } catch (GsmException &ge) { + NewSMSStatusLabel->setText("Failed."); + qDebug(ge.what()); + } + free((void *)msgtext); + + +} + + +void GSMTool::doSMSDeleteButton() +{ + QListViewItem *item = SMSList->currentItem(); + if (!item) + return; + + int index = atoi(item->text(2).ascii()); + qDebug("delete SMS with index %d\n", index); + + + + SortedSMSStore::iterator e = sms_store->find(index); + + if (e != sms_store->end()) { + qDebug("message is %s\n", e->message()->userData().c_str()); + sms_store->erase(e); + + } + doSMSTypeChanged(); +} + void GSMTool::doScanButton() diff --git a/noncore/unsupported/gsmtool/gsmtool.h b/noncore/unsupported/gsmtool/gsmtool.h index b8d9a86..b38ff88 100644 --- a/noncore/unsupported/gsmtool/gsmtool.h +++ b/noncore/unsupported/gsmtool/gsmtool.h @@ -7,2 +7,3 @@ #include <gsmlib/gsm_me_ta.h> +#include <gsmlib/gsm_sorted_sms_store.h> @@ -26,3 +27,7 @@ private slots: void doSelectedSMSChanged(QListViewItem *); - + void doSMSSendButton(); + void doSMSDeleteButton(); + void doNewSMSClearButton(); + void doNewSMSSaveButton(); + void doNewSMSSendButton(); private: @@ -33,3 +38,3 @@ private: gsmlib::MeTa *me; - gsmlib::SMSStoreRef sms_store; + gsmlib::SortedSMSStoreRef sms_store; diff --git a/noncore/unsupported/gsmtool/gsmtoolbase.ui b/noncore/unsupported/gsmtool/gsmtoolbase.ui index 2cca852..65e75ec 100644 --- a/noncore/unsupported/gsmtool/gsmtoolbase.ui +++ b/noncore/unsupported/gsmtool/gsmtoolbase.ui @@ -13,3 +13,3 @@ <y>0</y> - <width>371</width> + <width>404</width> <height>390</height> @@ -27,3 +27,3 @@ </property> - <vbox> + <grid> <property stdset="1"> @@ -36,3 +36,3 @@ </property> - <widget> + <widget row="0" column="0" > <class>QTabWidget</class> @@ -121,2 +121,6 @@ </property> + <property stdset="1"> + <name>duplicatesEnabled</name> + <bool>false</bool> + </property> </widget> @@ -748,3 +752,3 @@ <name>margin</name> - <number>-1</number> + <number>2</number> </property> @@ -752,5 +756,5 @@ <name>spacing</name> - <number>-1</number> + <number>1</number> </property> - <widget row="0" column="0" > + <widget row="0" column="0" rowspan="1" colspan="3" > <class>QLayoutWidget</class> @@ -832,3 +836,3 @@ </widget> - <widget row="1" column="0" > + <widget row="1" column="0" rowspan="1" colspan="3" > <class>QListView</class> @@ -875,21 +879,26 @@ </widget> - <widget row="2" column="0" > - <class>QLayoutWidget</class> + <widget row="3" column="0" rowspan="1" colspan="3" > + <class>QMultiLineEdit</class> <property stdset="1"> <name>name</name> - <cstring>Layout15</cstring> - </property> - <property> - <name>layoutMargin</name> + <cstring>SMSText</cstring> </property> - <hbox> <property stdset="1"> - <name>margin</name> - <number>0</number> + <name>enabled</name> + <bool>false</bool> </property> <property stdset="1"> - <name>spacing</name> + <name>hMargin</name> <number>1</number> </property> - <widget> + <property stdset="1"> + <name>wordWrap</name> + <enum>WidgetWidth</enum> + </property> + <property stdset="1"> + <name>readOnly</name> + <bool>true</bool> + </property> + </widget> + <widget row="2" column="0" > <class>QPushButton</class> @@ -904,3 +913,3 @@ </widget> - <widget> + <widget row="2" column="2" > <class>QPushButton</class> @@ -915,7 +924,49 @@ </widget> + <spacer row="2" column="1" > + <property> + <name>name</name> + <cstring>Spacer6_2</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </grid> + </widget> <widget> - <class>QPushButton</class> + <class>QWidget</class> <property stdset="1"> <name>name</name> - <cstring>SMSNewButton</cstring> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>New</string> + </attribute> + <grid> + <property stdset="1"> + <name>margin</name> + <number>2</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>1</number> + </property> + <widget row="0" column="0" rowspan="1" colspan="3" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSMessageLabel</cstring> </property> @@ -923,8 +974,32 @@ <name>text</name> - <string>New</string> + <string>Message:</string> </property> </widget> - </hbox> - </widget> <widget row="3" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSToLabel</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>To:</string> + </property> + </widget> + <widget row="3" column="1" rowspan="1" colspan="4" > + <class>QComboBox</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSToBox</cstring> + </property> + <property stdset="1"> + <name>editable</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>duplicatesEnabled</name> + <bool>false</bool> + </property> + </widget> + <widget row="1" column="0" rowspan="1" colspan="5" > <class>QMultiLineEdit</class> @@ -932,3 +1007,3 @@ <name>name</name> - <cstring>SMSText</cstring> + <cstring>NewSMSText</cstring> </property> @@ -936,3 +1011,3 @@ <name>enabled</name> - <bool>false</bool> + <bool>true</bool> </property> @@ -948,3 +1023,51 @@ <name>readOnly</name> - <bool>true</bool> + <bool>false</bool> + </property> + </widget> + <widget row="4" column="4" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSSendButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Send</string> + </property> + </widget> + <widget row="0" column="3" rowspan="1" colspan="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSStatusLabel</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string></string> + </property> + </widget> + <widget row="4" column="2" rowspan="1" colspan="2" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSSaveButton</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Save</string> + </property> + </widget> + <widget row="4" column="0" rowspan="1" colspan="2" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>NewSMSClearButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Clear</string> </property> @@ -954,3 +1077,3 @@ </widget> - </vbox> + </grid> </widget> |