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