00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "configlog.h"
00019
00020 K_PLUGIN_FACTORY( ConfigLogFactory, registerPlugin<ConfigLog>(); )
00021 K_EXPORT_PLUGIN( ConfigLogFactory( "kcm_kshowmailconfiglog" ) )
00022
00023 ConfigLog::ConfigLog( QWidget * parent, const QVariantList & args )
00024 : KCModule( ConfigLogFactory::componentData(), parent, args )
00025 {
00026
00027
00028
00029 QVBoxLayout* layMain = new QVBoxLayout( this );
00030
00031
00032 QVBoxLayout* layDelMails = new QVBoxLayout();
00033 layMain->addLayout( layDelMails );
00034
00035 chkLogDeletedMails = new QCheckBox( i18n( "Log mails deleted by filter" ), this );
00036 chkLogDeletedMails->setToolTip( i18n( "Check to activate the log of mails deleted by filter." ) );
00037 layDelMails->addWidget( chkLogDeletedMails );
00038 connect( chkLogDeletedMails, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
00039 connect( chkLogDeletedMails, SIGNAL( toggled( bool ) ), this, SLOT( slotChangeItems() ) );
00040
00041 QVBoxLayout* layDelMailsConfig = new QVBoxLayout();
00042 layDelMailsConfig->setMargin( 20 );
00043 layMain->addLayout( layDelMailsConfig );
00044
00045 grpDelMailsRemove = new QButtonGroup( NULL );
00046 connect( grpDelMailsRemove, SIGNAL( buttonClicked( int ) ), this, SLOT( slotChanged() ) );
00047 connect( grpDelMailsRemove, SIGNAL( buttonClicked( int ) ), this, SLOT( slotChangeItems() ) );
00048 btnDelMailsRemoveExit = new QRadioButton( i18n( "Remove log entries at exit" ), this );
00049 grpDelMailsRemove->addButton( btnDelMailsRemoveExit, ID_BUTTON_REMOVE_AT_EXIT );
00050 layDelMailsConfig->addWidget( btnDelMailsRemoveExit );
00051
00052 QHBoxLayout* layDelMailsConfigDays = new QHBoxLayout();
00053 layDelMailsConfig->addLayout( layDelMailsConfigDays );
00054 layDelMailsConfigDays->setAlignment( Qt::AlignLeft );
00055 btnDelMailsRemoveDays = new QRadioButton( i18n( "Remove log entries after" ), this );
00056 grpDelMailsRemove->addButton( btnDelMailsRemoveDays, ID_BUTTON_REMOVE_AFTER_DAYS );
00057 layDelMailsConfigDays->addWidget( btnDelMailsRemoveDays );
00058 spbDelDays = new QSpinBox( this );
00059 spbDelDays->setMinimum( 1 );
00060 spbDelDays->setMaximum( 999999 );
00061 connect( spbDelDays, SIGNAL( valueChanged( int ) ), this, SLOT( slotChanged() ) );
00062 connect( spbDelDays, SIGNAL( valueChanged( int ) ), this, SLOT( slotChangeItems() ) );
00063 spbDelDays->setSuffix( i18nc( "@label:spinbox number of days till deletion", " Days" ) );
00064 spbDelDays->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Fixed );
00065 layDelMailsConfigDays->addWidget( spbDelDays );
00066
00067
00068
00069 QVBoxLayout* layMovMails = new QVBoxLayout();
00070 layMain->addLayout( layMovMails );
00071
00072 chkLogMovedMails = new QCheckBox( i18n( "Log mails moved by filter" ), this );
00073 chkLogMovedMails->setToolTip( i18n( "Check to activate the log of mails moved by filter." ) );
00074 layMovMails->addWidget( chkLogMovedMails );
00075 connect( chkLogMovedMails, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
00076 connect( chkLogMovedMails, SIGNAL( toggled( bool ) ), this, SLOT( slotChangeItems() ) );
00077
00078 QVBoxLayout* layMovMailsConfig = new QVBoxLayout();
00079 layMovMails->addLayout( layMovMailsConfig );
00080
00081 grpMovMailsRemove = new QButtonGroup( NULL );
00082 connect( grpMovMailsRemove, SIGNAL( buttonClicked( int ) ), this, SLOT( slotChanged() ) );
00083 connect( grpMovMailsRemove, SIGNAL( buttonClicked( int ) ), this, SLOT( slotChangeItems() ) );
00084 btnMovMailsRemoveExit = new QRadioButton( i18n( "Remove log entries at exit" ), this );
00085 grpMovMailsRemove->addButton( btnMovMailsRemoveExit, ID_BUTTON_REMOVE_AT_EXIT );
00086 layMovMailsConfig->addWidget( btnMovMailsRemoveExit );
00087
00088 QHBoxLayout* layMovMailsConfigDays = new QHBoxLayout();
00089 layMovMailsConfig->addLayout( layMovMailsConfigDays );
00090 layMovMailsConfigDays->setAlignment( Qt::AlignLeft );
00091 btnMovMailsRemoveDays = new QRadioButton( i18n( "Remove log entries after" ), this );
00092 grpMovMailsRemove->addButton( btnMovMailsRemoveDays, ID_BUTTON_REMOVE_AFTER_DAYS );
00093 layMovMailsConfigDays->addWidget( btnMovMailsRemoveDays );
00094 spbMovDays = new QSpinBox( this );
00095 spbMovDays->setMinimum( 1 );
00096 spbMovDays->setMaximum( 999999 );
00097 connect( spbMovDays, SIGNAL( valueChanged( int ) ), this, SLOT( slotChanged() ) );
00098 connect( spbMovDays, SIGNAL( valueChanged( int ) ), this, SLOT( slotChangeItems() ) );
00099 spbMovDays->setSuffix( i18nc( "@label:spinbox number of days till deletion", " Days" ) );
00100 spbMovDays->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum );
00101 layMovMailsConfigDays->addWidget( spbMovDays );
00102
00103
00104 btnMovMailsRemoveExit->setHidden( true );
00105 btnMovMailsRemoveDays->setHidden( true );
00106 spbMovDays->setHidden( true );
00107
00108
00109 config = KGlobal::config();
00110
00111 }
00112
00113 ConfigLog::~ConfigLog()
00114 {
00115 }
00116
00117 void ConfigLog::load()
00118 {
00119
00120 KConfigGroup* configLog = new KConfigGroup( config, CONFIG_GROUP_FILTER );
00121
00122
00123 chkLogDeletedMails->setChecked( configLog->readEntry( CONFIG_ENTRY_LOG_LOG_DELETED_MAILS, DEFAULT_LOG_LOG_DELETED_MAILS ) );
00124 chkLogMovedMails->setChecked( configLog->readEntry( CONFIG_ENTRY_LOG_LOG_MOVED_MAILS, DEFAULT_LOG_LOG_MOVED_MAILS ) );
00125
00126 QRadioButton* btnToCheck;
00127 if( configLog->readEntry( CONFIG_ENTRY_LOG_REMOVE_DELETED_MAILS, DEFAULT_LOG_REMOVE_DELETED_MAILS ) == CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT )
00128 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00129 else if( configLog->readEntry( CONFIG_ENTRY_LOG_REMOVE_DELETED_MAILS, DEFAULT_LOG_REMOVE_DELETED_MAILS ) == CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS )
00130 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00131 else
00132 if( QString( DEFAULT_LOG_REMOVE_DELETED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ) )
00133 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00134 else
00135 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00136
00137 btnToCheck->setChecked( true );
00138
00139
00140 if( configLog->readEntry( CONFIG_ENTRY_LOG_REMOVE_MOVED_MAILS, DEFAULT_LOG_REMOVE_MOVED_MAILS ) == CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT )
00141 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00142 else if( configLog->readEntry( CONFIG_ENTRY_LOG_REMOVE_MOVED_MAILS, DEFAULT_LOG_REMOVE_MOVED_MAILS ) == CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS )
00143 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00144 else
00145 if( QString( DEFAULT_LOG_REMOVE_MOVED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ) )
00146 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00147 else
00148 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00149
00150 btnToCheck->setChecked( true );
00151
00152 spbDelDays->setValue( configLog->readEntry( CONFIG_ENTRY_LOG_HOLDDAYS_DELETED_MAILS, DEFAULT_LOG_HOLDDAYS_DELETED_MAILS ) );
00153 spbMovDays->setValue( configLog->readEntry( CONFIG_ENTRY_LOG_HOLDDAYS_MOVED_MAILS, DEFAULT_LOG_HOLDDAYS_MOVED_MAILS ) );
00154
00155
00156 slotChangeItems();
00157 }
00158
00159 void ConfigLog::defaults()
00160 {
00161 if( DEFAULT_LOG_LOG_DELETED_MAILS )
00162 chkLogDeletedMails->setChecked( true );
00163 else
00164 chkLogMovedMails->setChecked( false );
00165
00166 if( DEFAULT_LOG_LOG_MOVED_MAILS )
00167 chkLogMovedMails->setChecked( true );
00168 else
00169 chkLogMovedMails->setChecked( false );
00170
00171 QRadioButton* btnToCheck;
00172 if( QString( DEFAULT_LOG_REMOVE_DELETED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ) )
00173 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00174 else if( QString( DEFAULT_LOG_REMOVE_DELETED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS ) )
00175 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00176 else
00177 btnToCheck = static_cast<QRadioButton*>( grpDelMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00178
00179 btnToCheck->setChecked( true );
00180
00181 if( QString( DEFAULT_LOG_REMOVE_MOVED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ) )
00182 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AT_EXIT ) );
00183 else if( QString( DEFAULT_LOG_REMOVE_MOVED_MAILS ) == QString( CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS ) )
00184 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00185 else
00186 btnToCheck = static_cast<QRadioButton*>( grpMovMailsRemove->button( ID_BUTTON_REMOVE_AFTER_DAYS ) );
00187
00188 btnToCheck->setChecked( true );
00189
00190 spbDelDays->setValue( DEFAULT_LOG_HOLDDAYS_DELETED_MAILS );
00191 spbMovDays->setValue( DEFAULT_LOG_HOLDDAYS_MOVED_MAILS );
00192
00193
00194 slotChangeItems();
00195
00196 slotChanged();
00197 }
00198
00199 void ConfigLog::save()
00200 {
00201
00202 KConfigGroup* configLog = new KConfigGroup( config, CONFIG_GROUP_FILTER );
00203
00204
00205 configLog->writeEntry( CONFIG_ENTRY_LOG_LOG_DELETED_MAILS, chkLogDeletedMails->isChecked() );
00206 configLog->writeEntry( CONFIG_ENTRY_LOG_LOG_MOVED_MAILS, chkLogMovedMails->isChecked() );
00207
00208 switch( grpDelMailsRemove->checkedId() )
00209 {
00210 case ID_BUTTON_REMOVE_AT_EXIT : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_DELETED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ); break;
00211 case ID_BUTTON_REMOVE_AFTER_DAYS : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_DELETED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS ); break;
00212 default : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_DELETED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS ); break;
00213 }
00214
00215 switch( grpMovMailsRemove->checkedId() )
00216 {
00217 case ID_BUTTON_REMOVE_AT_EXIT : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_MOVED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ); break;
00218 case ID_BUTTON_REMOVE_AFTER_DAYS : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_MOVED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AFTER_DAYS ); break;
00219 default : configLog->writeEntry( CONFIG_ENTRY_LOG_REMOVE_MOVED_MAILS, CONFIG_VALUE_LOG_REMOVE_MAILS_AT_EXIT ); break;
00220 }
00221
00222 configLog->writeEntry( CONFIG_ENTRY_LOG_HOLDDAYS_DELETED_MAILS, spbDelDays->value() );
00223 configLog->writeEntry( CONFIG_ENTRY_LOG_HOLDDAYS_MOVED_MAILS, spbMovDays->value() );
00224 }
00225
00226 void ConfigLog::slotChanged()
00227 {
00228 KCModule::changed();
00229 }
00230
00231 void ConfigLog::slotChangeItems()
00232 {
00233 if( chkLogDeletedMails->isChecked() )
00234 {
00235 btnDelMailsRemoveExit->setEnabled( true );
00236 btnDelMailsRemoveDays->setEnabled( true );
00237 spbDelDays->setEnabled( true );
00238 switch( grpDelMailsRemove->checkedId() )
00239 {
00240 case ID_BUTTON_REMOVE_AFTER_DAYS : spbDelDays->setEnabled( true ); break;
00241 case ID_BUTTON_REMOVE_AT_EXIT : spbDelDays->setEnabled( false ); break;
00242 default : spbDelDays->setEnabled( true ); break;
00243 }
00244 }
00245 else
00246 {
00247 btnDelMailsRemoveExit->setEnabled( false );
00248 btnDelMailsRemoveDays->setEnabled( false );
00249 spbDelDays->setEnabled( false );
00250 }
00251
00252 if( chkLogMovedMails->isChecked() )
00253 {
00254 btnMovMailsRemoveExit->setEnabled( true );
00255 btnMovMailsRemoveDays->setEnabled( true );
00256 spbMovDays->setEnabled( true );
00257 switch( grpMovMailsRemove->checkedId() )
00258 {
00259 case ID_BUTTON_REMOVE_AFTER_DAYS : spbMovDays->setEnabled( true ); break;
00260 case ID_BUTTON_REMOVE_AT_EXIT : spbMovDays->setEnabled( false ); break;
00261 default : spbMovDays->setEnabled( true ); break;
00262 }
00263 }
00264 else
00265 {
00266 btnMovMailsRemoveExit->setEnabled( false );
00267 btnMovMailsRemoveDays->setEnabled( false );
00268 spbMovDays->setEnabled( false );
00269 }
00270 }
00271
00272
00273 #include "configlog.moc"