summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp
index 35198d1..25fd400 100644
--- a/noncore/net/mail/taskbarapplet/mailapplet.cpp
+++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp
@@ -14,115 +14,119 @@
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/mailchecker" ) ); 48 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/mailchecker" ) );
49 QFont f( "Fixed", AppLnk::smallIconSize() ); 49 QFont f( "Fixed", AppLnk::smallIconSize() );
50 QFontMetrics fm( f ); 50 QFontMetrics fm( f );
51 p.setFont( f ); 51 p.setFont( f );
52 p.drawText( AppLnk::smallIconSize()/2, AppLnk::smallIconSize()/2, QString::number( m_newMails ) ); 52 p.drawText( AppLnk::smallIconSize()/2, AppLnk::smallIconSize()/2, QString::number( m_newMails ) );
53 return; 53 return;
54 54
55} 55}
56 56
57void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { 57void MailApplet::mouseReleaseEvent( QMouseEvent* e ) {
58 slotClicked(); 58 slotClicked();
59} 59}
60 60
61void MailApplet::slotClicked() { 61void MailApplet::slotClicked() {
62 QCopEnvelope e( "QPE/System", "execute(QString)" ); 62 QCopEnvelope e( "QPE/System", "execute(QString)" );
63 e << QString( "opiemail" ); 63 e << QString( "opiemail" );
64 64
65 ODevice *device = ODevice::inst(); 65 ODevice *device = ODevice::inst();
66 if ( !device-> ledList().isEmpty() ) { 66 if ( !device-> ledList().isEmpty() ) {
67 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 67 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
68 68
69 device->setLedState( led, Led_Off ); 69 device->setLedState( led, Led_Off );
70 } 70 }
71 71
72 // m_statusMails->reset_status(); 72 // m_statusMails->reset_status();
73} 73}
74 74
75void MailApplet::startup() { 75void MailApplet::startup() {
76 Settings *settings = new Settings(); 76 Settings *settings = new Settings();
77 QList<Account> ma = settings->getAccounts(); 77 QList<Account> ma = settings->getAccounts();
78 StatusMail m_statusMail = StatusMail( ma ); 78 m_statusMail = new StatusMail( ma );
79 delete settings; 79 delete settings;
80 80
81 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 81 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
82 m_intervalTimer = new QTimer(); 82 m_intervalTimer = new QTimer();
83 m_intervalTimer->start( m_intervalMs ); 83 m_intervalTimer->start( m_intervalMs );
84 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) ); 84 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) );
85} 85}
86 86
87void MailApplet::slotCheck() { 87void MailApplet::slotCheck() {
88 // Check wether the check interval has been changed. 88 // Check wether the check interval has been changed.
89 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 89 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
90 if ( newIntervalMs != m_intervalMs ) { 90 if ( newIntervalMs != m_intervalMs ) {
91 m_intervalTimer->changeInterval( newIntervalMs ); 91 m_intervalTimer->changeInterval( newIntervalMs );
92 m_intervalMs = newIntervalMs; 92 m_intervalMs = newIntervalMs;
93 } 93 }
94 94
95 if (m_statusMail == 0) {
96 return;
97 }
98
95 folderStat stat; 99 folderStat stat;
96 m_statusMail->check_current_stat( stat ); 100 m_statusMail->check_current_stat( stat );
97 m_newMails = stat.message_unseen; 101 m_newMails = stat.message_unseen;
98 qDebug( QString( "test %1" ).arg( m_newMails ) ); 102 qDebug( QString( "test %1" ).arg( m_newMails ) );
99 if ( m_newMails > 0 ) { 103 if ( m_newMails > 0 ) {
100 ODevice *device = ODevice::inst(); 104 ODevice *device = ODevice::inst();
101 if ( isHidden() ) 105 if ( isHidden() )
102 show(); 106 show();
103 if ( m_config->readBoolEntry( "BlinkLed", true ) ) { 107 if ( m_config->readBoolEntry( "BlinkLed", true ) ) {
104 if ( !device->ledList().isEmpty() ) { 108 if ( !device->ledList().isEmpty() ) {
105 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 109 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
106 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); 110 device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On );
107 } 111 }
108 } 112 }
109 if ( m_config->readBoolEntry( "PlaySound", false ) ) 113 if ( m_config->readBoolEntry( "PlaySound", false ) )
110 device->alarmSound(); 114 device->alarmSound();
111 115
112 Config cfg( "mail" ); 116 Config cfg( "mail" );
113 cfg.setGroup( "Status" ); 117 cfg.setGroup( "Status" );
114 cfg.writeEntry( "NewMails", m_newMails ); 118 cfg.writeEntry( "NewMails", m_newMails );
115 QCopEnvelope env( "QPE/Pim", "newMails(int)" ); 119 QCopEnvelope env( "QPE/Pim", "newMails(int)" );
116 env << stat.message_unseen; 120 env << m_newMails;
117 repaint( true ); 121 repaint( true );
118 122
119 } else { 123 } else {
120 ODevice *device = ODevice::inst(); 124 ODevice *device = ODevice::inst();
121 if ( !isHidden() ) 125 if ( !isHidden() )
122 hide(); 126 hide();
123 if ( !device->ledList().isEmpty() ) { 127 if ( !device->ledList().isEmpty() ) {
124 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 128 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
125 device->setLedState( led, Led_Off ); 129 device->setLedState( led, Led_Off );
126 } 130 }
127 } 131 }
128} 132}