summaryrefslogtreecommitdiff
path: root/noncore/net/mail/taskbarapplet/mailapplet.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/taskbarapplet/mailapplet.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp
new file mode 100644
index 0000000..f3550c7
--- a/dev/null
+++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp
@@ -0,0 +1,75 @@
1#include <qlayout.h>
2#include <qpixmap.h>
3#include <qlabel.h>
4#include <qsound.h>
5#include <qtimer.h>
6#include <qdir.h>
7
8#include <qpe/qcopenvelope_qws.h>
9#include <qpe/resource.h>
10#include <qpe/config.h>
11
12#include <opie/odevice.h>
13
14#include "mailapplet.h"
15
16using namespace Opie;
17
18MailApplet::MailApplet( QWidget *parent, const char *name, WFlags fl )
19 : QButton( parent, name, fl ) {
20
21 m_config = new Config( "mail" );
22 m_config->setGroup( "Applet" );
23
24 QVBoxLayout *layout = new QVBoxLayout( this );
25 layout->addItem( new QSpacerItem( 0,0 ) );
26
27 QLabel *pixmap = new QLabel( this );
28 pixmap->setPixmap( Resource::loadPixmap( "opiemail/mailchecker" ) );
29 layout->addWidget( pixmap );
30
31 layout->addItem( new QSpacerItem( 0,0 ) );
32
33 hide();
34
35 connect( this, SIGNAL( clicked() ), SLOT( slotClicked() ) );
36
37 if ( !m_config->readBoolEntry( "Disabled", false ) ) {
38 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
39 m_intervalTimer = new QTimer();
40 m_intervalTimer->start( m_intervalMs );
41 connect( m_intervalTimer, SIGNAL(timeout() ), SLOT( slotCheck() ) );
42
43 QTimer::singleShot( 0, this, SLOT( slotCheck() ) );
44 }
45}
46
47void MailApplet::drawButton(QPainter *) { }
48void MailApplet::drawButtonText(QPainter *) { }
49
50void MailApplet::slotClicked() {
51 qDebug( " CLICKED" );
52 QCopEnvelope e( "QPE/System", "execute(QString)" );
53 e << QString( "opiemail" );
54
55 ODevice *device = ODevice::inst();
56 if ( !device-> ledList ( ). isEmpty ( ) ) {
57 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0];
58
59 device->setLedState( led, Led_Off );
60 }
61}
62
63void MailApplet::slotCheck() {
64 // Check wether the check interval has been changed.
65 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
66 if ( newIntervalMs != m_intervalMs ) {
67 m_intervalTimer->changeInterval( newIntervalMs );
68 m_intervalMs = newIntervalMs;
69 }
70
71 // go trough accounts and check here
72 // depending on result show or hide
73 // also trigger qcop call and save status to config
74 // get led to blink
75}