Diffstat (limited to 'noncore/unsupported/gsmtool/gsmtool.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/gsmtool/gsmtool.cpp | 129 |
1 files changed, 120 insertions, 9 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 | |||
@@ -32,4 +32,9 @@ GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) | |||
32 | /* FIXME: Persistent settings for device/baudrate */ | 32 | /* FIXME: Persistent settings for device/baudrate */ |
33 | connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); | 33 | connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); |
34 | connect(SMSDeleteButton, SIGNAL(clicked()), this, SLOT(doSMSDeleteButton())); | ||
35 | connect(SMSSendButton, SIGNAL(clicked()), this, SLOT(doSMSSendButton())); | ||
36 | connect(NewSMSClearButton, SIGNAL(clicked()), this, SLOT(doNewSMSClearButton())); | ||
37 | connect(NewSMSSaveButton, SIGNAL(clicked()), this, SLOT(doNewSMSSaveButton())); | ||
38 | connect(NewSMSSendButton, SIGNAL(clicked()), this, SLOT(doNewSMSSendButton())); | ||
34 | connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); | 39 | connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); |
35 | connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged())); | 40 | connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged())); |
@@ -70,4 +75,5 @@ void GSMTool::setConnected( bool conn ) | |||
70 | TabWidget2->setTabEnabled(tab_2, conn); | 75 | TabWidget2->setTabEnabled(tab_2, conn); |
71 | TabWidget2->setTabEnabled(tab_3, conn); | 76 | TabWidget2->setTabEnabled(tab_3, conn); |
77 | TabWidget2->setTabEnabled(tab_4, conn); | ||
72 | MfrLabel->setEnabled(conn); | 78 | MfrLabel->setEnabled(conn); |
73 | MfrText->setEnabled(conn); | 79 | MfrText->setEnabled(conn); |
@@ -145,5 +151,6 @@ void GSMTool::doSMSStoreChanged() | |||
145 | sms_store = NULL; | 151 | sms_store = NULL; |
146 | } else try { | 152 | } else try { |
147 | sms_store = me->getSMSStore(storename); | 153 | sms_store = new SortedSMSStore(me->getSMSStore(storename)); |
154 | sms_store->setSortOrder(ByIndex); | ||
148 | 155 | ||
149 | qDebug("got store of size %d", sms_store->size()); | 156 | qDebug("got store of size %d", sms_store->size()); |
@@ -154,4 +161,5 @@ void GSMTool::doSMSStoreChanged() | |||
154 | 161 | ||
155 | SMSList->setEnabled(!(sms_store == NULL)); | 162 | SMSList->setEnabled(!(sms_store == NULL)); |
163 | NewSMSSaveButton->setEnabled(!(sms_store == NULL)); | ||
156 | doSMSTypeChanged(); | 164 | doSMSTypeChanged(); |
157 | } | 165 | } |
@@ -161,4 +169,8 @@ void GSMTool::doSMSTypeChanged() | |||
161 | int direction = SMSViewType->currentItem(); | 169 | int direction = SMSViewType->currentItem(); |
162 | qDebug("direction %s\n", direction?"outgoing":"incoming"); | 170 | qDebug("direction %s\n", direction?"outgoing":"incoming"); |
171 | if (direction) | ||
172 | SMSSendButton->setText("Send"); | ||
173 | else | ||
174 | SMSSendButton->setText("Reply"); | ||
163 | 175 | ||
164 | SMSList->clear(); | 176 | SMSList->clear(); |
@@ -167,12 +179,13 @@ void GSMTool::doSMSTypeChanged() | |||
167 | if (sms_store == NULL) | 179 | if (sms_store == NULL) |
168 | return; | 180 | return; |
169 | for (int i = 0; i < sms_store->size(); i++) { | 181 | for (SortedSMSStore::iterator e = sms_store->begin(); |
170 | qDebug("Message %d", i); | 182 | e != sms_store->end(); e++) { |
171 | qDebug("Is%sempty", sms_store()[i].empty()?" ":" not "); | 183 | // qDebug("Message %d", i); |
172 | if (sms_store()[i].empty()) | 184 | qDebug("Is%sempty", e->empty()?" ":" not "); |
185 | if (e->empty()) | ||
173 | continue; | 186 | continue; |
174 | 187 | ||
175 | qDebug("Status %d", sms_store()[i].status()); | 188 | qDebug("Status %d", e->status()); |
176 | SMSMessageRef message = sms_store()[i].message(); | 189 | SMSMessageRef message = e->message(); |
177 | qDebug("Got message."); | 190 | qDebug("Got message."); |
178 | 191 | ||
@@ -181,5 +194,5 @@ void GSMTool::doSMSTypeChanged() | |||
181 | qDebug("yes\n"); | 194 | qDebug("yes\n"); |
182 | char buf[3]; | 195 | char buf[3]; |
183 | snprintf(buf, 3, "%d", i); | 196 | snprintf(buf, 3, "%d", e->index()); |
184 | new QListViewItem(SMSList, message->address()._number.c_str(), message->serviceCentreTimestamp().toString().c_str(), buf); | 197 | new QListViewItem(SMSList, message->address()._number.c_str(), message->serviceCentreTimestamp().toString().c_str(), buf); |
185 | } | 198 | } |
@@ -208,5 +221,5 @@ void GSMTool::doSelectedSMSChanged(QListViewItem *item) | |||
208 | int index = atoi(item->text(2).ascii()); | 221 | int index = atoi(item->text(2).ascii()); |
209 | qDebug("index %d\n", index); | 222 | qDebug("index %d\n", index); |
210 | SMSMessageRef message = sms_store()[index].message(); | 223 | SMSMessageRef message = sms_store->find(index)->message(); |
211 | 224 | ||
212 | SMSText->setText(message->userData().c_str()); | 225 | SMSText->setText(message->userData().c_str()); |
@@ -216,4 +229,102 @@ void GSMTool::doSelectedSMSChanged(QListViewItem *item) | |||
216 | 229 | ||
217 | } | 230 | } |
231 | |||
232 | void GSMTool::doSMSSendButton() | ||
233 | { | ||
234 | qDebug("SMSSendButton"); | ||
235 | |||
236 | QListViewItem *item = SMSList->currentItem(); | ||
237 | if (!item) | ||
238 | return; | ||
239 | |||
240 | int index = atoi(item->text(2).ascii()); | ||
241 | qDebug("index %d\n", index); | ||
242 | |||
243 | int direction = SMSViewType->currentItem(); | ||
244 | qDebug("direction %s\n", direction?"outgoing":"incoming"); | ||
245 | |||
246 | SMSMessageRef message = sms_store->find(index)->message(); | ||
247 | |||
248 | if (direction) | ||
249 | NewSMSText->setText(message->userData().c_str()); | ||
250 | else | ||
251 | NewSMSText->setText(""); | ||
252 | NewSMSToBox->insertItem(message->address()._number.c_str(), 0); | ||
253 | TabWidget2->setCurrentPage(3); | ||
254 | |||
255 | } | ||
256 | |||
257 | void GSMTool::doNewSMSClearButton() | ||
258 | { | ||
259 | NewSMSText->setText(""); | ||
260 | } | ||
261 | |||
262 | void GSMTool::doNewSMSSaveButton() | ||
263 | { | ||
264 | qDebug("NewSMSSaveButton"); | ||
265 | const char *msgtext = strdup(NewSMSText->text().local8Bit()); | ||
266 | const char *dest = NewSMSToBox->currentText().ascii(); | ||
267 | |||
268 | NewSMSStatusLabel->setText("Sending..."); | ||
269 | me->setMessageService(1); | ||
270 | |||
271 | qDebug("NewSMSSendButton: '%s' to '%s'", msgtext, dest); | ||
272 | |||
273 | SMSMessageRef m = new SMSSubmitMessage (msgtext, dest); | ||
274 | sms_store->insert(m); | ||
275 | free((void *)msgtext); | ||
276 | |||
277 | } | ||
278 | void GSMTool::doNewSMSSendButton() | ||
279 | { | ||
280 | const char *msgtext = strdup(NewSMSText->text().local8Bit()); | ||
281 | const char *dest = NewSMSToBox->currentText().ascii(); | ||
282 | |||
283 | NewSMSStatusLabel->setText("Sending..."); | ||
284 | me->setMessageService(1); | ||
285 | |||
286 | qDebug("NewSMSSendButton: '%s' to '%s'", msgtext, dest); | ||
287 | |||
288 | SMSSubmitMessage m(msgtext, dest); | ||
289 | try { | ||
290 | Ref<SMSMessage> ackPDU; | ||
291 | m.setAt(new GsmAt(*me)); | ||
292 | m.send(ackPDU); | ||
293 | |||
294 | // print acknowledgement if available | ||
295 | if (! ackPDU.isnull()) | ||
296 | cout << ackPDU->toString(); | ||
297 | NewSMSStatusLabel->setText("Message sent."); | ||
298 | } catch (GsmException &ge) { | ||
299 | NewSMSStatusLabel->setText("Failed."); | ||
300 | qDebug(ge.what()); | ||
301 | } | ||
302 | free((void *)msgtext); | ||
303 | |||
304 | |||
305 | } | ||
306 | |||
307 | |||
308 | void GSMTool::doSMSDeleteButton() | ||
309 | { | ||
310 | QListViewItem *item = SMSList->currentItem(); | ||
311 | if (!item) | ||
312 | return; | ||
313 | |||
314 | int index = atoi(item->text(2).ascii()); | ||
315 | qDebug("delete SMS with index %d\n", index); | ||
316 | |||
317 | |||
318 | |||
319 | SortedSMSStore::iterator e = sms_store->find(index); | ||
320 | |||
321 | if (e != sms_store->end()) { | ||
322 | qDebug("message is %s\n", e->message()->userData().c_str()); | ||
323 | sms_store->erase(e); | ||
324 | |||
325 | } | ||
326 | doSMSTypeChanged(); | ||
327 | } | ||
328 | |||
218 | void GSMTool::doScanButton() | 329 | void GSMTool::doScanButton() |
219 | { | 330 | { |