summaryrefslogtreecommitdiff
authorharlekin <harlekin>2004-01-06 15:29:33 (UTC)
committer harlekin <harlekin>2004-01-06 15:29:33 (UTC)
commit7a9f4e78be5e2b888568ba99b2b65505d2a50bf0 (patch) (unidiff)
tree0f4af391fe40aa5b535ef344b0ac68ccb8bb819d
parent5d7ebe571f6191d2eb9ed0cf4ba5669ce8522ce2 (diff)
downloadopie-7a9f4e78be5e2b888568ba99b2b65505d2a50bf0.zip
opie-7a9f4e78be5e2b888568ba99b2b65505d2a50bf0.tar.gz
opie-7a9f4e78be5e2b888568ba99b2b65505d2a50bf0.tar.bz2
only action if value changed
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp
index f242bda..a0805ba 100644
--- a/noncore/net/mail/taskbarapplet/mailapplet.cpp
+++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp
@@ -1,141 +1,145 @@
1#include <qpainter.h> 1#include <qpainter.h>
2#include <qtimer.h> 2#include <qtimer.h>
3 3
4#include <qpe/qcopenvelope_qws.h> 4#include <qpe/qcopenvelope_qws.h>
5#include <qpe/resource.h> 5#include <qpe/resource.h>
6#include <qpe/config.h> 6#include <qpe/config.h>
7#include <qpe/applnk.h> 7#include <qpe/applnk.h>
8 8
9#include <opie/odevice.h> 9#include <opie/odevice.h>
10 10
11#include <libmailwrapper/settings.h> 11#include <libmailwrapper/settings.h>
12 12
13#include "mailapplet.h" 13#include "mailapplet.h"
14 14
15using namespace Opie; 15using namespace Opie;
16 16
17MailApplet::MailApplet( QWidget *parent ) 17MailApplet::MailApplet( QWidget *parent )
18: QWidget( parent ) { 18: QWidget( parent ) {
19 19
20 m_config = new Config( "mail" ); 20 m_config = new Config( "mail" );
21 m_config->setGroup( "Applet" ); 21 m_config->setGroup( "Applet" );
22 22
23 setFixedWidth( AppLnk::smallIconSize() ); 23 setFixedWidth( AppLnk::smallIconSize() );
24 setFixedHeight( AppLnk::smallIconSize() ); 24 setFixedHeight( AppLnk::smallIconSize() );
25 25
26 hide(); 26 hide();
27 27
28 m_newMails = 0; 28 m_newMails = 0;
29 m_statusMail = 0l; 29 m_statusMail = 0l;
30 30
31 if ( !m_config->readBoolEntry( "Disabled", false ) ) { 31 if ( !m_config->readBoolEntry( "Disabled", false ) ) {
32 // delay 5 sec until the whole mail backend gets started .-) 32 // delay 5 sec until the whole mail backend gets started .-)
33 QTimer::singleShot( 5000, this, SLOT( startup() ) ); 33 QTimer::singleShot( 5000, this, SLOT( startup() ) );
34 } 34 }
35 repaint( true ); 35 repaint( true );
36} 36}
37 37
38 38
39MailApplet::~MailApplet() { 39MailApplet::~MailApplet() {
40 if ( m_statusMail ) 40 if ( m_statusMail )
41 delete m_statusMail; 41 delete m_statusMail;
42 if ( m_config ) 42 if ( m_config )
43 delete m_config; 43 delete m_config;
44} 44}
45 45
46void MailApplet::paintEvent( QPaintEvent* ) { 46void MailApplet::paintEvent( QPaintEvent* ) {
47 QPainter p( this ); 47 QPainter p( this );
48 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/inbox" ) ); 48 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/inbox" ) );
49 QFont f( "vera", AppLnk::smallIconSize() ); 49 QFont f( "vera", AppLnk::smallIconSize() );
50 QFontMetrics fm( f ); 50 QFontMetrics fm( f );
51 p.setFont( f ); 51 p.setFont( f );
52 p.setPen( Qt::blue ); 52 p.setPen( Qt::blue );
53 p.drawText( AppLnk::smallIconSize()/3, AppLnk::smallIconSize() - 2, QString::number( m_newMails ) ); 53 p.drawText( AppLnk::smallIconSize()/3, AppLnk::smallIconSize() - 2, QString::number( m_newMails ) );
54 return; 54 return;
55 55
56} 56}
57 57
58void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { 58void MailApplet::mouseReleaseEvent( QMouseEvent* e ) {
59 slotClicked(); 59 slotClicked();
60} 60}
61 61
62void MailApplet::slotClicked() { 62void MailApplet::slotClicked() {
63 QCopEnvelope e( "QPE/System", "execute(QString)" ); 63 QCopEnvelope e( "QPE/System", "execute(QString)" );
64 e << QString( "opiemail" ); 64 e << QString( "opiemail" );
65 65
66 ODevice *device = ODevice::inst(); 66 ODevice *device = ODevice::inst();
67 if ( !device-> ledList().isEmpty() ) { 67 if ( !device-> ledList().isEmpty() ) {
68 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 68 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
69 69
70 device->setLedState( led, Led_Off ); 70 device->setLedState( led, Led_Off );
71 } 71 }
72 72
73 if (m_statusMail) m_statusMail->reset_status(); 73 if (m_statusMail)
74 m_statusMail->reset_status();
74 75
75 hide(); 76 hide();
76} 77}
77 78
78void MailApplet::startup() { 79void MailApplet::startup() {
79 Settings *settings = new Settings(); 80 Settings *settings = new Settings();
80 QList<Account> ma = settings->getAccounts(); 81 QList<Account> ma = settings->getAccounts();
81 m_statusMail = new StatusMail( ma ); 82 m_statusMail = new StatusMail( ma );
82 delete settings; 83 delete settings;
83 84
84 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 85 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
85 m_intervalTimer = new QTimer(); 86 m_intervalTimer = new QTimer();
86 m_intervalTimer->start( m_intervalMs ); 87 m_intervalTimer->start( m_intervalMs );
87 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) ); 88 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) );
88} 89}
89 90
90void MailApplet::slotCheck() { 91void MailApplet::slotCheck() {
91 // Check wether the check interval has been changed. 92 // Check wether the check interval has been changed.
92 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 93 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
93 if ( newIntervalMs != m_intervalMs ) { 94 if ( newIntervalMs != m_intervalMs ) {
94 m_intervalTimer->changeInterval( newIntervalMs ); 95 m_intervalTimer->changeInterval( newIntervalMs );
95 m_intervalMs = newIntervalMs; 96 m_intervalMs = newIntervalMs;
96 } 97 }
97 98
98 if (m_statusMail == 0) { 99 if (m_statusMail == 0) {
99 return; 100 return;
100 } 101 }
101 102
102 folderStat stat; 103 folderStat stat;
103 m_statusMail->check_current_stat( stat ); 104 m_statusMail->check_current_stat( stat );
105 int newMailsOld = m_newMails;
104 m_newMails = stat.message_unseen; 106 m_newMails = stat.message_unseen;
105 qDebug( QString( "test %1" ).arg( m_newMails ) ); 107 qDebug( QString( "test %1" ).arg( m_newMails ) );
106 if ( m_newMails > 0 ) { 108 if ( m_newMails > 0 && newMailsOld != m_newMails ) {
107 ODevice *device = ODevice::inst(); 109 ODevice *device = ODevice::inst();
108 if ( isHidden() ) 110 if ( isHidden() )
109 show(); 111 show();
110 if ( m_config->readBoolEntry( "BlinkLed", true ) ) { 112 if ( m_config->readBoolEntry( "BlinkLed", true ) ) {
111 if ( !device->ledList().isEmpty() ) { 113 if ( !device->ledList().isEmpty() ) {
112 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 114 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
113 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); 115 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On );
114 } 116 }
115 } 117 }
116 if ( m_config->readBoolEntry( "PlaySound", false ) ) 118 if ( m_config->readBoolEntry( "PlaySound", false ) )
117 device->alarmSound(); 119 device->alarmSound();
118 120
119 Config cfg( "mail" ); 121 Config cfg( "mail" );
120 cfg.setGroup( "Status" ); 122 cfg.setGroup( "Status" );
121 cfg.writeEntry( "newMails", m_newMails ); 123 cfg.writeEntry( "newMails", m_newMails );
122 QCopEnvelope env( "QPE/Pim", "newMails(int)" ); 124 QCopEnvelope env( "QPE/Pim", "newMails(int)" );
123 env << m_newMails; 125 env << m_newMails;
124 repaint( true ); 126 repaint( true );
125 127
126 } else { 128 } else {
127 ODevice *device = ODevice::inst(); 129 ODevice *device = ODevice::inst();
128 if ( !isHidden() ) 130 if ( !isHidden() )
129 hide(); 131 hide();
130 if ( !device->ledList().isEmpty() ) { 132 if ( !device->ledList().isEmpty() ) {
131 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 133 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
132 device->setLedState( led, Led_Off ); 134 device->setLedState( led, Led_Off );
133 } 135 }
134 136
135 Config cfg( "mail" ); 137 if ( newMailsOld != m_newMails ) {
136 cfg.setGroup( "Status" ); 138 Config cfg( "mail" );
137 cfg.writeEntry( "newMails", m_newMails ); 139 cfg.setGroup( "Status" );
138 QCopEnvelope env( "QPE/Pim", "newMails(int)" ); 140 cfg.writeEntry( "newMails", m_newMails );
139 env << m_newMails; 141 QCopEnvelope env( "QPE/Pim", "newMails(int)" );
142 env << m_newMails;
143 }
140 } 144 }
141} 145}