summaryrefslogtreecommitdiff
path: root/noncore/net/mail/taskbarapplet/mailapplet.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/taskbarapplet/mailapplet.cpp') (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
@@ -49,93 +49,97 @@ void MailApplet::paintEvent( QPaintEvent* ) {
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}