-rw-r--r-- | libkdepim/kcmconfigs/kcmkdepimconfig.cpp | 17 | ||||
-rw-r--r-- | libkdepim/kcmconfigs/kcmkdepimconfig.h | 2 | ||||
-rw-r--r-- | libkdepim/kcmconfigs/kdepimconfigwidget.cpp | 313 | ||||
-rw-r--r-- | libkdepim/kcmconfigs/kdepimconfigwidget.h | 45 |
4 files changed, 277 insertions, 100 deletions
diff --git a/libkdepim/kcmconfigs/kcmkdepimconfig.cpp b/libkdepim/kcmconfigs/kcmkdepimconfig.cpp index f26efe0..e77c5ab 100644 --- a/libkdepim/kcmconfigs/kcmkdepimconfig.cpp +++ b/libkdepim/kcmconfigs/kcmkdepimconfig.cpp @@ -46,4 +46,4 @@ extern "C" { - KCModule *create_kabconfig( KPimGlobalPrefs* prefs, QWidget *parent, const char * ) { - return new KCMKdePimConfig( prefs, parent, "kcmkdepimconfig" ); + KCModule *create_kabconfig(QWidget *parent, const char * ) { + return new KCMKdePimConfig(parent, "kcmkdepimconfig" ); } @@ -52,4 +52,4 @@ extern "C" -KCMKdePimConfig::KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent, const char *name ) - : KCModule( prefs, parent, name ) +KCMKdePimConfig::KCMKdePimConfig(QWidget *parent, const char *name ) + : KCModule( KPimGlobalPrefs::instance(), parent, name ) { @@ -57,3 +57,3 @@ KCMKdePimConfig::KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent, const QVBoxLayout *layout = new QVBoxLayout( this ); - mConfigWidget = new KDEPIMConfigWidget( this, "mConfigWidget" ); + mConfigWidget = new KDEPIMConfigWidget( (KPimGlobalPrefs*)getPreferences(), this, "KDEPIMConfigWidget" ); layout->addWidget( mConfigWidget ); @@ -67,3 +67,3 @@ void KCMKdePimConfig::load() { - mConfigWidget->restoreSettings((KPimGlobalPrefs*)getPreferences()); + mConfigWidget->readConfig(); } @@ -72,3 +72,3 @@ void KCMKdePimConfig::save() { - mConfigWidget->saveSettings((KPimGlobalPrefs*)getPreferences()); + mConfigWidget->writeConfig(); } @@ -77,3 +77,4 @@ void KCMKdePimConfig::defaults() { - mConfigWidget->defaults((KPimGlobalPrefs*)getPreferences()); + qDebug("KCMKdePimConfig::defaults()"); + mConfigWidget->setDefaults(); } diff --git a/libkdepim/kcmconfigs/kcmkdepimconfig.h b/libkdepim/kcmconfigs/kcmkdepimconfig.h index fa96eda..b471e53 100644 --- a/libkdepim/kcmconfigs/kcmkdepimconfig.h +++ b/libkdepim/kcmconfigs/kcmkdepimconfig.h @@ -43,3 +43,3 @@ class KCMKdePimConfig : public KCModule public: - KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent = 0, const char *name = 0 ); + KCMKdePimConfig( QWidget *parent = 0, const char *name = 0 ); diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp index 703aeb1..00a07d9 100644 --- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp +++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp @@ -36,2 +36,3 @@ $Id$ #include <qlineedit.h> +#include <qbuttongroup.h> #include <qfile.h> @@ -40,3 +41,4 @@ $Id$ #include <klocale.h> - +#include <kdateedit.h> +#include <kglobal.h> #include <stdlib.h> @@ -73,2 +75,4 @@ $Id$ +#include "qapplication.h" + #include "kpimglobalprefs.h" @@ -78,4 +82,4 @@ $Id$ -KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) - : QWidget( parent, name ) +KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name ) + : KPrefsWidget(prefs, parent, name ) { @@ -92,3 +96,3 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) - QTabWidget *tabWidget = new QTabWidget( this ); + tabWidget = new QTabWidget( this ); topLayout->addWidget( tabWidget ); @@ -96,4 +100,11 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) + setupLocaleTab(); + setupLocaleDateTab(); + setupTimeZoneTab(); + setupExternalAppTab(); + +} - // mailclient page +void KDEPIMConfigWidget::setupExternalAppTab() +{ QWidget *externalAppsPage = new QWidget( this ); @@ -114,4 +125,2 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) - - mExternalAppGroupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), externalAppsPage ); @@ -170,3 +179,2 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) - layout->addWidget( mExternalAppGroupBox ); @@ -176,2 +184,173 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) + +void KDEPIMConfigWidget::setupLocaleDateTab() +{ + QWidget *topFrame = new QWidget( this ); + QGridLayout *topLayout = new QGridLayout( topFrame, 3, 2); + + topLayout->setSpacing(KDialog::spacingHint()); + topLayout->setMargin(KDialog::marginHint()); + int iii = 0; + + + KPrefsWidRadios *syncPrefsGroup = + addWidRadios(i18n("Date Format:"),&(KPimGlobalPrefs::instance()->mPreferredDate),topFrame); + QString format; + if ( QApplication::desktop()->width() < 480 ) + format = "(%d.%m.%Y)"; + else + format = "(%d.%m.%Y|%A %d %B %Y)"; + syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); + if ( QApplication::desktop()->width() < 480 ) + format = "(%m.%d.%Y)"; + else + format = "(%m.%d.%Y|%A %B %d %Y)"; + syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); + if ( QApplication::desktop()->width() < 480 ) + format = "(%Y-%m-%d)"; + else + format = "(%Y-%m-%d|%A %Y %B %d)"; + syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); + syncPrefsGroup->addRadio(i18n("User defined")); + topLayout->addMultiCellWidget( (QWidget*)syncPrefsGroup->groupBox(),iii,iii,0,1); + ++iii; + ++iii; + QLabel * lab; + mUserDateFormatLong = new QLineEdit(topFrame); + lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); + topLayout->addWidget(lab ,iii,0); + topLayout->addWidget(mUserDateFormatLong,iii,1); + ++iii; + mUserDateFormatShort = new QLineEdit(topFrame); + lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); + topLayout->addWidget(lab ,iii,0); + topLayout->addWidget(mUserDateFormatShort,iii,1); + ++iii; + lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); + topLayout->addMultiCellWidget(lab ,iii,iii,0,1); + ++iii; + lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); + topLayout->addMultiCellWidget(lab ,iii,iii,0,1); + ++iii; + lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); + topLayout->addMultiCellWidget(lab ,iii,iii,0,1); + ++iii; + + connect( mUserDateFormatLong, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) ); + connect( mUserDateFormatShort, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) ); + + + tabWidget->addTab( topFrame, i18n( "Date Format" ) ); +} + +void KDEPIMConfigWidget::setupLocaleTab() +{ + + QWidget *topFrame = new QWidget( this ); + QGridLayout *topLayout = new QGridLayout(topFrame,4,2); + + topLayout->setSpacing(KDialog::spacingHint()); + topLayout->setMargin(KDialog::marginHint()); + int iii = 0; + KPrefsWidRadios *syncPrefsGroup = + addWidRadios(i18n("Language:(needs restart)"),&(KPimGlobalPrefs::instance()->mPreferredLanguage),topFrame); + syncPrefsGroup->addRadio(i18n("English")); + syncPrefsGroup->addRadio(i18n("German")); + syncPrefsGroup->addRadio(i18n("French")); + syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); + if ( QApplication::desktop()->width() < 300 ) + ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); + topLayout->addMultiCellWidget( (QWidget*)syncPrefsGroup->groupBox(),iii,iii,0,1); + ++iii; + + syncPrefsGroup = + addWidRadios(i18n("Time Format(nr):"),&(KPimGlobalPrefs::instance()->mPreferredTime),topFrame); + if ( QApplication::desktop()->width() > 300 ) + syncPrefsGroup->groupBox()->setOrientation (Qt::Vertical); + syncPrefsGroup->addRadio(i18n("24:00")); + syncPrefsGroup->addRadio(i18n("12:00am")); + syncPrefsGroup->groupBox()->setOrientation (Qt::Vertical); + topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); + ++iii; + + KPrefsWidBool *sb = addWidBool(i18n("Week starts on Sunday"), + &(KPimGlobalPrefs::instance()->mWeekStartsOnSunday),topFrame); + topLayout->addMultiCellWidget((QWidget*)sb->checkBox(), iii,iii,0,1); + ++iii; + + + tabWidget->addTab( topFrame, i18n( "Locale" ) ); + +} + + +void KDEPIMConfigWidget::setupTimeZoneTab() +{ + QWidget *topFrame = new QWidget( this ); + QGridLayout *topLayout = new QGridLayout( topFrame, 5, 2); + topLayout->setSpacing(KDialog::spacingHint()); + topLayout->setMargin(KDialog::marginHint()); + + QHBox *timeZoneBox = new QHBox( topFrame ); + topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 ); + + new QLabel( i18n("Timezone:"), timeZoneBox ); + mTimeZoneCombo = new QComboBox( timeZoneBox ); + if ( QApplication::desktop()->width() < 300 ) { + mTimeZoneCombo->setMaximumWidth(150); + } + + QStringList list; + list = KGlobal::locale()->timeZoneList(); + mTimeZoneCombo->insertStringList(list); + + // find the currently set time zone and select it + QString sCurrentlySet = KPimGlobalPrefs::instance()->mTimeZoneId; + int nCurrentlySet = 11; + for (int i = 0; i < mTimeZoneCombo->count(); i++) + { + if (mTimeZoneCombo->text(i) == sCurrentlySet) + { + nCurrentlySet = i; + break; + } + } + mTimeZoneCombo->setCurrentItem(nCurrentlySet); + int iii = 1; + KPrefsWidBool *sb = + addWidBool(i18n("Timezone has daylight saving"), + &(KPimGlobalPrefs::instance()->mUseDaylightsaving),topFrame); + topLayout->addMultiCellWidget((QWidget*)sb->checkBox(), iii,iii,0,1); + ++iii; + QLabel* lab = new QLabel( i18n("Actual start and end is the\nsunday before this date."), topFrame ); + topLayout->addMultiCellWidget(lab, iii,iii,0,1); + ++iii; + lab = new QLabel( i18n("The year in the date is ignored."), topFrame ); + topLayout->addMultiCellWidget(lab, iii,iii,0,1); + ++iii; + lab = new QLabel( i18n("Daylight start:"), topFrame ); + topLayout->addWidget(lab, iii,0); + mStartDateSavingEdit = new KDateEdit(topFrame); + topLayout->addWidget(mStartDateSavingEdit, iii,1); + ++iii; + + lab = new QLabel( i18n("Daylight end:"), topFrame ); + topLayout->addWidget(lab, iii,0); + mEndDateSavingEdit = new KDateEdit(topFrame); + topLayout->addWidget(mEndDateSavingEdit, iii,1); + ++iii; + QDate current ( 2001, 1,1); + mStartDateSavingEdit->setDate(current.addDays(KPimGlobalPrefs::instance()->mDaylightsavingStart-1)); + mEndDateSavingEdit->setDate(current.addDays(KPimGlobalPrefs::instance()->mDaylightsavingEnd-1)); + + connect( mStartDateSavingEdit, SIGNAL( dateChanged(QDate)), this, SLOT( modified()) ); + connect( mEndDateSavingEdit, SIGNAL( dateChanged(QDate)), this, SLOT( modified()) ); + connect( mTimeZoneCombo, SIGNAL( activated( int ) ), this, SLOT (modified() ) ); + + + + tabWidget->addTab( topFrame, i18n( "Time Zone" ) ); + +} + void KDEPIMConfigWidget::externalapp_changed( int newApp ) @@ -230,3 +409,3 @@ void KDEPIMConfigWidget::client_changed( int newClient ) - modified(); + KPrefsWidget::modified(); } @@ -446,7 +625,6 @@ void KDEPIMConfigWidget::updateClientWidgets() - - - -void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs) +void KDEPIMConfigWidget::usrReadConfig() { + KPimGlobalPrefs* prefs = KPimGlobalPrefs::instance(); + bool blocked = signalsBlocked(); @@ -454,2 +632,15 @@ void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs) + QString dummy = prefs->mUserDateFormatLong; + mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") )); + dummy = prefs->mUserDateFormatShort; + mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") )); + + QDate current ( 2001, 1,1); + mStartDateSavingEdit->setDate(current.addDays(prefs->mDaylightsavingStart-1)); + mEndDateSavingEdit->setDate(current.addDays(prefs->mDaylightsavingEnd-1)); + setCombo(mTimeZoneCombo,i18n(prefs->mTimeZoneId)); + + + + mEmailClient = prefs->mEmailClient; @@ -493,10 +684,29 @@ void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs) - emit changed( false ); - } -void KDEPIMConfigWidget::saveSettings(KPimGlobalPrefs* prefs) +void KDEPIMConfigWidget::usrWriteConfig() { + KPimGlobalPrefs* prefs = KPimGlobalPrefs::instance(); + saveEditFieldSettings(); + + prefs->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") ); + prefs->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") ); + + prefs->mTimeZoneId = mTimeZoneCombo->currentText(); + QDate date; + date = mStartDateSavingEdit->date(); + int sub = 0; + if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) + sub = 1; + prefs->mDaylightsavingStart = date.dayOfYear()-sub; + date = mEndDateSavingEdit->date(); + if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) + sub = 1; + else + sub = 0; + prefs->mDaylightsavingEnd = date.dayOfYear()-sub; + + prefs->mEmailClient = mEmailClient; @@ -534,4 +744,2 @@ void KDEPIMConfigWidget::saveSettings(KPimGlobalPrefs* prefs) - prefs->writeConfig(); - //release the cache that other views can access the changed values instantanious @@ -539,63 +747,22 @@ void KDEPIMConfigWidget::saveSettings(KPimGlobalPrefs* prefs) - emit changed( false ); } -void KDEPIMConfigWidget::defaults(KPimGlobalPrefs* prefs) -{ - - DefaultAppItem* dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC); - - mEmailClient = dai->_id; - mEmailOtherChannel = dai->_channel; - mEmailOtherMessage = dai->_message; - mEmailOtherMessageParameters = dai->_parameters; - mEmailOtherMessage2 = dai->_message2; - mEmailOtherMessageParameters2 = dai->_parameters2; - - - dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC); - - mPhoneClient = dai->_id; - mPhoneOtherChannel = dai->_channel; - mPhoneOtherMessage = dai->_message; - mPhoneOtherMessageParameters = dai->_parameters; - - dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC); - - mFaxClient = dai->_id; - mFaxOtherChannel = dai->_channel; - mFaxOtherMessage = dai->_message; - mFaxOtherMessageParameters = dai->_parameters; - dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC); - - mSMSClient = dai->_id; - mSMSOtherChannel = dai->_channel; - mSMSOtherMessage = dai->_message; - mSMSOtherMessageParameters = dai->_parameters; - - dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC); - - mPagerClient = dai->_id; - mPagerOtherChannel = dai->_channel; - mPagerOtherMessage = dai->_message; - mPagerOtherMessageParameters = dai->_parameters; - - - dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::SIP, KPimGlobalPrefs::NONE_SIC); - - mSipClient = dai->_id; - mSipOtherChannel = dai->_channel; - mSipOtherMessage = dai->_message; - mSipOtherMessageParameters = dai->_parameters; - - - emit changed( true ); -} - -void KDEPIMConfigWidget::modified() +void KDEPIMConfigWidget::setCombo(QComboBox *combo, const QString & text, + const QStringList *tags) { - emit changed( true ); + if (tags) { + int i = tags->findIndex(text); + if (i > 0) combo->setCurrentItem(i); + } else { + for(int i=0;i<combo->count();++i) { + if (combo->text(i) == text) { + combo->setCurrentItem(i); + break; + } + } + } } + void KDEPIMConfigWidget::textChanged( const QString& text ) diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.h b/libkdepim/kcmconfigs/kdepimconfigwidget.h index e3cfd81..6f26513 100644 --- a/libkdepim/kcmconfigs/kdepimconfigwidget.h +++ b/libkdepim/kcmconfigs/kdepimconfigwidget.h @@ -33,3 +33,3 @@ $Id$ -#include <qwidget.h> +#include <kprefswidget.h> #include <qmap.h> @@ -39,8 +39,2 @@ $Id$ -/* -class QCheckBox; -class QListViewItem; -class QPushButton; -class KListView; -*/ class QComboBox; @@ -49,4 +43,6 @@ class KPimGlobalPrefs; class QGroupBox; +class QTabWidget; +class KDateEdit; -class KDEPIMConfigWidget : public QWidget +class KDEPIMConfigWidget : public KPrefsWidget { @@ -55,16 +51,12 @@ class KDEPIMConfigWidget : public QWidget public: - KDEPIMConfigWidget( QWidget *parent, const char *name = 0 ); - - void restoreSettings(KPimGlobalPrefs* prefs); - void saveSettings(KPimGlobalPrefs* prefs); - void defaults(KPimGlobalPrefs* prefs); - - signals: - void changed( bool ); - + KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name = 0 ); public slots: - void modified(); void textChanged( const QString& text ); + protected: + /** Implement this to read custom configuration widgets. */ + virtual void usrReadConfig(); + /** Implement this to write custom configuration widgets. */ + virtual void usrWriteConfig(); @@ -79,2 +71,10 @@ class KDEPIMConfigWidget : public QWidget private: + void setupExternalAppTab(); + void setupLocaleDateTab(); + void setupLocaleTab(); + void setupTimeZoneTab(); + + void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0); + + void saveEditFieldSettings(); @@ -82,2 +82,11 @@ class KDEPIMConfigWidget : public QWidget + QTabWidget *tabWidget; + + + QLineEdit* mUserDateFormatShort; + QLineEdit* mUserDateFormatLong; + QComboBox* mTimeZoneCombo; + KDateEdit* mStartDateSavingEdit; + KDateEdit* mEndDateSavingEdit; + // void restoreExtensionSettings(); |