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
@@ -5,8 +5,10 @@
#include <qlabel.h>
#include <qtabwidget.h>
#include <qlistview.h>
#include <qtextbrowser.h>
+#include <qmultilineedit.h>
+
#include <termios.h>
#include <gsmlib/gsm_me_ta.h>
#include <gsmlib/gsm_unix_serial.h>
@@ -32,9 +34,9 @@ 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()));
-
+ connect(SMSList, SIGNAL(selectionChanged(QListViewItem *)), this, SLOT(doSelectedSMSChanged(QListViewItem *)));
timerid = -1; // Is this not possible normally?
}
/*
@@ -138,16 +140,20 @@ void GSMTool::timerEvent( QTimerEvent * )
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());
} catch (GsmException) {
sms_store = NULL;
qDebug("get store failed");
}
+
+ SMSList->setEnabled(!(sms_store == NULL));
doSMSTypeChanged();
}
void GSMTool::doSMSTypeChanged()
@@ -155,8 +161,10 @@ void GSMTool::doSMSTypeChanged()
int direction = SMSViewType->currentItem();
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++) {
qDebug("Message %d", i);
@@ -167,18 +175,47 @@ void GSMTool::doSMSTypeChanged()
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());
+ // 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
@@ -22,8 +22,9 @@ private slots:
void doScanButton();
void doTabChanged();
void doSMSStoreChanged();
void doSMSTypeChanged();
+ void doSelectedSMSChanged(QListViewItem *);
private:
static const speed_t baudrates[];
int devicelocked;
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
@@ -10,9 +10,9 @@
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>309</width>
+ <width>371</width>
<height>390</height>
</rect>
</property>
<property stdset="1">
@@ -665,8 +665,12 @@
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
</sizepolicy>
</property>
+ <property stdset="1">
+ <name>allColumnsShowFocus</name>
+ <bool>true</bool>
+ </property>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
@@ -738,18 +742,18 @@
<attribute>
<name>title</name>
<string>SMS</string>
</attribute>
- <vbox>
+ <grid>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
- <widget>
+ <widget row="0" column="0" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout6</cstring>
@@ -822,14 +826,14 @@
</property>
</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>
<bool>true</bool>
@@ -841,9 +845,9 @@
</column>
<column>
<property>
<name>text</name>
- <string>Number</string>
+ <string>Date</string>
</property>
<property>
<name>clickable</name>
<bool>true</bool>
@@ -856,10 +860,18 @@
<property stdset="1">
<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>
<cstring>Layout15</cstring>
@@ -910,16 +922,28 @@
</property>
</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>
</widget>