summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.cpp51
-rw-r--r--noncore/unsupported/gsmtool/gsmtool.h1
-rw-r--r--noncore/unsupported/gsmtool/gsmtoolbase.ui44
3 files changed, 79 insertions, 17 deletions
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp
index c3f9482..8273461 100644
--- a/noncore/unsupported/gsmtool/gsmtool.cpp
+++ b/noncore/unsupported/gsmtool/gsmtool.cpp
@@ -6,6 +6,8 @@
#include <qtabwidget.h>
#include <qlistview.h>
#include <qtextbrowser.h>
+#include <qmultilineedit.h>
+
#include <termios.h>
#include <gsmlib/gsm_me_ta.h>
@@ -33,7 +35,7 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl )
connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged()));
connect(SMSStoreList, SIGNAL(activated(int)), this, SLOT(doSMSStoreChanged()));
connect(SMSViewType, SIGNAL(activated(int)), this, SLOT(doSMSTypeChanged()));
-
+ connect(SMSList, SIGNAL(selectionChanged(QListViewItem *)), this, SLOT(doSelectedSMSChanged(QListViewItem *)));
timerid = -1; // Is this not possible normally?
}
@@ -139,7 +141,9 @@ void GSMTool::doSMSStoreChanged()
{
const char *storename = SMSStoreList->currentText().ascii();
qDebug("Store Changed to '%s'", storename);
- try {
+ if (!strcmp(storename, "None")) {
+ sms_store = NULL;
+ } else try {
sms_store = me->getSMSStore(storename);
qDebug("got store of size %d", sms_store->size());
@@ -147,6 +151,8 @@ void GSMTool::doSMSStoreChanged()
sms_store = NULL;
qDebug("get store failed");
}
+
+ SMSList->setEnabled(!(sms_store == NULL));
doSMSTypeChanged();
}
@@ -156,6 +162,8 @@ void GSMTool::doSMSTypeChanged()
qDebug("direction %s\n", direction?"outgoing":"incoming");
SMSList->clear();
+ doSelectedSMSChanged(NULL);
+
if (sms_store == NULL)
return;
for (int i = 0; i < sms_store->size(); i++) {
@@ -168,16 +176,45 @@ void GSMTool::doSMSTypeChanged()
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());
+ // 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
+ char buf[3];
+ snprintf(buf, 3, "%d", i);
+ new QListViewItem(SMSList, message->address()._number.c_str(), message->serviceCentreTimestamp().toString().c_str(), buf);
+ }
}
}
+void GSMTool::doSelectedSMSChanged(QListViewItem *item)
+{
+ qDebug("message changed\n");
+
+ if (!item || sms_store == NULL) {
+ SMSText->setText("");
+ SMSText->setEnabled(FALSE);
+ SMSDeleteButton->setEnabled(FALSE);
+ SMSSendButton->setEnabled(FALSE);
+ return;
+ }
+ /* ARGH. This sucks. Surely there's an app-private pointer in the
+ QListViewItem that I've failed to notice?
+
+ SMSMessageRef message = *(SMSMessageRef*)item->private;
+ */
+ qDebug("item %p\n", item);
+
+ qDebug("text(2) is %s\n", item->text(2).ascii());
+ int index = atoi(item->text(2).ascii());
+ qDebug("index %d\n", index);
+ SMSMessageRef message = sms_store()[index].message();
+
+ SMSText->setText(message->userData().c_str());
+ SMSText->setEnabled(TRUE);
+ SMSDeleteButton->setEnabled(TRUE);
+ SMSSendButton->setEnabled(TRUE);
+
+}
void GSMTool::doScanButton()
{
qDebug("ScanButton");
diff --git a/noncore/unsupported/gsmtool/gsmtool.h b/noncore/unsupported/gsmtool/gsmtool.h
index 49387d9..b8d9a86 100644
--- a/noncore/unsupported/gsmtool/gsmtool.h
+++ b/noncore/unsupported/gsmtool/gsmtool.h
@@ -23,6 +23,7 @@ private slots:
void doTabChanged();
void doSMSStoreChanged();
void doSMSTypeChanged();
+ void doSelectedSMSChanged(QListViewItem *);
private:
static const speed_t baudrates[];
diff --git a/noncore/unsupported/gsmtool/gsmtoolbase.ui b/noncore/unsupported/gsmtool/gsmtoolbase.ui
index 340f26c..69480cd 100644
--- a/noncore/unsupported/gsmtool/gsmtoolbase.ui
+++ b/noncore/unsupported/gsmtool/gsmtoolbase.ui
@@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>309</width>
+ <width>371</width>
<height>390</height>
</rect>
</property>
@@ -666,6 +666,10 @@
<vsizetype>7</vsizetype>
</sizepolicy>
</property>
+ <property stdset="1">
+ <name>allColumnsShowFocus</name>
+ <bool>true</bool>
+ </property>
</widget>
<widget>
<class>QLayoutWidget</class>
@@ -739,7 +743,7 @@
<name>title</name>
<string>SMS</string>
</attribute>
- <vbox>
+ <grid>
<property stdset="1">
<name>margin</name>
<number>11</number>
@@ -748,7 +752,7 @@
<name>spacing</name>
<number>6</number>
</property>
- <widget>
+ <widget row="0" column="0" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
@@ -823,12 +827,12 @@
</widget>
</hbox>
</widget>
- <widget>
+ <widget row="1" column="0" >
<class>QListView</class>
<column>
<property>
<name>text</name>
- <string>Date</string>
+ <string>Number</string>
</property>
<property>
<name>clickable</name>
@@ -842,7 +846,7 @@
<column>
<property>
<name>text</name>
- <string>Number</string>
+ <string>Date</string>
</property>
<property>
<name>clickable</name>
@@ -857,8 +861,16 @@
<name>name</name>
<cstring>SMSList</cstring>
</property>
+ <property stdset="1">
+ <name>enabled</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>allColumnsShowFocus</name>
+ <bool>true</bool>
+ </property>
</widget>
- <widget>
+ <widget row="2" column="0" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
@@ -911,14 +923,26 @@
</widget>
</hbox>
</widget>
- <widget>
- <class>QTextBrowser</class>
+ <widget row="3" column="0" >
+ <class>QMultiLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>SMSText</cstring>
</property>
+ <property stdset="1">
+ <name>enabled</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>wordWrap</name>
+ <enum>WidgetWidth</enum>
+ </property>
+ <property stdset="1">
+ <name>readOnly</name>
+ <bool>true</bool>
+ </property>
</widget>
- </vbox>
+ </grid>
</widget>
</widget>
</vbox>