From 6d748d9f4fff76b5ff759e0b8a5bc33614bf0bc3 Mon Sep 17 00:00:00 2001 From: Till Adam Date: Sun, 22 Feb 2004 16:23:17 +0000 Subject: [PATCH] Implement "Exclude important messages from expiry" config option and gui for it. Andrew, thanks for your patch. I've had to adjust things to the changes in status handling and add the config stuff, but it's still appreciated. CCMAIL: 37419-done@bugs.kde.org svn path=/trunk/kdepim/; revision=290257 --- configuredialog.cpp | 9 +++++++++ configuredialog_p.h | 1 + kmail.kcfg | 5 +++++ maildirjob.cpp | 5 +++++ mboxjob.cpp | 6 ++++++ 5 files changed, 26 insertions(+) diff --git a/configuredialog.cpp b/configuredialog.cpp index f316b0017..c8cd7657b 100644 --- a/configuredialog.cpp +++ b/configuredialog.cpp @@ -3689,6 +3689,12 @@ MiscPageFolderTab::MiscPageFolderTab( QWidget * parent, const char * name ) vlay->addWidget( mWarnBeforeExpire ); connect( mWarnBeforeExpire, SIGNAL( stateChanged( int ) ), this, SLOT( slotEmitChanged( void ) ) ); + mExcludeImportantFromExpiry = + new QCheckBox( i18n("E&xclude important messages from expiry"), this ); + vlay->addWidget( mExcludeImportantFromExpiry ); + connect( mExcludeImportantFromExpiry, SIGNAL( stateChanged( int ) ), + this, SLOT( slotEmitChanged( void ) ) ); + // "when trying to find unread messages" combo + label: stretch 0 hlay = new QHBoxLayout( vlay ); // inherits spacing mLoopOnGotoUnread = new QComboBox( false, this ); @@ -3823,6 +3829,7 @@ void MiscPage::FolderTab::load() { mEmptyTrashCheck->setChecked( general.readBoolEntry( "empty-trash-on-exit", true ) ); mExpireAtExit->setChecked( general.readNumEntry( "when-to-expire", 0 ) ); // set if non-zero mWarnBeforeExpire->setChecked( general.readBoolEntry( "warn-before-expire", true ) ); + mExcludeImportantFromExpiry->setChecked( GlobalSettings::excludeImportantMailFromExpiry() ); mOnStartupOpenFolder->setFolder( general.readEntry( "startupFolder", kmkernel->inboxFolder()->idString() ) ); mCompactOnExitCheck->setChecked( general.readBoolEntry( "compact-all-on-exit", true ) ); @@ -3856,6 +3863,8 @@ void MiscPage::FolderTab::save() { GlobalSettings::setJumpToUnread( mJumpToUnread->isChecked() ); GlobalSettings::setLoopOnGotoUnread( mLoopOnGotoUnread->currentItem() ); GlobalSettings::setShowPopupAfterDnD( mShowPopupAfterDnD->isChecked() ); + GlobalSettings::setExcludeImportantMailFromExpiry( + mExcludeImportantFromExpiry->isChecked() ); if ( mExpireAtExit->isChecked() ) general.writeEntry( "when-to-expire", expireAtExit ); diff --git a/configuredialog_p.h b/configuredialog_p.h index 6ffa02e83..4e36738b2 100644 --- a/configuredialog_p.h +++ b/configuredialog_p.h @@ -766,6 +766,7 @@ public: protected: QCheckBox *mEmptyFolderConfirmCheck; QCheckBox *mWarnBeforeExpire; + QCheckBox *mExcludeImportantFromExpiry; QComboBox *mLoopOnGotoUnread; QCheckBox *mJumpToUnread; QComboBox *mMailboxPrefCombo; diff --git a/kmail.kcfg b/kmail.kcfg index d05956b84..5936fbbe0 100644 --- a/kmail.kcfg +++ b/kmail.kcfg @@ -33,5 +33,10 @@ true + + + + true + diff --git a/maildirjob.cpp b/maildirjob.cpp index fe748f319..beb62bbf3 100644 --- a/maildirjob.cpp +++ b/maildirjob.cpp @@ -35,6 +35,7 @@ #include "kmfoldermaildir.h" #include "kmfolder.h" +#include "globalsettings.h" #include #include @@ -153,6 +154,10 @@ MaildirJob::expireMessages() if (mb == 0) { continue; } + if ( mb->isImportant() + && GlobalSettings::excludeImportantMailFromExpiry() ) + continue; + msgTime = mb->date(); if (mb->isUnread()) { diff --git a/mboxjob.cpp b/mboxjob.cpp index aa6cfac41..f883348ae 100644 --- a/mboxjob.cpp +++ b/mboxjob.cpp @@ -36,6 +36,7 @@ #include "kmfoldermbox.h" #include "kmfolder.h" +#include "globalsettings.h" #include #include @@ -105,6 +106,11 @@ MboxJob::expireMessages() if (mb == 0) { continue; } + + if ( mb->isImportant() + && GlobalSettings::excludeImportantMailFromExpiry() ) + continue; + msgTime = mb->date(); if (mb->isUnread()) {