-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 | ||||
-rw-r--r-- | libkdepim/kpimglobalprefs.cpp | 21 | ||||
-rw-r--r-- | libkdepim/kpimglobalprefs.h | 15 | ||||
-rw-r--r-- | libkdepim/kpimprefs.cpp | 6 | ||||
-rw-r--r-- | libkdepim/kpimprefs.h | 2 | ||||
-rw-r--r-- | libkdepim/kprefsdialog.cpp | 106 | ||||
-rw-r--r-- | libkdepim/kprefsdialog.h | 70 | ||||
-rw-r--r-- | libkdepim/libkdepimE.pro | 2 |
11 files changed, 410 insertions, 189 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 @@ -44,18 +44,18 @@ $Id$ #ifndef _WIN32_ 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" ); } } #endif -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 ) { //abort(); QVBoxLayout *layout = new QVBoxLayout( this ); - mConfigWidget = new KDEPIMConfigWidget( this, "mConfigWidget" ); + mConfigWidget = new KDEPIMConfigWidget( (KPimGlobalPrefs*)getPreferences(), this, "KDEPIMConfigWidget" ); layout->addWidget( mConfigWidget ); layout->setSpacing( 0 ); layout->setMargin( 0 ); @@ -65,15 +65,16 @@ KCMKdePimConfig::KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent, const void KCMKdePimConfig::load() { - mConfigWidget->restoreSettings((KPimGlobalPrefs*)getPreferences()); + mConfigWidget->readConfig(); } void KCMKdePimConfig::save() { - mConfigWidget->saveSettings((KPimGlobalPrefs*)getPreferences()); + mConfigWidget->writeConfig(); } 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 @@ -41,7 +41,7 @@ class KCMKdePimConfig : public KCModule Q_OBJECT public: - KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent = 0, const char *name = 0 ); + KCMKdePimConfig( QWidget *parent = 0, const char *name = 0 ); virtual void load(); virtual void save(); 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 @@ -34,11 +34,13 @@ $Id$ #include <qgroupbox.h> #include <qlabel.h> #include <qlineedit.h> +#include <qbuttongroup.h> #include <qfile.h> #include <kdialog.h> #include <klocale.h> - +#include <kdateedit.h> +#include <kglobal.h> #include <stdlib.h> /*US @@ -71,13 +73,15 @@ $Id$ #include "extensionwidget.h" */ +#include "qapplication.h" + #include "kpimglobalprefs.h" #include "kdepimconfigwidget.h" -KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) - : QWidget( parent, name ) +KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name ) + : KPrefsWidget(prefs, parent, name ) { mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email")); mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone")); @@ -90,12 +94,19 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) QVBoxLayout *topLayout = new QVBoxLayout( this, 0, KDialog::spacingHint() ); - QTabWidget *tabWidget = new QTabWidget( this ); + tabWidget = new QTabWidget( this ); topLayout->addWidget( tabWidget ); + setupLocaleTab(); + setupLocaleDateTab(); + setupTimeZoneTab(); + setupExternalAppTab(); + +} - // mailclient page +void KDEPIMConfigWidget::setupExternalAppTab() +{ QWidget *externalAppsPage = new QWidget( this ); QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(), KDialog::spacingHintSmall() ); @@ -112,8 +123,6 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) this, SLOT (externalapp_changed( int ) ) ); - - mExternalAppGroupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), externalAppsPage ); QGridLayout *boxLayout = new QGridLayout( mExternalAppGroupBox->layout(), 4, 2, -1, "gridlayout" ); @@ -168,12 +177,182 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) connect( mParameters2, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) ); - layout->addWidget( mExternalAppGroupBox ); tabWidget->addTab( externalAppsPage, i18n( "External Apps." ) ); } + +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 ) { // first store the current data @@ -228,7 +407,7 @@ void KDEPIMConfigWidget::client_changed( int newClient ) // and at last update the widgets updateClientWidgets(); - modified(); + KPrefsWidget::modified(); } void KDEPIMConfigWidget::saveEditFieldSettings() @@ -444,14 +623,26 @@ void KDEPIMConfigWidget::updateClientWidgets() } - - - -void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs) +void KDEPIMConfigWidget::usrReadConfig() { + KPimGlobalPrefs* prefs = KPimGlobalPrefs::instance(); + bool blocked = signalsBlocked(); blockSignals( true ); + 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; mEmailOtherChannel = prefs->mEmailOtherChannel; mEmailOtherMessage = prefs->mEmailOtherMessage; @@ -491,14 +682,33 @@ void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs) blockSignals( blocked ); - 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; prefs->mEmailOtherChannel = mEmailOtherChannel; prefs->mEmailOtherMessage = mEmailOtherMessage; @@ -532,72 +742,29 @@ void KDEPIMConfigWidget::saveSettings(KPimGlobalPrefs* prefs) prefs->mSipOtherMessage = mSipOtherMessage; prefs->mSipOtherMessageParameters = mSipOtherMessageParameters; - prefs->writeConfig(); - //release the cache that other views can access the changed values instantanious ExternalAppHandler::instance()->loadConfig(); - 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 ) { emit changed( true ); 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 @@ -31,42 +31,34 @@ $Id$ #ifndef KDEPIMCONFIGWIDGET_H #define KDEPIMCONFIGWIDGET_H -#include <qwidget.h> +#include <kprefswidget.h> #include <qmap.h> #include "externalapphandler.h" -/* -class QCheckBox; -class QListViewItem; -class QPushButton; -class KListView; -*/ class QComboBox; class QLineEdit; class KPimGlobalPrefs; class QGroupBox; +class QTabWidget; +class KDateEdit; -class KDEPIMConfigWidget : public QWidget +class KDEPIMConfigWidget : public KPrefsWidget { Q_OBJECT 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(); private slots: @@ -77,9 +69,26 @@ class KDEPIMConfigWidget : public QWidget void externalapp_changed( int newApp ); private: + void setupExternalAppTab(); + void setupLocaleDateTab(); + void setupLocaleTab(); + void setupTimeZoneTab(); + + void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0); + + void saveEditFieldSettings(); void updateClientWidgets(); + QTabWidget *tabWidget; + + + QLineEdit* mUserDateFormatShort; + QLineEdit* mUserDateFormatLong; + QComboBox* mTimeZoneCombo; + KDateEdit* mStartDateSavingEdit; + KDateEdit* mEndDateSavingEdit; + // void restoreExtensionSettings(); // void saveExtensionSettings(); diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp index eb8f1de..12a503d 100644 --- a/libkdepim/kpimglobalprefs.cpp +++ b/libkdepim/kpimglobalprefs.cpp @@ -43,6 +43,27 @@ static KStaticDeleter<KPimGlobalPrefs> staticDeleter; KPimGlobalPrefs::KPimGlobalPrefs( const QString &name ) : KPrefs("microkdeglobalrc") { + + KPrefs::setCurrentGroup("Locale"); + addItemInt("PreferredLanguage",&mPreferredLanguage,0); + addItemInt("PreferredTime",&mPreferredTime,0); + addItemInt("PreferredDate",&mPreferredDate,0); + addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); + //addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); + // addItemBool("ShortDateInViewer",&mShortDateInViewer,false); + addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); + addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); + + KPrefs::setCurrentGroup("Time & Date"); + + addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); + addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); + addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); + addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); + + + + KPrefs::setCurrentGroup( "ExternalApplications" ); addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC ); diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h index 8bd543d..dad78e6 100644 --- a/libkdepim/kpimglobalprefs.h +++ b/libkdepim/kpimglobalprefs.h @@ -84,6 +84,21 @@ class KPimGlobalPrefs : public KPrefs public: + //US I copied the following "locale" settings from KOPrefs + int mPreferredDate; + QString mUserDateFormatLong; + QString mUserDateFormatShort; + int mPreferredLanguage; + int mPreferredTime; + bool mWeekStartsOnSunday; + QString mTimeZoneId; + bool mUseDaylightsaving; + int mDaylightsavingStart; + int mDaylightsavingEnd; + + + + int mEmailClient; QString mEmailOtherChannel; QString mEmailOtherMessage; diff --git a/libkdepim/kpimprefs.cpp b/libkdepim/kpimprefs.cpp index 140a286..a9ea330 100644 --- a/libkdepim/kpimprefs.cpp +++ b/libkdepim/kpimprefs.cpp @@ -64,3 +64,9 @@ void KPimPrefs::usrWriteConfig() config()->setGroup("General"); config()->writeEntry("Custom Categories",mCustomCategories); } + +void KPimPrefs::setCategoryDefaults() +{ + // empty implementation +} + diff --git a/libkdepim/kpimprefs.h b/libkdepim/kpimprefs.h index 9bd9466..860665b 100644 --- a/libkdepim/kpimprefs.h +++ b/libkdepim/kpimprefs.h @@ -58,7 +58,7 @@ class KPimPrefs : public KPrefs protected: - virtual void setCategoryDefaults() = 0; + virtual void setCategoryDefaults(); }; #endif diff --git a/libkdepim/kprefsdialog.cpp b/libkdepim/kprefsdialog.cpp index 205c526..dd9a602 100644 --- a/libkdepim/kprefsdialog.cpp +++ b/libkdepim/kprefsdialog.cpp @@ -57,7 +57,7 @@ #include "kprefsdialog.h" //#include "kprefsdialog.moc" -KPrefsWidBool::KPrefsWidBool(const QString &text,bool *reference, +KPrefsDialogWidBool::KPrefsDialogWidBool(const QString &text,bool *reference, QWidget *parent) { mReference = reference; @@ -65,23 +65,23 @@ KPrefsWidBool::KPrefsWidBool(const QString &text,bool *reference, mCheck = new QCheckBox(text,parent); } -void KPrefsWidBool::readConfig() +void KPrefsDialogWidBool::readConfig() { mCheck->setChecked(*mReference); } -void KPrefsWidBool::writeConfig() +void KPrefsDialogWidBool::writeConfig() { *mReference = mCheck->isChecked(); } -QCheckBox *KPrefsWidBool::checkBox() +QCheckBox *KPrefsDialogWidBool::checkBox() { return mCheck; } -KPrefsWidColor::KPrefsWidColor(const QString &text,QColor *reference, +KPrefsDialogWidColor::KPrefsDialogWidColor(const QString &text,QColor *reference, QWidget *parent) { mReference = reference; @@ -93,32 +93,32 @@ KPrefsWidColor::KPrefsWidColor(const QString &text,QColor *reference, } -KPrefsWidColor::~KPrefsWidColor() +KPrefsDialogWidColor::~KPrefsDialogWidColor() { -// kdDebug(5300) << "KPrefsWidColor::~KPrefsWidColor()" << endl; +// kdDebug(5300) << "KPrefsDialogWidColor::~KPrefsDialogWidColor()" << endl; } -void KPrefsWidColor::readConfig() +void KPrefsDialogWidColor::readConfig() { mButton->setColor(*mReference); } -void KPrefsWidColor::writeConfig() +void KPrefsDialogWidColor::writeConfig() { *mReference = mButton->color(); } -QLabel *KPrefsWidColor::label() +QLabel *KPrefsDialogWidColor::label() { return mLabel; } -KColorButton *KPrefsWidColor::button() +KColorButton *KPrefsDialogWidColor::button() { return mButton; } -KPrefsWidFont::KPrefsWidFont(const QString &sampleText,const QString &labelText, +KPrefsDialogWidFont::KPrefsDialogWidFont(const QString &sampleText,const QString &labelText, QFont *reference,QWidget *parent) { mReference = reference; @@ -134,36 +134,36 @@ KPrefsWidFont::KPrefsWidFont(const QString &sampleText,const QString &labelText, mPreview->setMaximumWidth( (QApplication::desktop()->width() / 2)-10 ); } -KPrefsWidFont::~KPrefsWidFont() +KPrefsDialogWidFont::~KPrefsDialogWidFont() { } -void KPrefsWidFont::readConfig() +void KPrefsDialogWidFont::readConfig() { mPreview->setFont(*mReference); } -void KPrefsWidFont::writeConfig() +void KPrefsDialogWidFont::writeConfig() { *mReference = mPreview->font(); } -QLabel *KPrefsWidFont::label() +QLabel *KPrefsDialogWidFont::label() { return mLabel; } -QLabel *KPrefsWidFont::preview() +QLabel *KPrefsDialogWidFont::preview() { return mPreview; } -QPushButton *KPrefsWidFont::button() +QPushButton *KPrefsDialogWidFont::button() { return mButton; } -void KPrefsWidFont::selectFont() +void KPrefsDialogWidFont::selectFont() { QFont myFont(mPreview->font()); bool ok; @@ -174,7 +174,7 @@ void KPrefsWidFont::selectFont() } -KPrefsWidTime::KPrefsWidTime(const QString &text,int *reference, +KPrefsDialogWidTime::KPrefsDialogWidTime(const QString &text,int *reference, QWidget *parent) { mReference = reference; @@ -184,28 +184,28 @@ KPrefsWidTime::KPrefsWidTime(const QString &text,int *reference, mSpin->setSuffix(":00"); } -void KPrefsWidTime::readConfig() +void KPrefsDialogWidTime::readConfig() { mSpin->setValue(*mReference); } -void KPrefsWidTime::writeConfig() +void KPrefsDialogWidTime::writeConfig() { *mReference = mSpin->value(); } -QLabel *KPrefsWidTime::label() +QLabel *KPrefsDialogWidTime::label() { return mLabel; } -QSpinBox *KPrefsWidTime::spinBox() +QSpinBox *KPrefsDialogWidTime::spinBox() { return mSpin; } -KPrefsWidRadios::KPrefsWidRadios(const QString &text,int *reference, +KPrefsDialogWidRadios::KPrefsDialogWidRadios(const QString &text,int *reference, QWidget *parent) { mReference = reference; @@ -213,32 +213,32 @@ KPrefsWidRadios::KPrefsWidRadios(const QString &text,int *reference, mBox = new QButtonGroup(1,Qt::Horizontal,text,parent); } -KPrefsWidRadios::~KPrefsWidRadios() +KPrefsDialogWidRadios::~KPrefsDialogWidRadios() { } -void KPrefsWidRadios::addRadio(const QString &text) +void KPrefsDialogWidRadios::addRadio(const QString &text) { new QRadioButton(text,mBox); } -QButtonGroup *KPrefsWidRadios::groupBox() +QButtonGroup *KPrefsDialogWidRadios::groupBox() { return mBox; } -void KPrefsWidRadios::readConfig() +void KPrefsDialogWidRadios::readConfig() { mBox->setButton(*mReference); } -void KPrefsWidRadios::writeConfig() +void KPrefsDialogWidRadios::writeConfig() { *mReference = mBox->id(mBox->selected()); } -KPrefsWidString::KPrefsWidString(const QString &text,QString *reference, +KPrefsDialogWidString::KPrefsDialogWidString(const QString &text,QString *reference, QWidget *parent, QLineEdit::EchoMode echomode) { mReference = reference; @@ -248,26 +248,26 @@ KPrefsWidString::KPrefsWidString(const QString &text,QString *reference, mEdit->setEchoMode( echomode ); } -KPrefsWidString::~KPrefsWidString() +KPrefsDialogWidString::~KPrefsDialogWidString() { } -void KPrefsWidString::readConfig() +void KPrefsDialogWidString::readConfig() { mEdit->setText(*mReference); } -void KPrefsWidString::writeConfig() +void KPrefsDialogWidString::writeConfig() { *mReference = mEdit->text(); } -QLabel *KPrefsWidString::label() +QLabel *KPrefsDialogWidString::label() { return mLabel; } -QLineEdit *KPrefsWidString::lineEdit() +QLineEdit *KPrefsDialogWidString::lineEdit() { return mEdit; } @@ -291,57 +291,57 @@ KPrefsDialog::~KPrefsDialog() { } -void KPrefsDialog::addWid(KPrefsWid *wid) +void KPrefsDialog::addWid(KPrefsDialogWid *wid) { mPrefsWids.append(wid); } -KPrefsWidBool *KPrefsDialog::addWidBool(const QString &text,bool *reference,QWidget *parent) +KPrefsDialogWidBool *KPrefsDialog::addWidBool(const QString &text,bool *reference,QWidget *parent) { - KPrefsWidBool *w = new KPrefsWidBool(text,reference,parent); + KPrefsDialogWidBool *w = new KPrefsDialogWidBool(text,reference,parent); addWid(w); return w; } -KPrefsWidTime *KPrefsDialog::addWidTime(const QString &text,int *reference,QWidget *parent) +KPrefsDialogWidTime *KPrefsDialog::addWidTime(const QString &text,int *reference,QWidget *parent) { - KPrefsWidTime *w = new KPrefsWidTime(text,reference,parent); + KPrefsDialogWidTime *w = new KPrefsDialogWidTime(text,reference,parent); addWid(w); return w; } -KPrefsWidColor *KPrefsDialog::addWidColor(const QString &text,QColor *reference,QWidget *parent) +KPrefsDialogWidColor *KPrefsDialog::addWidColor(const QString &text,QColor *reference,QWidget *parent) { - KPrefsWidColor *w = new KPrefsWidColor(text,reference,parent); + KPrefsDialogWidColor *w = new KPrefsDialogWidColor(text,reference,parent); addWid(w); return w; } -KPrefsWidRadios *KPrefsDialog::addWidRadios(const QString &text,int *reference,QWidget *parent) +KPrefsDialogWidRadios *KPrefsDialog::addWidRadios(const QString &text,int *reference,QWidget *parent) { - KPrefsWidRadios *w = new KPrefsWidRadios(text,reference,parent); + KPrefsDialogWidRadios *w = new KPrefsDialogWidRadios(text,reference,parent); addWid(w); return w; } -KPrefsWidString *KPrefsDialog::addWidString(const QString &text,QString *reference,QWidget *parent) +KPrefsDialogWidString *KPrefsDialog::addWidString(const QString &text,QString *reference,QWidget *parent) { - KPrefsWidString *w = new KPrefsWidString(text,reference,parent); + KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent); addWid(w); return w; } -KPrefsWidString *KPrefsDialog::addWidPassword(const QString &text,QString *reference,QWidget *parent) +KPrefsDialogWidString *KPrefsDialog::addWidPassword(const QString &text,QString *reference,QWidget *parent) { - KPrefsWidString *w = new KPrefsWidString(text,reference,parent,QLineEdit::Password); + KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent,QLineEdit::Password); addWid(w); return w; } -KPrefsWidFont *KPrefsDialog::addWidFont(const QString &sampleText,const QString &buttonText, +KPrefsDialogWidFont *KPrefsDialog::addWidFont(const QString &sampleText,const QString &buttonText, QFont *reference,QWidget *parent) { - KPrefsWidFont *w = new KPrefsWidFont(sampleText,buttonText,reference,parent); + KPrefsDialogWidFont *w = new KPrefsDialogWidFont(sampleText,buttonText,reference,parent); addWid(w); return w; } @@ -357,7 +357,7 @@ void KPrefsDialog::readConfig() { // kdDebug(5300) << "KPrefsDialog::readConfig()" << endl; - KPrefsWid *wid; + KPrefsDialogWid *wid; for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) { wid->readConfig(); } @@ -369,7 +369,7 @@ void KPrefsDialog::writeConfig() { // kdDebug(5300) << "KPrefsDialog::writeConfig()" << endl; - KPrefsWid *wid; + KPrefsDialogWid *wid; for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) { wid->writeConfig(); } diff --git a/libkdepim/kprefsdialog.h b/libkdepim/kprefsdialog.h index dceab01..ad13b78 100644 --- a/libkdepim/kprefsdialog.h +++ b/libkdepim/kprefsdialog.h @@ -46,7 +46,7 @@ class QButtonGroup; This class provides the interface for the preferences widgets used by KPrefsDialog. */ -class KPrefsWid +class KPrefsDialogWid { public: /** @@ -67,7 +67,7 @@ class KPrefsWid This class provides a widget for configuring bool values. It is meant to be used by KPrefsDialog. The user is responsible for the layout management. */ -class KPrefsWidBool : public KPrefsWid +class KPrefsDialogWidBool : public KPrefsDialogWid { public: /** @@ -77,7 +77,7 @@ class KPrefsWidBool : public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidBool(const QString &text,bool *reference,QWidget *parent); + KPrefsDialogWidBool(const QString &text,bool *reference,QWidget *parent); /** Return the QCheckbox used by this widget. @@ -99,7 +99,7 @@ class KPrefsWidBool : public KPrefsWid This class provides a widget for configuring time values. It is meant to be used by KPrefsDialog. The user is responsible for the layout management. */ -class KPrefsWidTime : public KPrefsWid +class KPrefsDialogWidTime : public KPrefsDialogWid { public: /** @@ -109,7 +109,7 @@ class KPrefsWidTime : public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidTime(const QString &text,int *reference,QWidget *parent); + KPrefsDialogWidTime(const QString &text,int *reference,QWidget *parent); /** Return QLabel used by this widget. @@ -136,7 +136,7 @@ class KPrefsWidTime : public KPrefsWid This class provides a widget for configuring color values. It is meant to be used by KPrefsDialog. The user is responsible for the layout management. */ -class KPrefsWidColor : public QObject, public KPrefsWid +class KPrefsDialogWidColor : public QObject, public KPrefsDialogWid { Q_OBJECT public: @@ -148,11 +148,11 @@ class KPrefsWidColor : public QObject, public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidColor(const QString &text,QColor *reference,QWidget *parent); + KPrefsDialogWidColor(const QString &text,QColor *reference,QWidget *parent); /** Destruct color setting widget. */ - ~KPrefsWidColor(); + ~KPrefsDialogWidColor(); /** Return QLabel for the button @@ -179,7 +179,7 @@ class KPrefsWidColor : public QObject, public KPrefsWid This class provides a widget for configuring font values. It is meant to be used by KPrefsDialog. The user is responsible for the layout management. */ -class KPrefsWidFont : public QObject, public KPrefsWid +class KPrefsDialogWidFont : public QObject, public KPrefsDialogWid { Q_OBJECT public: @@ -191,12 +191,12 @@ class KPrefsWidFont : public QObject, public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidFont(const QString &sampleText,const QString &labelText, + KPrefsDialogWidFont(const QString &sampleText,const QString &labelText, QFont *reference,QWidget *parent); /** Destruct font setting widget. */ - ~KPrefsWidFont(); + ~KPrefsDialogWidFont(); /** Return label. @@ -235,7 +235,7 @@ class KPrefsWidFont : public QObject, public KPrefsWid radio button. The position of the button is defined by the sequence of @ref addRadio() calls, starting with 0. */ -class KPrefsWidRadios : public KPrefsWid +class KPrefsDialogWidRadios : public KPrefsDialogWid { public: /** @@ -246,8 +246,8 @@ class KPrefsWidRadios : public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidRadios(const QString &text,int *reference,QWidget *parent); - virtual ~KPrefsWidRadios(); + KPrefsDialogWidRadios(const QString &text,int *reference,QWidget *parent); + virtual ~KPrefsDialogWidRadios(); /** Add a radio button. @@ -277,7 +277,7 @@ class KPrefsWidRadios : public KPrefsWid This class provides a widget for configuring string values. It is meant to be used by KPrefsDialog. The user is responsible for the layout management. */ -class KPrefsWidString : public KPrefsWid +class KPrefsDialogWidString : public KPrefsDialogWid { public: /** @@ -287,11 +287,11 @@ class KPrefsWidString : public KPrefsWid @param reference Pointer to variable read and written by this widget. @param parent Parent widget. */ - KPrefsWidString(const QString &text,QString *reference,QWidget *parent,QLineEdit::EchoMode echomode=QLineEdit::Normal); + KPrefsDialogWidString(const QString &text,QString *reference,QWidget *parent,QLineEdit::EchoMode echomode=QLineEdit::Normal); /** Destructor. */ - virtual ~KPrefsWidString(); + virtual ~KPrefsDialogWidString(); /** Return label used by this widget. @@ -320,7 +320,7 @@ class KPrefsWidString : public KPrefsWid subclass it and add the code to create the actual configuration widgets and do the layout management. - KPrefsDialog provides functions to add subclasses of @ref KPrefsWid. For + KPrefsDialog provides functions to add subclasses of @ref KPrefsDialogWid. For these widgets the reading, writing and setting to default values is handled automatically. Custom widgets have to be handled in the functions @ref usrReadConfig() and @ref usrWriteConfig(). @@ -344,66 +344,66 @@ class KPrefsDialog : public KDialogBase virtual ~KPrefsDialog(); /** - Register a custom KPrefsWid object. + Register a custom KPrefsDialogWid object. */ - void addWid(KPrefsWid *); + void addWid(KPrefsDialogWid *); /** - Register a @ref KPrefsWidBool object. + Register a @ref KPrefsDialogWidBool object. @param text Text of bool widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidBool *addWidBool(const QString &text,bool *reference,QWidget *parent); + KPrefsDialogWidBool *addWidBool(const QString &text,bool *reference,QWidget *parent); /** - Register a @ref KPrefsWidTime object. + Register a @ref KPrefsDialogWidTime object. @param text Text of time widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidTime *addWidTime(const QString &text,int *reference,QWidget *parent); + KPrefsDialogWidTime *addWidTime(const QString &text,int *reference,QWidget *parent); /** - Register a @ref KPrefsWidColor object. + Register a @ref KPrefsDialogWidColor object. @param text Text of color widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidColor *addWidColor(const QString &text,QColor *reference,QWidget *parent); + KPrefsDialogWidColor *addWidColor(const QString &text,QColor *reference,QWidget *parent); /** - Register a @ref KPrefsWidRadios object. + Register a @ref KPrefsDialogWidRadios object. @param text Text of radio button box widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidRadios *addWidRadios(const QString &text,int *reference,QWidget *parent); + KPrefsDialogWidRadios *addWidRadios(const QString &text,int *reference,QWidget *parent); /** - Register a @ref KPrefsWidString object. + Register a @ref KPrefsDialogWidString object. @param text Text of string widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidString *addWidString(const QString &text,QString *reference,QWidget *parent); + KPrefsDialogWidString *addWidString(const QString &text,QString *reference,QWidget *parent); /** - Register a password @ref KPrefsWidString object, with echomode set to QLineEdit::Password. + Register a password @ref KPrefsDialogWidString object, with echomode set to QLineEdit::Password. @param text Text of string widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidString *addWidPassword (const QString &text,QString *reference,QWidget *parent); + KPrefsDialogWidString *addWidPassword (const QString &text,QString *reference,QWidget *parent); /** - Register a @ref KPrefsWidFont object. + Register a @ref KPrefsDialogWidFont object. @param sampleText Sample text of font widget. @param buttonText Button text of font widget. @param reference Reference to variable storing the setting. @param parent Parent widget. */ - KPrefsWidFont *addWidFont(const QString &sampleText,const QString &buttonText, + KPrefsDialogWidFont *addWidFont(const QString &sampleText,const QString &buttonText, QFont *reference,QWidget *parent); public slots: @@ -440,7 +440,7 @@ class KPrefsDialog : public KDialogBase private: KPrefs *mPrefs; - QPtrList<KPrefsWid> mPrefsWids; + QPtrList<KPrefsDialogWid> mPrefsWids; }; #endif diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro index 69980e3..2a30ee8 100644 --- a/libkdepim/libkdepimE.pro +++ b/libkdepim/libkdepimE.pro @@ -24,6 +24,7 @@ HEADERS = \ kpimprefs.h \ kpimglobalprefs.h \ kprefsdialog.h \ + kprefswidget.h \ ksyncprofile.h \ ksyncprefsdialog.h \ kcmconfigs/kcmkdepimconfig.h \ @@ -43,6 +44,7 @@ SOURCES = \ kpimprefs.cpp \ kpimglobalprefs.cpp \ kprefsdialog.cpp \ + kprefswidget.cpp \ ksyncprofile.cpp \ ksyncprefsdialog.cpp \ kcmconfigs/kcmkdepimconfig.cpp \ |