-rw-r--r-- | noncore/unsupported/mail2/bend/bend.cpp | 11 | ||||
-rw-r--r-- | noncore/unsupported/mail2/bend/bend.h | 2 | ||||
-rw-r--r-- | noncore/unsupported/mail2/configdiagbase.ui | 2 |
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 @@ -63,290 +63,290 @@ </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget row="1" column="1" > <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>accountEdit</cstring> </property> <property stdset="1"> <name>text</name> <string>Edit</string> </property> </widget> <widget row="1" column="2" > <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>accountDelete</cstring> </property> <property stdset="1"> <name>text</name> <string>Delete</string> </property> </widget> <widget row="0" column="0" rowspan="1" colspan="3" > <class>QListView</class> <column> <property> <name>text</name> <string>[Hidden]</string> </property> <property> <name>clickable</name> <bool>true</bool> </property> <property> <name>resizeable</name> <bool>true</bool> </property> </column> <property stdset="1"> <name>name</name> <cstring>accountList</cstring> </property> </widget> <widget row="1" column="0" > <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>accountNew</cstring> </property> <property stdset="1"> <name>text</name> <string>New</string> </property> </widget> </grid> </widget> <widget> <class>QWidget</class> <property stdset="1"> <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><b>Check&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><p><b>Mail version %1</b><hr> Sponsored and Programmed by LISAsystems<br> 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> |