-rw-r--r-- | noncore/net/mail/mail.pro | 3 | ||||
-rw-r--r-- | noncore/net/mail/settingsdialog.cpp | 15 | ||||
-rw-r--r-- | noncore/net/mail/settingsdialogui.ui | 120 | ||||
-rw-r--r-- | noncore/net/mail/taskbarapplet/mailapplet.cpp | 32 | ||||
-rw-r--r-- | noncore/net/mail/taskbarapplet/mailapplet.h | 2 |
5 files changed, 165 insertions, 7 deletions
diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro index a96c88e..96ffaa8 100644 --- a/noncore/net/mail/mail.pro +++ b/noncore/net/mail/mail.pro @@ -1,52 +1,53 @@ CONFIG += qt warn_on debug quick-app HEADERS = defines.h \ editaccounts.h \ composemail.h \ accountview.h \ mainwindow.h \ viewmail.h \ viewmailbase.h \ opiemail.h \ mailistviewitem.h \ settingsdialog.h \ statuswidget.h \ newmaildir.h SOURCES = main.cpp \ opiemail.cpp \ mainwindow.cpp \ accountview.cpp \ composemail.cpp \ addresspicker.cpp \ editaccounts.cpp \ viewmail.cpp \ viewmailbase.cpp \ settingsdialog.cpp \ statuswidget.cpp \ newmaildir.cpp INTERFACES = editaccountsui.ui \ selectmailtypeui.ui \ imapconfigui.ui \ pop3configui.ui \ nntpconfigui.ui \ smtpconfigui.ui \ addresspickerui.ui \ composemailui.ui \ settingsdialogui.ui \ statuswidgetui.ui \ - newmaildirui.ui + newmaildirui.ui + INCLUDEPATH += $(OPIEDIR)/include CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) contains( CONFTEST, y ){ LIBS += -lqpe -lopie -lmailwrapper -liconv }else{ LIBS += -lqpe -lopie -lmailwrapper } TARGET = opiemail include ( $(OPIEDIR)/include.pro ) diff --git a/noncore/net/mail/settingsdialog.cpp b/noncore/net/mail/settingsdialog.cpp index f9de405..061ea72 100644 --- a/noncore/net/mail/settingsdialog.cpp +++ b/noncore/net/mail/settingsdialog.cpp @@ -1,38 +1,49 @@ #include <qcheckbox.h> +#include <qspinbox.h> #include <qpe/config.h> #include "settingsdialog.h" SettingsDialog::SettingsDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) : SettingsDialogUI( parent, name, modal, fl ) { readConfig(); } SettingsDialog::~SettingsDialog() { } void SettingsDialog::readConfig() { Config cfg("mail"); cfg.setGroup( "Settings" ); showHtmlButton->setChecked( cfg.readBoolEntry( "showHtml", false ) ); cfg.setGroup( "Compose" ); checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); + cfg.setGroup( "Applet" ); + cbEnableTaskbarApplet->setChecked( cfg.readBoolEntry( "Disabled", false ) ); + spCheckOften->setValue( cfg.readNumEntry( "CheckEvery", 5 ) ); + cbBlinkLed->setChecked( cfg.readBoolEntry( "BlinkLed", true ) ); + cbPlaySound->setChecked( cfg.readBoolEntry( "PlaySound", false ) ); + } void SettingsDialog::writeConfig() { Config cfg( "mail" ); cfg.setGroup( "Settings" ); cfg.writeEntry( "showHtml", showHtmlButton->isChecked() ); cfg.setGroup( "Compose" ); - cfg.writeEntry( "sendLater", checkBoxLater->isChecked() );; - + cfg.writeEntry( "sendLater", checkBoxLater->isChecked() ); + cfg.setGroup( "Applet" ); + cfg.writeEntry( "Disabled", cbEnableTaskbarApplet->isChecked() ); + cfg.writeEntry( "CheckEvery", spCheckOften->value() ); + cfg.writeEntry( "BlinkLed", cbBlinkLed->isChecked() ); + cfg.writeEntry( "PlaySound", cbPlaySound->isChecked() ); } void SettingsDialog::accept() { writeConfig(); QDialog::accept(); } diff --git a/noncore/net/mail/settingsdialogui.ui b/noncore/net/mail/settingsdialogui.ui index c5589dc..a078168 100644 --- a/noncore/net/mail/settingsdialogui.ui +++ b/noncore/net/mail/settingsdialogui.ui @@ -1,158 +1,276 @@ <!DOCTYPE UI><UI> <class>SettingsDialogUI</class> <widget> <class>QDialog</class> <property stdset="1"> <name>name</name> <cstring>SettingsDialogUI</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>324</width> + <width>320</width> <height>379</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>Settings Dialog</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> <number>3</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QTabWidget</class> <property stdset="1"> <name>name</name> <cstring>TabWidget2</cstring> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>View Mail</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> <number>3</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>showHtmlButton</cstring> </property> <property stdset="1"> <name>text</name> <string>View mail as Html</string> </property> </widget> <spacer> <property> <name>name</name> <cstring>Spacer1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> </vbox> </widget> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>Compose Mail</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> <number>3</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>checkBoxLater</cstring> </property> <property stdset="1"> <name>text</name> <string>Send mails later ( enqueue in outbox )</string> </property> </widget> <spacer> <property> <name>name</name> <cstring>Spacer2</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> </vbox> </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Taskbar Applet</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>cbEnableTaskbarApplet</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Enable Taskbar Applet</string> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout2</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QSpinBox</class> + <property stdset="1"> + <name>name</name> + <cstring>spCheckOften</cstring> + </property> + <property stdset="1"> + <name>suffix</name> + <string> min</string> + </property> + <property stdset="1"> + <name>value</name> + <number>5</number> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Check how often</string> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>cbBlinkLed</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Blink Led when new mails arrive</string> + </property> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>cbPlaySound</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Play Sound when new mails arrive</string> + </property> + </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer3</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </vbox> + </widget> </widget> </vbox> </widget> </UI> diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp index f3550c7..8bf4b89 100644 --- a/noncore/net/mail/taskbarapplet/mailapplet.cpp +++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp @@ -1,75 +1,103 @@ #include <qlayout.h> #include <qpixmap.h> #include <qlabel.h> #include <qsound.h> #include <qtimer.h> #include <qdir.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/resource.h> #include <qpe/config.h> #include <opie/odevice.h> #include "mailapplet.h" using namespace Opie; MailApplet::MailApplet( QWidget *parent, const char *name, WFlags fl ) : QButton( parent, name, fl ) { m_config = new Config( "mail" ); m_config->setGroup( "Applet" ); QVBoxLayout *layout = new QVBoxLayout( this ); layout->addItem( new QSpacerItem( 0,0 ) ); QLabel *pixmap = new QLabel( this ); pixmap->setPixmap( Resource::loadPixmap( "opiemail/mailchecker" ) ); layout->addWidget( pixmap ); layout->addItem( new QSpacerItem( 0,0 ) ); hide(); connect( this, SIGNAL( clicked() ), SLOT( slotClicked() ) ); if ( !m_config->readBoolEntry( "Disabled", false ) ) { m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; m_intervalTimer = new QTimer(); m_intervalTimer->start( m_intervalMs ); connect( m_intervalTimer, SIGNAL(timeout() ), SLOT( slotCheck() ) ); QTimer::singleShot( 0, this, SLOT( slotCheck() ) ); } } void MailApplet::drawButton(QPainter *) { } void MailApplet::drawButtonText(QPainter *) { } void MailApplet::slotClicked() { qDebug( " CLICKED" ); 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 ); } } void MailApplet::slotCheck() { // Check wether the check interval has been changed. int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; if ( newIntervalMs != m_intervalMs ) { m_intervalTimer->changeInterval( newIntervalMs ); m_intervalMs = newIntervalMs; } + int newMails = 0; + + if ( true ) { + 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(); + + Config cfg( "mail" ); + cfg.setGroup( "Status" ); + cfg.writeEntry( "NewMails", newMails ); // todo + + QCopEnvelope env( "QPE/Pim", "newMails(int)" ); + env << newMails; + + } 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 ); + } + } + // go trough accounts and check here - // depending on result show or hide // also trigger qcop call and save status to config - // get led to blink } diff --git a/noncore/net/mail/taskbarapplet/mailapplet.h b/noncore/net/mail/taskbarapplet/mailapplet.h index 1c48b29..34bdc22 100644 --- a/noncore/net/mail/taskbarapplet/mailapplet.h +++ b/noncore/net/mail/taskbarapplet/mailapplet.h @@ -1,32 +1,32 @@ #ifndef MAILAPPLET_H #define MAILAPPLET_H #include <qbutton.h> class Config; class QTimer; class MailApplet : public QButton { Q_OBJECT public: - MailApplet(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); + MailApplet( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); protected: void drawButton(QPainter *); void drawButtonText(QPainter *); void gotNewMail(); protected slots: void slotCheck(); void slotClicked(); private: Config *m_config; QTimer *m_intervalTimer; int m_intervalMs; }; #endif |