summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/mail2/bend/bend.cpp11
-rw-r--r--noncore/unsupported/mail2/bend/bend.h2
-rw-r--r--noncore/unsupported/mail2/configdiagbase.ui2
3 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 @@
#include <qlayout.h>
#include <qpixmap.h>
#include <qlabel.h>
+#include <qsound.h>
#include <qtimer.h>
#include <qdir.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/resource.h>
#include <qpe/config.h>
#include <stdlib.h>
#include "configfile.h"
#include "imapresponse.h"
#include "imaphandler.h"
#include "zaurusstuff.h"
#include "bend.h"
BenD::BenD(QWidget *parent, const char *name, WFlags fl)
: QButton(parent, name, fl)
{
+ _zaurus = false;
+ if (QFile("/dev/sharp_buz").exists()) _zaurus = true;
+
_config = new Config("mail");
_config->setGroup("Settings");
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addItem(new QSpacerItem(0,0));
QLabel *pixmap = new QLabel(this);
pixmap->setPixmap(Resource::loadPixmap("mail/mailchecker"));
layout->addWidget(pixmap);
layout->addItem(new QSpacerItem(0,0));
hide();
connect(this, SIGNAL(clicked()), SLOT(slotClicked()));
if (!_config->readBoolEntry("Disabled", false)) {
_intervalMs = _config->readNumEntry("CheckEvery", 5) * 60000;
_intervalTimer = new QTimer();
_intervalTimer->start(_intervalMs);
connect(_intervalTimer, SIGNAL(timeout()), SLOT(slotCheck()));
QTimer::singleShot(0, this, SLOT(slotCheck()));
}
}
void BenD::drawButton(QPainter *) { }
void BenD::drawButtonText(QPainter *) { }
void BenD::slotClicked()
{
QCopEnvelope e("QPE/System", "execute(QString)");
e << QString("mail");
if (_ledOn) {
ZaurusStuff::blinkLedOff();
_ledOn = false;
}
}
void BenD::slotCheck()
{
// Check wether the check interval has been changed.
int newIntervalMs = _config->readNumEntry("CheckEvery", 5) * 60000;
if (newIntervalMs != _intervalMs) {
_intervalTimer->changeInterval(newIntervalMs);
_intervalMs = newIntervalMs;
+#ifndef QT_NO_DEBUG
+ qWarning("BenD: Detected interval change");
+#endif
}
QValueList<Account> acList = ConfigFile::getAccounts();
QValueList<Account>::Iterator ot;
for (ot = acList.begin(); ot != acList.end(); ot++) {
if (!((*ot).imapServer().isEmpty() ||
(*ot).imapPort().isEmpty() ||
(*ot).user().isEmpty() ||
(*ot).pass().isEmpty())) {
if (!((*ot).imapSsl() &&
(*ot).imapSslPort().isEmpty())) {
IMAPHandler *handler = new IMAPHandler(*ot);
handler->iStatus("INBOX", "RECENT");
connect(handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPStatus(IMAPResponse &)));
}
}
}
}
void BenD::slotIMAPStatus(IMAPResponse &response)
{
disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPStatus(IMAPResponse &)));
if (response.statusResponse().status() == IMAPResponseEnums::OK) {
if (response.STATUS()[0].recent().toInt() > 0) {
if (isHidden()) show();
if (_config->readBoolEntry("BlinkLed", true))
ZaurusStuff::blinkLedOn();
if (_config->readBoolEntry("PlaySound", false)) {
+ if (_zaurus) {
ZaurusStuff::buzzerOn();
QTimer::singleShot(3000, this, SLOT(slotSoundOff()));
+ } else {
+ QSound::play(Resource::findSound("mail/newmail"));
+ }
}
} else {
if (!isHidden()) hide();
if (!_ledOn) {
ZaurusStuff::blinkLedOff();
_ledOn = false;
}
}
response.imapHandler()->iLogout();
} else qWarning("BenD: WARNING: Couldn't retrieve INBOX status.");
}
void BenD::slotSoundOff()
{
ZaurusStuff::buzzerOff();
}
diff --git a/noncore/unsupported/mail2/bend/bend.h b/noncore/unsupported/mail2/bend/bend.h
index cf50bc5..7972929 100644
--- a/noncore/unsupported/mail2/bend/bend.h
+++ b/noncore/unsupported/mail2/bend/bend.h
@@ -1,38 +1,38 @@
#ifndef BEND_H
#define BEND_H
#include <qbutton.h>
class Config;
class QTimer;
class IMAPResponse;
class BenD : public QButton
{
Q_OBJECT
public:
BenD(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
protected:
void drawButton(QPainter *);
void drawButtonText(QPainter *);
void gotNewMail();
QString rot13(const QString &input);
protected slots:
void slotCheck();
void slotClicked();
void slotSoundOff();
void slotIMAPStatus(IMAPResponse &response);
private:
Config *_config;
QTimer *_intervalTimer;
int _intervalMs;
- bool _ledOn;
+ bool _zaurus, _ledOn;
};
#endif
diff --git a/noncore/unsupported/mail2/configdiagbase.ui b/noncore/unsupported/mail2/configdiagbase.ui
index 754458a..dfe0db8 100644
--- a/noncore/unsupported/mail2/configdiagbase.ui
+++ b/noncore/unsupported/mail2/configdiagbase.ui
@@ -127,226 +127,226 @@
<name>name</name>
<cstring>tab</cstring>
</property>
<attribute>
<name>title</name>
<string>General</string>
</attribute>
<grid>
<property stdset="1">
<name>margin</name>
<number>4</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>3</number>
</property>
<spacer row="1" column="0" >
<property>
<name>name</name>
<cstring>Spacer5</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget row="0" column="0" >
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>notificationGroup</cstring>
</property>
<property stdset="1">
<name>title</name>
<string>Mail notification</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<grid>
<property stdset="1">
<name>margin</name>
<number>4</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>3</number>
</property>
<widget row="1" column="0" >
<class>QFrame</class>
<property stdset="1">
<name>name</name>
<cstring>Frame3</cstring>
</property>
<property stdset="1">
<name>frameShape</name>
<enum>NoFrame</enum>
</property>
<property stdset="1">
<name>frameShadow</name>
<enum>Raised</enum>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<grid>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>3</number>
</property>
<widget row="1" column="0" rowspan="1" colspan="3" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>blinkLed</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>Blink LED (Zaurus only)</string>
</property>
</widget>
<widget row="2" column="2" >
<class>QToolButton</class>
<property stdset="1">
<name>name</name>
<cstring>testbutton</cstring>
</property>
<property stdset="1">
<name>text</name>
<string> Test </string>
</property>
</widget>
<widget row="0" column="0" rowspan="1" colspan="3" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>playSound</cstring>
</property>
<property stdset="1">
<name>text</name>
- <string>Play sound (Zaurus only)</string>
+ <string>Play sound</string>
</property>
</widget>
<widget row="2" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&lt;b&gt;Check&amp;nbsp;every</string>
</property>
</widget>
<widget row="2" column="1" >
<class>QSpinBox</class>
<property stdset="1">
<name>name</name>
<cstring>checkDelay</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>suffix</name>
<string> min</string>
</property>
<property stdset="1">
<name>maxValue</name>
<number>30</number>
</property>
<property stdset="1">
<name>minValue</name>
<number>1</number>
</property>
<property stdset="1">
<name>value</name>
<number>1</number>
</property>
</widget>
</grid>
</widget>
<widget row="0" column="0" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>disabled</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Disable mail notification</string>
</property>
</widget>
</grid>
</widget>
<widget row="2" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>disclaimer</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&lt;p&gt;&lt;b&gt;Mail version %1&lt;/b&gt;&lt;hr&gt;
Sponsored and Programmed by LISAsystems&lt;br&gt;
Visit http://www.lisa.de/ for Information.
</string>
</property>
</widget>
</grid>
</widget>
</widget>
</grid>
</widget>
<connections>
<connection>
<sender>disabled</sender>
<signal>toggled(bool)</signal>
<receiver>Frame3</receiver>
<slot>setDisabled(bool)</slot>
</connection>
</connections>
<tabstops>
<tabstop>TabWidget2</tabstop>
<tabstop>accountList</tabstop>
<tabstop>accountNew</tabstop>
<tabstop>accountEdit</tabstop>
<tabstop>accountDelete</tabstop>
<tabstop>disabled</tabstop>
<tabstop>playSound</tabstop>
<tabstop>blinkLed</tabstop>
<tabstop>checkDelay</tabstop>
</tabstops>
</UI>