summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/bend/bend.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/noncore/unsupported/mail2/bend/bend.cpp b/noncore/unsupported/mail2/bend/bend.cpp
index 681aca2..e2ece2a 100644
--- a/noncore/unsupported/mail2/bend/bend.cpp
+++ b/noncore/unsupported/mail2/bend/bend.cpp
@@ -1,111 +1,124 @@
1#include <qlayout.h> 1#include <qlayout.h>
2#include <qpixmap.h> 2#include <qpixmap.h>
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qsound.h> 4#include <qsound.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdir.h> 6#include <qdir.h>
7 7
8#include <qpe/qcopenvelope_qws.h> 8#include <qpe/qcopenvelope_qws.h>
9#include <qpe/resource.h> 9#include <qpe/resource.h>
10#include <qpe/config.h> 10#include <qpe/config.h>
11 11
12#include <opie/odevice.h> 12#include <opie/odevice.h>
13 13
14#include "imapresponse.h" 14#include "imapresponse.h"
15#include "imaphandler.h" 15#include "imaphandler.h"
16#include "configfile.h" 16#include "configfile.h"
17#include "bend.h" 17#include "bend.h"
18 18
19using namespace Opie;
20
19BenD::BenD(QWidget *parent, const char *name, WFlags fl) 21BenD::BenD(QWidget *parent, const char *name, WFlags fl)
20 : QButton(parent, name, fl) 22 : QButton(parent, name, fl)
21{ 23{
22 _config = new Config("mail"); 24 _config = new Config("mail");
23 _config->setGroup("Settings"); 25 _config->setGroup("Settings");
24 26
25 QVBoxLayout *layout = new QVBoxLayout(this); 27 QVBoxLayout *layout = new QVBoxLayout(this);
26 layout->addItem(new QSpacerItem(0,0)); 28 layout->addItem(new QSpacerItem(0,0));
27 29
28 QLabel *pixmap = new QLabel(this); 30 QLabel *pixmap = new QLabel(this);
29 pixmap->setPixmap(Resource::loadPixmap("mail/mailchecker")); 31 pixmap->setPixmap(Resource::loadPixmap("mail/mailchecker"));
30 layout->addWidget(pixmap); 32 layout->addWidget(pixmap);
31 33
32 layout->addItem(new QSpacerItem(0,0)); 34 layout->addItem(new QSpacerItem(0,0));
33 35
34 hide(); 36 hide();
35 37
36 connect(this, SIGNAL(clicked()), SLOT(slotClicked())); 38 connect(this, SIGNAL(clicked()), SLOT(slotClicked()));
37 39
38 if (!_config->readBoolEntry("Disabled", false)) { 40 if (!_config->readBoolEntry("Disabled", false)) {
39 _intervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; 41 _intervalMs = _config->readNumEntry("CheckEvery", 5) * 60000;
40 _intervalTimer = new QTimer(); 42 _intervalTimer = new QTimer();
41 _intervalTimer->start(_intervalMs); 43 _intervalTimer->start(_intervalMs);
42 connect(_intervalTimer, SIGNAL(timeout()), SLOT(slotCheck())); 44 connect(_intervalTimer, SIGNAL(timeout()), SLOT(slotCheck()));
43 45
44 QTimer::singleShot(0, this, SLOT(slotCheck())); 46 QTimer::singleShot(0, this, SLOT(slotCheck()));
45 } 47 }
46} 48}
47 49
48void BenD::drawButton(QPainter *) { } 50void BenD::drawButton(QPainter *) { }
49void BenD::drawButtonText(QPainter *) { } 51void BenD::drawButtonText(QPainter *) { }
50 52
51void BenD::slotClicked() 53void BenD::slotClicked()
52{ 54{
53 QCopEnvelope e("QPE/System", "execute(QString)"); 55 QCopEnvelope e("QPE/System", "execute(QString)");
54 e << QString("mail"); 56 e << QString("mail");
55 57
56 ODevice *device = ODevice::inst(); 58 ODevice *device = ODevice::inst();
57 if (device->led(1) == OLED_BlinkSlow) 59 if ( !device-> ledList ( ). isEmpty ( )) {
58 device->setLed(1, OLED_Off); 60 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0];
61
62 device->setLedState(led, Led_Off);
63 }
59} 64}
60 65
61void BenD::slotCheck() 66void BenD::slotCheck()
62{ 67{
63 // Check wether the check interval has been changed. 68 // Check wether the check interval has been changed.
64 int newIntervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; 69 int newIntervalMs = _config->readNumEntry("CheckEvery", 5) * 60000;
65 if (newIntervalMs != _intervalMs) { 70 if (newIntervalMs != _intervalMs) {
66 _intervalTimer->changeInterval(newIntervalMs); 71 _intervalTimer->changeInterval(newIntervalMs);
67 _intervalMs = newIntervalMs; 72 _intervalMs = newIntervalMs;
68#ifndef QT_NO_DEBUG 73#ifndef QT_NO_DEBUG
69 qWarning("BenD: Detected interval change"); 74 qWarning("BenD: Detected interval change");
70#endif 75#endif
71 } 76 }
72 77
73 QValueList<Account> acList = ConfigFile::getAccounts(); 78 QValueList<Account> acList = ConfigFile::getAccounts();
74 QValueList<Account>::Iterator ot; 79 QValueList<Account>::Iterator ot;
75 for (ot = acList.begin(); ot != acList.end(); ot++) { 80 for (ot = acList.begin(); ot != acList.end(); ot++) {
76 if (!((*ot).imapServer().isEmpty() || 81 if (!((*ot).imapServer().isEmpty() ||
77 (*ot).imapPort().isEmpty() || 82 (*ot).imapPort().isEmpty() ||
78 (*ot).user().isEmpty() || 83 (*ot).user().isEmpty() ||
79 (*ot).pass().isEmpty())) { 84 (*ot).pass().isEmpty())) {
80 if (!((*ot).imapSsl() && 85 if (!((*ot).imapSsl() &&
81 (*ot).imapSslPort().isEmpty())) { 86 (*ot).imapSslPort().isEmpty())) {
82 IMAPHandler *handler = new IMAPHandler(*ot); 87 IMAPHandler *handler = new IMAPHandler(*ot);
83 handler->iStatus("INBOX", "RECENT"); 88 handler->iStatus("INBOX", "RECENT");
84 connect(handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPStatus(IMAPResponse &))); 89 connect(handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPStatus(IMAPResponse &)));
85 } 90 }
86 } 91 }
87 } 92 }
88} 93}
89 94
90void BenD::slotIMAPStatus(IMAPResponse &response) 95void BenD::slotIMAPStatus(IMAPResponse &response)
91{ 96{
92 disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPStatus(IMAPResponse &))); 97 disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPStatus(IMAPResponse &)));
93 98
94 if (response.statusResponse().status() == IMAPResponseEnums::OK) { 99 if (response.statusResponse().status() == IMAPResponseEnums::OK) {
95 if (response.STATUS()[0].recent().toInt() > 0) { 100 if (response.STATUS()[0].recent().toInt() > 0) {
96 ODevice *device = ODevice::inst(); 101 ODevice *device = ODevice::inst();
97 if (isHidden()) show(); 102 if (isHidden()) show();
98 if (_config->readBoolEntry("BlinkLed", true)) 103 if (_config->readBoolEntry("BlinkLed", true)) {
99 device->setLed(1, OLED_BlinkSlow); 104 if ( !device-> ledList ( ). isEmpty ( )) {
105 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0];
106
107 device->setLedState(led, device-> ledStateList ( led ). contains ( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On );
108 }
109 }
100 if (_config->readBoolEntry("PlaySound", false)) 110 if (_config->readBoolEntry("PlaySound", false))
101 device->alarmSound(); 111 device->alarmSound();
102 } else { 112 } else {
103 ODevice *device = ODevice::inst(); 113 ODevice *device = ODevice::inst();
104 if (!isHidden()) hide(); 114 if (!isHidden()) hide();
105 if (device->led(1) == OLED_BlinkSlow) 115 if ( !device-> ledList ( ). isEmpty ( )) {
106 device->setLed(1, OLED_Off); 116 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0];
117
118 device->setLedState(led, Led_Off);
119 }
107 } 120 }
108 response.imapHandler()->iLogout(); 121 response.imapHandler()->iLogout();
109 } else qWarning("BenD: WARNING: Couldn't retrieve INBOX status."); 122 } else qWarning("BenD: WARNING: Couldn't retrieve INBOX status.");
110} 123}
111 124