summaryrefslogtreecommitdiffstats
path: root/kshowmail/kcmconfigs/configgeneral.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kshowmail/kcmconfigs/configgeneral.cpp')
-rw-r--r--kshowmail/kcmconfigs/configgeneral.cpp181
1 files changed, 181 insertions, 0 deletions
diff --git a/kshowmail/kcmconfigs/configgeneral.cpp b/kshowmail/kcmconfigs/configgeneral.cpp
new file mode 100644
index 0000000..0bffeca
--- /dev/null
+++ b/kshowmail/kcmconfigs/configgeneral.cpp
@@ -0,0 +1,181 @@
+//
+// C++ Implementation: configgeneral
+//
+// Description:
+//
+//
+// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "configgeneral.h"
+
+typedef KGenericFactory<ConfigGeneral, QWidget> ConfigGeneralFactory;
+
+K_EXPORT_COMPONENT_FACTORY( kcm_kshowmailconfiggeneral, ConfigGeneralFactory(
+ "kcm_kshowmailconfiggeneral" ) );
+
+ConfigGeneral::ConfigGeneral( QWidget * parent, const char * name, const QStringList & args )
+ : KCModule( ConfigGeneralFactory::instance(), parent, args )
+{
+ //set the module name
+ if ( !name )
+ setName( "configgeneral" );
+
+ //build GUI
+ //---------
+
+ //main layout
+ QVBoxLayout* layMain = new QVBoxLayout( this, 0, 10 );
+
+ //layout for check buttons (upper half)
+ QGridLayout* layMainTop = new QGridLayout( layMain, 4, 2, 15 );
+ layMainTop->setMargin( 20 );
+
+ //group box for timers
+ QGroupBox* gboxTimers = new QGroupBox( 0, Qt::Horizontal, i18n( "&Timers" ), this, "gboxTimers" );
+ layMain->addWidget( gboxTimers );
+
+ //layouts for timers
+ QGridLayout* layTimers = new QGridLayout( gboxTimers->layout(),3, 3, 20 );
+
+ //create items
+ chkConfirmClose = new QCheckBox( i18n( "Confirm Close" ), this, "chkConfirmClose" );
+ QToolTip::add( chkConfirmClose, i18n( "If checked, window close must be confirmed" ) );
+ layMainTop->addWidget( chkConfirmClose, 0, 0 );
+
+ chkConfirmDelete = new QCheckBox( i18n( "Confirm delete" ), this, "chkConfirmDelete" );
+ QToolTip::add( chkConfirmDelete, i18n( "If checked, message delete must be confirmed" ) );
+ layMainTop->addWidget( chkConfirmDelete, 0, 1 );
+
+ chkStartMinimized = new QCheckBox( i18n( "Start Minimi&zed" ), this, "chkStartMinimized" );
+ QToolTip::add( chkStartMinimized, i18n( "Application is started as icon" ) );
+ layMainTop->addWidget( chkStartMinimized, 1, 0 );
+
+ chkCloseToTray = new QCheckBox( i18n( "Close to tray" ), this, "chkCloseToTray" );
+ QToolTip::add( chkCloseToTray, i18n( "Close button leaves the application running in tray" ) );
+ layMainTop->addWidget( chkCloseToTray, 1, 1 );
+
+ chkMinimizeToTray = new QCheckBox( i18n( "Minimize to tray" ), this, "chkMinimizeToTray" );
+ QToolTip::add( chkMinimizeToTray, i18n( "Minimizes to the tray rather than to the taskbar" ) );
+ layMainTop->addWidget( chkMinimizeToTray, 2, 0 );
+
+ chkShowConnectionErrors = new QCheckBox( i18n( "Show Connection Errors during refresh" ), this, "chkShowConnectionErrors" );
+ QToolTip::add( chkShowConnectionErrors, i18n( "If a connection error occurs during refresh (e.g. unknown server), an error message will be shown. During other actions, this error always will be shown" ) );
+ layMainTop->addWidget( chkShowConnectionErrors, 2, 1 );
+
+ chkKeepNew = new QCheckBox( i18n( "&Keep mail as new" ), this, "chkKeepNew" );
+ QToolTip::add( chkKeepNew, i18n( "Keep mail as new until termination" ) );
+ layMainTop->addWidget( chkKeepNew, 3, 0 );
+
+ QLabel* lblTimerInitial = new QLabel( i18n( "Initial Timer:" ), gboxTimers, "lblTimerInitial" );
+ QLabel* lblInitialUnit = new QLabel( i18n( "[Seconds]" ), gboxTimers, "lblInitialUnit" );
+ spbInitial = new QSpinBox( 0, 99999, 1, gboxTimers, "spbInitial" );
+ QToolTip::add( spbInitial, i18n( "Seconds until first automatic logon (0 = no automatic)" ) );
+ QToolTip::add( lblTimerInitial, i18n( "Seconds until first automatic logon (0 = no automatic)" ) );
+ layTimers->addWidget( lblTimerInitial, 0, 0 );
+ layTimers->addWidget( spbInitial, 0, 1 );
+ layTimers->addWidget( lblInitialUnit, 0, 2 );
+
+ QLabel* lblTimerInterval = new QLabel( i18n( "Interval Timer:" ), gboxTimers, "lblTimerInterval" );
+ QLabel* lblIntervalUnit = new QLabel( i18n( "[Minutes]" ), gboxTimers, "lblIntervalUnit" );
+ spbInterval = new QSpinBox( 0, 99999, 1, gboxTimers, "spbInterval" );
+ QToolTip::add( spbInterval, i18n( "Minutes between automatic logon (0 = no automatic)" ) );
+ QToolTip::add( lblTimerInterval, i18n( "Minutes between automatic logon (0 = no automatic)" ) );
+ layTimers->addWidget( lblTimerInterval, 1, 0 );
+ layTimers->addWidget( spbInterval, 1, 1 );
+ layTimers->addWidget( lblIntervalUnit, 1, 2 );
+
+ QLabel* lblTimerTimeout = new QLabel( i18n( "Timeout:" ), gboxTimers, "lblTimerTimeout" );
+ QLabel* lblTimeoutUnit = new QLabel( i18n( "[Seconds]" ), gboxTimers, "lblTimeoutUnit" );
+ spbTimeout = new QSpinBox( MINIMUM_TIMEOUT_TIME, 99999, 1, gboxTimers, "spbTimeout" );
+ QToolTip::add( spbTimeout, i18n( "Seconds until a server connect will be canceled" ) );
+ QToolTip::add( lblTimerTimeout, i18n( "Seconds until a server connect will be canceled" ) );
+ layTimers->addWidget( lblTimerTimeout, 2, 0 );
+ layTimers->addWidget( spbTimeout, 2, 1 );
+ layTimers->addWidget( lblTimeoutUnit, 2, 2 );
+
+
+ //connect all configuration itmes with slot changed() to notify the dialog about changes
+ connect( chkConfirmClose, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkConfirmDelete, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkStartMinimized, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkCloseToTray, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkMinimizeToTray, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkShowConnectionErrors, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( chkKeepNew, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
+ connect( spbInitial, SIGNAL( valueChanged( int ) ), this, SLOT( slotChanged() ) );
+ connect( spbInterval, SIGNAL( valueChanged( int ) ), this, SLOT( slotChanged() ) );
+ connect( spbTimeout, SIGNAL( valueChanged( int ) ), this, SLOT( slotChanged() ) );
+
+
+ //get application config object (kshowmailrc)
+ config = KApplication::kApplication()->config();
+
+ //load configurated values
+ load();
+
+}
+
+ConfigGeneral::~ConfigGeneral()
+{
+}
+
+void ConfigGeneral::load( )
+{
+ config->setGroup( CONFIG_GROUP_GENERAL );
+
+ chkConfirmClose->setChecked( config->readBoolEntry( CONFIG_ENTRY_CONFIRM_CLOSE, DEFAULT_CONFIRM_CLOSE ) );
+ chkConfirmDelete->setChecked( config->readBoolEntry( CONFIG_ENTRY_CONFIRM_DELETE, DEFAULT_CONFIRM_DELETE ) );
+ chkStartMinimized->setChecked( config->readBoolEntry( CONFIG_ENTRY_START_MINIMIZED, DEFAULT_START_MINIMIZED ) );
+ chkCloseToTray->setChecked( config->readBoolEntry( CONFIG_ENTRY_CLOSE_TO_TRAY, DEFAULT_CLOSE_TO_TRAY ) );
+ chkMinimizeToTray->setChecked( config->readBoolEntry( CONFIG_ENTRY_MINIMIZE_TO_TRAY, DEFAULT_MINIMIZE_TO_TRAY ) );
+ chkShowConnectionErrors->setChecked( config->readBoolEntry( CONFIG_ENTRY_SHOW_CONNECTION_ERRORS, DEFAULT_SHOW_CONNECTION_ERRORS ) );
+ chkKeepNew->setChecked( config->readBoolEntry( CONFIG_ENTRY_KEEP_NEW, DEFAULT_KEEP_NEW ) );
+
+ spbInitial->setValue( config->readNumEntry( CONFIG_ENTRY_INITIAL_TIME, DEFAULT_INITIAL_TIME ) );
+ spbInterval->setValue( config->readNumEntry( CONFIG_ENTRY_INTERVAL_TIME, DEFAULT_INTERVAL_TIME) );
+ spbTimeout->setValue( config->readNumEntry( CONFIG_ENTRY_TIMEOUT_TIME, DEFAULT_TIMEOUT_TIME) );
+}
+
+void ConfigGeneral::defaults( )
+{
+ chkConfirmClose->setChecked( DEFAULT_CONFIRM_CLOSE );
+ chkConfirmDelete->setChecked( DEFAULT_CONFIRM_DELETE );
+ chkStartMinimized->setChecked( DEFAULT_START_MINIMIZED );
+ chkCloseToTray->setChecked( DEFAULT_CLOSE_TO_TRAY );
+ chkMinimizeToTray->setChecked( DEFAULT_MINIMIZE_TO_TRAY );
+ chkShowConnectionErrors->setChecked( DEFAULT_SHOW_CONNECTION_ERRORS );
+ chkKeepNew->setChecked( DEFAULT_KEEP_NEW );
+
+ spbInitial->setValue( DEFAULT_INITIAL_TIME );
+ spbInterval->setValue( DEFAULT_INTERVAL_TIME );
+ spbTimeout->setValue( DEFAULT_TIMEOUT_TIME );
+}
+
+void ConfigGeneral::save( )
+{
+ config->setGroup( CONFIG_GROUP_GENERAL );
+
+ config->writeEntry( CONFIG_ENTRY_CONFIRM_CLOSE, chkConfirmClose->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_CONFIRM_DELETE, chkConfirmDelete->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_START_MINIMIZED, chkStartMinimized->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_CLOSE_TO_TRAY, chkCloseToTray->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_MINIMIZE_TO_TRAY, chkMinimizeToTray->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_SHOW_CONNECTION_ERRORS, chkShowConnectionErrors->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_KEEP_NEW, chkKeepNew->isChecked() );
+ config->writeEntry( CONFIG_ENTRY_INITIAL_TIME, spbInitial->value() );
+ config->writeEntry( CONFIG_ENTRY_INTERVAL_TIME, spbInterval->value() );
+ config->writeEntry( CONFIG_ENTRY_TIMEOUT_TIME, spbTimeout->value() );
+
+ //write configuration to disk
+ config->sync();
+}
+
+void ConfigGeneral::slotChanged( )
+{
+ KCModule::changed();
+}
+
+#include "configgeneral.moc"