summaryrefslogtreecommitdiff
authorharlekin <harlekin>2004-01-05 17:42:58 (UTC)
committer harlekin <harlekin>2004-01-05 17:42:58 (UTC)
commit3804209658d051d197526a28561bbd2e31b6f439 (patch) (unidiff)
treea584208303908ca31f6ab039ac00e9fe6fcd606a
parent642fd965cca78fe4398cbe12afcd15cd2f2257ad (diff)
downloadopie-3804209658d051d197526a28561bbd2e31b6f439.zip
opie-3804209658d051d197526a28561bbd2e31b6f439.tar.gz
opie-3804209658d051d197526a28561bbd2e31b6f439.tar.bz2
inherit from qwidget instead of qbutton
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.cpp71
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.h9
2 files changed, 41 insertions, 39 deletions
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp
index 31d5bfe..5d98783 100644
--- a/noncore/net/mail/taskbarapplet/mailapplet.cpp
+++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp
@@ -1,126 +1,127 @@
1#include <qlayout.h> 1#include <qpainter.h>
2#include <qpixmap.h>
3#include <qlabel.h>
4#include <qsound.h>
5#include <qtimer.h> 2#include <qtimer.h>
6#include <qdir.h>
7 3
8#include <qpe/qcopenvelope_qws.h> 4#include <qpe/qcopenvelope_qws.h>
9#include <qpe/resource.h> 5#include <qpe/resource.h>
10#include <qpe/config.h> 6#include <qpe/config.h>
7#include <qpe/applnk.h>
11 8
12#include <opie/odevice.h> 9#include <opie/odevice.h>
13#include <qlist.h>
14 10
15#include <libmailwrapper/settings.h> 11#include <libmailwrapper/settings.h>
16 12
17#include "mailapplet.h" 13#include "mailapplet.h"
18 14
19using namespace Opie; 15using namespace Opie;
20 16
21MailApplet::MailApplet( QWidget *parent, const char *name, WFlags fl ) 17MailApplet::MailApplet( QWidget *parent )
22 : QButton( parent, name, fl ) { 18 : QWidget( parent ) {
23 19
24 m_config = new Config( "mail" ); 20 m_config = new Config( "mail" );
25 m_config->setGroup( "Applet" ); 21 m_config->setGroup( "Applet" );
26 22
27 QVBoxLayout *layout = new QVBoxLayout( this ); 23 setFixedWidth( AppLnk::smallIconSize() );
28 layout->addItem( new QSpacerItem( 0,0 ) ); 24 setFixedHeight( AppLnk::smallIconSize() );
29
30 QLabel *pixmap = new QLabel( this );
31 pixmap->setPixmap( Resource::loadPixmap( "mail/mailchecker" ) );
32 layout->addWidget( pixmap );
33
34 layout->addItem( new QSpacerItem( 0,0 ) );
35 25
36 hide(); 26 hide();
37 27
38 m_statusMail = 0; 28 m_newMails = 0;
39 29 m_statusMail = 0l;
40 connect( this, SIGNAL( clicked() ), SLOT( slotClicked() ) );
41 30
42 if ( !m_config->readBoolEntry( "Disabled", false ) ) { 31 if ( !m_config->readBoolEntry( "Disabled", false ) ) {
43 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
44 m_intervalTimer = new QTimer();
45 m_intervalTimer->start( m_intervalMs );
46 connect( m_intervalTimer, SIGNAL(timeout() ), SLOT( slotCheck() ) );
47
48 // delay 5 sec until the whole mail backend gets started .-) 32 // delay 5 sec until the whole mail backend gets started .-)
49 QTimer::singleShot( 5000, this, SLOT( startup() ) ); 33 QTimer::singleShot( 5000, this, SLOT( startup() ) );
50 } 34 }
35 repaint( true );
51} 36}
52 37
38
53MailApplet::~MailApplet() { 39MailApplet::~MailApplet() {
54 if (m_statusMail) delete m_statusMail; 40 if (m_statusMail) delete m_statusMail;
41 if (m_config) delete m_config;
55} 42}
56 43
57void MailApplet::drawButton(QPainter *) { } 44void MailApplet::paintEvent( QPaintEvent* ) {
58void MailApplet::drawButtonText(QPainter *) { } 45 QPainter p(this);
46 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/mailchecker" ) );
47 QFont f( "Fixed", AppLnk::smallIconSize() );
48 QFontMetrics fm( f );
49 p.setFont( f );
50 p.drawText( AppLnk::smallIconSize()/2, AppLnk::smallIconSize()/2, QString::number( m_newMails ) );
51 return;
52
53}
54
55void MailApplet::mouseReleaseEvent( QMouseEvent* e) {
56 slotClicked();
57}
59 58
60void MailApplet::slotClicked() { 59void MailApplet::slotClicked() {
61 qDebug( " CLICKED" ); 60 qDebug( " CLICKED" );
62 QCopEnvelope e( "QPE/System", "execute(QString)" ); 61 QCopEnvelope e( "QPE/System", "execute(QString)" );
63 e << QString( "opiemail" ); 62 e << QString( "opiemail" );
64 63
65 ODevice *device = ODevice::inst(); 64 ODevice *device = ODevice::inst();
66 if ( !device-> ledList ( ). isEmpty ( ) ) { 65 if ( !device-> ledList ( ). isEmpty ( ) ) {
67 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; 66 OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0];
68 67
69 device->setLedState( led, Led_Off ); 68 device->setLedState( led, Led_Off );
70 } 69 }
71 70
72 // m_statusMails->reset_status(); 71 // m_statusMails->reset_status();
73} 72}
74 73
75void MailApplet::startup() { 74void MailApplet::startup() {
76 Settings *settings = new Settings(); 75 Settings *settings = new Settings();
77 QList<Account> ma = settings->getAccounts(); 76 QList<Account> ma = settings->getAccounts();
78 StatusMail m_statusMail = StatusMail( ma ); 77 StatusMail m_statusMail = StatusMail( ma );
79 delete settings; 78 delete settings;
79
80 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
81 m_intervalTimer = new QTimer();
82 m_intervalTimer->start( m_intervalMs );
83 connect( m_intervalTimer, SIGNAL(timeout() ), this, SLOT( slotCheck() ) );
84
80} 85}
81 86
82void MailApplet::slotCheck() { 87void MailApplet::slotCheck() {
83 // Check wether the check interval has been changed. 88 // Check wether the check interval has been changed.
84 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 89 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
85 if ( newIntervalMs != m_intervalMs ) { 90 if ( newIntervalMs != m_intervalMs ) {
86 m_intervalTimer->changeInterval( newIntervalMs ); 91 m_intervalTimer->changeInterval( newIntervalMs );
87 m_intervalMs = newIntervalMs; 92 m_intervalMs = newIntervalMs;
88 } 93 }
89 94
90 95
91 folderStat stat; 96 folderStat stat;
92 m_statusMail->check_current_stat( stat ); 97 m_statusMail->check_current_stat( stat );
93 98 m_newMails = stat.message_unseen;
94 qDebug( QString( "test %1" ).arg( stat.message_unseen ) ); 99 qDebug( QString( "test %1" ).arg( stat.message_unseen ) );
95 if ( stat.message_unseen > 0 ) { 100 if ( m_newMails > 0 ) {
96 ODevice *device = ODevice::inst(); 101 ODevice *device = ODevice::inst();
97 if ( isHidden() ) show(); 102 if ( isHidden() ) show();
98 if ( m_config->readBoolEntry( "BlinkLed", true ) ) { 103 if ( m_config->readBoolEntry( "BlinkLed", true ) ) {
99 if ( !device-> ledList ( ).isEmpty( ) ) { 104 if ( !device-> ledList ( ).isEmpty( ) ) {
100 OLed led = ( device->ledList( ).contains( Led_Mail ) ) ? Led_Mail : device->ledList( ) [0]; 105 OLed led = ( device->ledList( ).contains( Led_Mail ) ) ? Led_Mail : device->ledList( ) [0];
101 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); 106 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On );
102 } 107 }
103 } 108 }
104 if ( m_config->readBoolEntry( "PlaySound", false ) ) 109 if ( m_config->readBoolEntry( "PlaySound", false ) )
105 device->alarmSound(); 110 device->alarmSound();
106 111
107 qDebug( QString( "test %1" ).arg( stat.message_unseen ) ); 112 Config cfg( "mail" );
108
109 Config cfg( "mail" );
110 cfg.setGroup( "Status" ); 113 cfg.setGroup( "Status" );
111 cfg.writeEntry( "NewMails", ( int )stat.message_unseen ); 114 cfg.writeEntry( "NewMails", m_newMails );
112 QCopEnvelope env( "QPE/Pim", "newMails(int)" ); 115 QCopEnvelope env( "QPE/Pim", "newMails(int)" );
113 env << stat.message_unseen; 116 env << stat.message_unseen;
117 repaint( true );
114 118
115 } else { 119 } else {
116 ODevice *device = ODevice::inst(); 120 ODevice *device = ODevice::inst();
117 if ( !isHidden() ) hide(); 121 if ( !isHidden() ) hide();
118 if ( !device-> ledList( ).isEmpty( ) ) { 122 if ( !device-> ledList( ).isEmpty( ) ) {
119 OLed led = ( device->ledList( ).contains( Led_Mail ) ) ? Led_Mail : device->ledList( ) [0]; 123 OLed led = ( device->ledList( ).contains( Led_Mail ) ) ? Led_Mail : device->ledList( ) [0];
120 device->setLedState( led, Led_Off ); 124 device->setLedState( led, Led_Off );
121 } 125 }
122 } 126 }
123
124 // go trough accounts and check here
125 // also trigger qcop call and save status to config
126} 127}
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.h b/noncore/net/mail/taskbarapplet/mailapplet.h
index 8369176..25f0652 100644
--- a/noncore/net/mail/taskbarapplet/mailapplet.h
+++ b/noncore/net/mail/taskbarapplet/mailapplet.h
@@ -1,37 +1,38 @@
1#ifndef MAILAPPLET_H 1#ifndef MAILAPPLET_H
2#define MAILAPPLET_H 2#define MAILAPPLET_H
3 3
4#include <qbutton.h> 4#include <qbutton.h>
5 5
6#include <libmailwrapper/statusmail.h> 6#include <libmailwrapper/statusmail.h>
7 7
8class Config; 8class Config;
9class QTimer; 9class QTimer;
10 10
11class MailApplet : public QButton { 11class MailApplet : public QWidget {
12 12
13 Q_OBJECT 13 Q_OBJECT
14 14
15public: 15public:
16 MailApplet( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); 16 MailApplet( QWidget *parent = 0 );
17 ~MailApplet(); 17 ~MailApplet();
18 18
19protected: 19protected:
20 void drawButton(QPainter *);
21 void drawButtonText(QPainter *);
22 void gotNewMail(); 20 void gotNewMail();
21 void mouseReleaseEvent( QMouseEvent* );
22 void paintEvent( QPaintEvent* );
23 23
24protected slots: 24protected slots:
25 void startup(); 25 void startup();
26 void slotCheck(); 26 void slotCheck();
27 void slotClicked(); 27 void slotClicked();
28private: 28private:
29 Config *m_config; 29 Config *m_config;
30 QTimer *m_intervalTimer; 30 QTimer *m_intervalTimer;
31 int m_intervalMs; 31 int m_intervalMs;
32 StatusMail* m_statusMail; 32 StatusMail* m_statusMail;
33 int m_newMails;
33 34
34}; 35};
35 36
36#endif 37#endif
37 38