-rw-r--r-- | noncore/net/mail/taskbarapplet/mailapplet.cpp | 18 |
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 @@ -61,25 +61,26 @@ void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { void MailApplet::slotClicked() { QCopEnvelope e( "QPE/System", "execute(QString)" ); e << QString( "opiemail" ); ODevice *device = ODevice::inst(); if ( !device-> ledList().isEmpty() ) { OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; device->setLedState( led, Led_Off ); } - if (m_statusMail) m_statusMail->reset_status(); + if (m_statusMail) + m_statusMail->reset_status(); hide(); } void MailApplet::startup() { Settings *settings = new Settings(); QList<Account> ma = settings->getAccounts(); m_statusMail = new StatusMail( ma ); delete settings; m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; m_intervalTimer = new QTimer(); @@ -92,27 +93,28 @@ void MailApplet::slotCheck() { int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; if ( newIntervalMs != m_intervalMs ) { m_intervalTimer->changeInterval( newIntervalMs ); m_intervalMs = newIntervalMs; } if (m_statusMail == 0) { return; } folderStat stat; m_statusMail->check_current_stat( stat ); + int newMailsOld = m_newMails; m_newMails = stat.message_unseen; qDebug( QString( "test %1" ).arg( m_newMails ) ); - if ( m_newMails > 0 ) { + if ( m_newMails > 0 && newMailsOld != m_newMails ) { ODevice *device = ODevice::inst(); if ( isHidden() ) show(); if ( m_config->readBoolEntry( "BlinkLed", true ) ) { if ( !device->ledList().isEmpty() ) { OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; device->setLedState( led, device->ledStateList( led ).contains( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); } } if ( m_config->readBoolEntry( "PlaySound", false ) ) device->alarmSound(); @@ -123,19 +125,21 @@ void MailApplet::slotCheck() { env << m_newMails; repaint( true ); } else { ODevice *device = ODevice::inst(); if ( !isHidden() ) hide(); if ( !device->ledList().isEmpty() ) { OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; device->setLedState( led, Led_Off ); } - Config cfg( "mail" ); - cfg.setGroup( "Status" ); - cfg.writeEntry( "newMails", m_newMails ); - QCopEnvelope env( "QPE/Pim", "newMails(int)" ); - env << m_newMails; + if ( newMailsOld != m_newMails ) { + Config cfg( "mail" ); + cfg.setGroup( "Status" ); + cfg.writeEntry( "newMails", m_newMails ); + QCopEnvelope env( "QPE/Pim", "newMails(int)" ); + env << m_newMails; + } } } |