summaryrefslogtreecommitdiffabout
path: root/libkdepim
Side-by-side diff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp41
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.h4
-rw-r--r--libkdepim/kpimglobalprefs.cpp7
-rw-r--r--libkdepim/kpimglobalprefs.h6
-rw-r--r--libkdepim/kprefsdialog.cpp2
-rw-r--r--libkdepim/kprefsdialog.h7
6 files changed, 60 insertions, 7 deletions
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index 753d90a..fbfbc45 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -1,213 +1,252 @@
/*
This file is part of KdePim/Pi.
Copyright (c) 2004 Ulf Schenk
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
/*
Enhanced Version of the file for platform independent KDE tools.
Copyright (c) 2004 Ulf Schenk
$Id$
*/
#include <qlayout.h>
#include <qtabwidget.h>
#include <qcombobox.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qbuttongroup.h>
+#include <qcheckbox.h>
#include <qfile.h>
#include <qvbox.h>
#include <qdir.h>
#include <qregexp.h>
+#include <qspinbox.h>
#include <kdialog.h>
#include <kprefsdialog.h>
#include <klocale.h>
+#include <kglobalsettings.h>
#include <kdateedit.h>
#include <kglobal.h>
#include <stdlib.h>
/*US
#include <qcheckbox.h>
#include <qframe.h>
#include <qpushbutton.h>
#include <qcombobox.h>
#include <qlineedit.h>
#include <qlabel.h>
#include <qfile.h>
#include <kconfig.h>
#include <kdebug.h>
#include <kdialog.h>
#include <klistview.h>
#include <klocale.h>
#include <kglobal.h>
#include <kmessagebox.h>
#include <kstandarddirs.h>
#ifndef KAB_EMBEDDED
#include <ktrader.h>
#else // KAB_EMBEDDED
#include <mergewidget.h>
#include <distributionlistwidget.h>
#endif // KAB_EMBEDDED
#include "addresseewidget.h"
#include "extensionconfigdialog.h"
#include "extensionwidget.h"
*/
#include "qapplication.h"
#include "kpimglobalprefs.h"
#include "kdepimconfigwidget.h"
#include <kprefs.h>
#include <kmessagebox.h>
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"));
mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS"));
mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax"));
mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager"));
mExternalAppsMap.insert(ExternalAppHandler::SIP, i18n("SIP"));
QVBoxLayout *topLayout = new QVBoxLayout( this, 0,
KDialog::spacingHint() );
tabWidget = new QTabWidget( this );
topLayout->addWidget( tabWidget );
setupLocaleTab();
setupLocaleDateTab();
setupTimeZoneTab();
setupExternalAppTab();
setupStoreTab();
-
+ setupBackupTab();
}
void KDEPIMConfigWidget::showTimeZoneTab()
{
tabWidget->setCurrentPage ( 3 ) ;
}
+void KDEPIMConfigWidget::setupBackupTab()
+{
+ QVBox *colorPage = new QVBox( this );
+ tabWidget->addTab( colorPage, i18n( "Backup" ) );
+ QWidget* topFrame = new QWidget( colorPage );
+ QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
+ KPrefsWidBool *sb = addWidBool(i18n("Backup enabled"),
+ &(KPimGlobalPrefs::instance()->mBackupEnabled),topFrame);
+ topLayout->addWidget((QWidget*)sb->checkBox());
+ QWidget* bupFrame = new QWidget( topFrame );
+ topLayout->addWidget((bupFrame));
+ QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), bupFrame, SLOT ( setEnabled( bool ) ) );
+ QVBoxLayout *bupLayout = new QVBoxLayout(bupFrame);
+ sb = addWidBool(i18n("Use standard backup dir"),
+ &(KPimGlobalPrefs::instance()->mBackupEnabled),bupFrame);
+ bupLayout->addWidget((QWidget*)sb->checkBox());
+ mBackupUrl = new KURLRequester( bupFrame );
+ mBackupUrl->setURL( KGlobalSettings::backupDataDir() );
+ QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), mBackupUrl ,SLOT ( setDisabled( bool ) ) );
+ bupLayout->addWidget( mBackupUrl );
+
+
+ QHBox *dummy = new QHBox(bupFrame);
+ new QLabel(i18n("Number of Backups:"),dummy);
+ mBackupNumbersSpin = new QSpinBox(1,21,1,dummy);
+ new QLabel(i18n(" "),dummy);
+ bupLayout->addWidget( dummy );
+
+ dummy = new QHBox(bupFrame);
+ new QLabel(i18n("Make backup every "),dummy);
+ mBackupDayCountSpin = new QSpinBox(1,28,1,dummy);
+ new QLabel(i18n(" days"),dummy);
+ new QLabel(i18n(" "),dummy);
+ bupLayout->addWidget( dummy );
+
+}
void KDEPIMConfigWidget::setupStoreTab()
{
QVBox *colorPage = new QVBox( this );
tabWidget->addTab( colorPage, i18n( "Colors" ) );
QWidget* cw = new QWidget( colorPage );
KPrefsWidColor *holidayColor =
addWidColor(i18n("Alternating background of list views"),
&(KPimGlobalPrefs::instance()->mAlternateColor),cw);
QHBoxLayout *topLayout = new QHBoxLayout(cw);
topLayout->addWidget(holidayColor->label());
topLayout->addWidget( (QWidget* )holidayColor->button());
QVBox *storePage = new QVBox( this );
new QLabel( i18n("Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail").arg(KGlobal::dirs()->localkdedir()), storePage );
new QLabel( i18n("<b>New data storage dir:</b>"), storePage );
mStoreUrl = new KURLRequester( storePage );
mStoreUrl->setURL( KGlobal::dirs()->localkdedir() );
#ifdef DESKTOP_VERSION
QString confFile = qApp->applicationDirPath ()+ "/.microkdehome" ;
QFileInfo fi ( confFile );
if ( fi.exists() ) {
KConfig cfg ( confFile );
cfg.setGroup("Global");
QString localKdeDir = cfg.readEntry( "MICROKDEHOME", "x_x_x" );
if ( localKdeDir != "x_x_x" ) {
mStoreUrl->setURL( localKdeDir );
qDebug("Reading config from %s ", confFile.latin1());
}
}
#endif
new QLabel( i18n("New dirs are created automatically"), storePage );
QHBox *bb = new QHBox( storePage );
QPushButton * pb;
if ( QApplication::desktop()->width() < 640 )
pb = new QPushButton ( i18n("Save"), bb );
else
pb = new QPushButton ( i18n("Save settings"), bb );
connect(pb, SIGNAL( clicked() ), this, SLOT ( saveStoreSettings() ) );
pb = new QPushButton ( i18n("Save standard"), bb );
connect(pb, SIGNAL( clicked() ), this, SLOT ( setStandardStore() ) );
#ifdef DESKTOP_VERSION
pb = new QPushButton ( i18n("Save using LOCAL storage"), bb );
connect(pb, SIGNAL( clicked() ), this, SLOT ( setLocalStore() ) );
#endif
new QLabel( i18n("<b>New settings are used\nafter a restart</b>"), storePage );
new QLabel( i18n("Settings are stored in\n%1").arg(QDir::homeDirPath() + "/.microkdehome" ), storePage );
tabWidget->addTab( storePage, i18n( "Data storage path" ) );
}
void KDEPIMConfigWidget::setLocalStore()
{
mStoreUrl->setURL( "LOCAL:kdepimpi" );
saveStoreSettings();
QString message = i18n("'LOCAL' mode makes is possible to run\nKA/Pi and KO/Pi from a USB memory stick.\nIn LOCAL mode the data is stored\nin a path relative to the executable.\nNote, that in LOCAL mode only addressbook\nresource files in\n <path of the executable>/<dirname after LOCAL:>/apps/kabc/*.vcf\n are supported.\nIf you use the standard addressbook settings\nyou do not have to reconfigure any path,\njust restart the application and import\nyour addressbook and calendar data.");
KMessageBox::information( this, message);
}
void KDEPIMConfigWidget::setStandardStore()
{
mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
saveStoreSettings();
}
void KDEPIMConfigWidget::saveStoreSettings()
{
if ( !mStoreUrl->url().isEmpty() ) {
QString path = QDir::homeDirPath();
QString url = mStoreUrl->url();
#ifdef DESKTOP_VERSION
if ( url.startsWith( "LOCAL:" ) ) {
path = qApp->applicationDirPath () ;
}
#endif
KConfig cfg ( path + "/.microkdehome" );
cfg.setGroup("Global");
cfg.writeEntry( "MICROKDEHOME", url );
qDebug("cfg.writeEntry( MICROKDEHOME, %s ", url.latin1());
cfg.sync();
} else {
mStoreUrl->setURL( QDir::homeDirPath() + "/kdepim" );
saveStoreSettings();
}
}
void KDEPIMConfigWidget::setupExternalAppTab()
{
QWidget *externalAppsPage = new QWidget( this );
QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
KDialog::spacingHintSmall() );
mExternalApps = new QComboBox( externalAppsPage );
QMap<ExternalAppHandler::Types, QString>::Iterator it;
for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it )
mExternalApps->insertItem( it.data(), it.key() );
layout->addWidget( mExternalApps );
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.h b/libkdepim/kcmconfigs/kdepimconfigwidget.h
index 984e4e0..c0b92a9 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.h
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.h
@@ -1,161 +1,163 @@
/*
This file is part of KDEPim/Pi.
Copyright (c) 2004 Ulf Schenk
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
/*
Enhanced Version of the file for platform independent KDE tools.
Copyright (c) 2004 Ulf Schenk
$Id$
*/
#ifndef KDEPIMCONFIGWIDGET_H
#define KDEPIMCONFIGWIDGET_H
#include <kprefswidget.h>
#include <kio/kfile/kurlrequester.h>
#include <qmap.h>
#include "externalapphandler.h"
class QComboBox;
class QLineEdit;
class KPimGlobalPrefs;
class QGroupBox;
class QTabWidget;
class KDateEdit;
class KDEPIMConfigWidget : public KPrefsWidget
{
Q_OBJECT
public:
KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name = 0 );
public slots:
void textChanged( const QString& text );
void showTimeZoneTab();
protected:
/** Implement this to read custom configuration widgets. */
virtual void usrReadConfig();
/** Implement this to write custom configuration widgets. */
virtual void usrWriteConfig();
private slots:
// void configureExtension();
// void selectionChanged( QListViewItem* );
// void itemClicked( QListViewItem* );
void client_changed( int newClient );
void externalapp_changed( int newApp );
void saveStoreSettings();
void setStandardStore();
void setLocalStore();
private:
void setupExternalAppTab();
void setupLocaleDateTab();
void setupLocaleTab();
void setupTimeZoneTab();
void setupStoreTab();
+ void setupBackupTab();
KURLRequester* mStoreUrl;
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();
// KListView *mExtensionView;
// QCheckBox *mNameParsing;
// QCheckBox *mViewsSingleClickBox;
// QPushButton *mConfigureButton;
QComboBox* mExternalApps;
QGroupBox* mExternalAppGroupBox;
QComboBox* mClient;
QLineEdit* mChannel;
QLineEdit* mMessage;
QLineEdit* mParameters;
QLineEdit* mMessage2;
QLineEdit* mParameters2;
ExternalAppHandler::Types mCurrentApp;
int mCurrentClient;
int mEmailClient;
QString mEmailOtherChannel;
QString mEmailOtherMessage;
QString mEmailOtherMessageParameters;
QString mEmailOtherMessage2;
QString mEmailOtherMessageParameters2;
int mPhoneClient;
QString mPhoneOtherChannel;
QString mPhoneOtherMessage;
QString mPhoneOtherMessageParameters;
int mFaxClient;
QString mFaxOtherChannel;
QString mFaxOtherMessage;
QString mFaxOtherMessageParameters;
int mSMSClient;
QString mSMSOtherChannel;
QString mSMSOtherMessage;
QString mSMSOtherMessageParameters;
int mPagerClient;
QString mPagerOtherChannel;
QString mPagerOtherMessage;
QString mPagerOtherMessageParameters;
int mSipClient;
QString mSipOtherChannel;
QString mSipOtherMessage;
QString mSipOtherMessageParameters;
-
+ KURLRequester* mBackupUrl;
+ QSpinBox* mBackupDayCountSpin, *mBackupNumbersSpin ;
QMap<ExternalAppHandler::Types, QString> mExternalAppsMap;
// AddresseeWidget *mAddresseeWidget;
};
#endif
diff --git a/libkdepim/kpimglobalprefs.cpp b/libkdepim/kpimglobalprefs.cpp
index 873f0eb..90321b2 100644
--- a/libkdepim/kpimglobalprefs.cpp
+++ b/libkdepim/kpimglobalprefs.cpp
@@ -18,192 +18,199 @@
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
/*
Enhanced Version of the file for platform independent KDE tools.
Copyright (c) 2004 Ulf Schenk
$Id$
*/
#include <kglobal.h>
#include <kconfig.h>
#include <klocale.h>
#include <kdebug.h>
#include <kglobalsettings.h>
#include <kstaticdeleter.h>
#include <qregexp.h>
#include <qfile.h>
#include <stdlib.h>
#include <qtextstream.h>
#include <qapplication.h>
#include "kpimglobalprefs.h"
KPimGlobalPrefs *KPimGlobalPrefs::sInstance = 0;
static KStaticDeleter<KPimGlobalPrefs> staticDeleterGP;
KPimGlobalPrefs::KPimGlobalPrefs( const QString &name )
: KPrefs("microkdeglobalrc")
{
mLocaleDict = 0;
KPrefs::setCurrentGroup("Fonts");
addItemFont("ApplicationFont",&mApplicationFont,KGlobalSettings::generalFont() );
KPrefs::setCurrentGroup("Locale");
addItemInt("PreferredLanguage",&mPreferredLanguage,0);
addItemInt("PreferredTime",&mPreferredTime,0);
addItemInt("PreferredDate",&mPreferredDate,0);
addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
addItemString("UserDateFormatLong", &mUserDateFormatLong, "%AK %d. %b %y");
addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
KPrefs::setCurrentGroup("Colors");
addItemColor("AlternateBGcolor",&mAlternateColor,KGlobalSettings::alternateBackgroundColor());
KPrefs::setCurrentGroup("Time & Date");
addItemString("TimeZoneName",&mTimeZoneId, ("+01:00 Europe/Oslo(CET)") );
addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
addItemBool("TimeZoneAdd30min",&mTimeZoneAdd30min,false);
addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
KPrefs::setCurrentGroup( "ExternalApplications" );
addItemInt( "EmailChannelType", &mEmailClient, OMPI_EMC );
addItemString( "EmailChannel", &mEmailOtherChannel, "" );
addItemString( "EmailChannelMessage", &mEmailOtherMessage, "" );
addItemString( "EmailChannelParameters", &mEmailOtherMessageParameters, "" );
addItemString( "EmailChannelMessage2", &mEmailOtherMessage2, "" );
addItemString( "EmailChannelParameters2", &mEmailOtherMessageParameters2, "" );
addItemInt( "PhoneChannelType", &mPhoneClient, KPPI_PHC );
addItemString( "PhoneChannel", &mPhoneOtherChannel, "" );
addItemString( "PhoneChannelMessage", &mPhoneOtherMessage, "" );
addItemString( "PhoneChannelParameters", &mPhoneOtherMessageParameters, "" );
addItemInt( "FaxChannelType", &mFaxClient, NONE_FAC );
addItemString( "FaxChannel", &mFaxOtherChannel, "" );
addItemString( "FaxChannelMessage", &mFaxOtherMessage, "" );
addItemString( "FaxChannelParameters", &mFaxOtherMessageParameters, "" );
addItemInt( "SMSChannelType", &mSMSClient, NONE_SMC );
addItemString( "SMSChannel", &mSMSOtherChannel, "" );
addItemString( "SMSChannelMessage", &mSMSOtherMessage, "" );
addItemString( "SMSChannelParameters", &mSMSOtherMessageParameters, "" );
addItemInt( "PagerChannelType", &mPagerClient, NONE_PAC );
addItemString( "PagerChannel", &mPagerOtherChannel, "" );
addItemString( "PagerChannelMessage", &mPagerOtherMessage, "" );
addItemString( "PagerChannelParameters", &mPagerOtherMessageParameters, "" );
addItemInt( "SIPChannelType", &mSipClient, KPPI_SIC );
addItemString( "SIPChannel", &mSipOtherChannel, "" );
addItemString( "SIPChannelMessage", &mSipOtherMessage, "" );
addItemString( "SIPChannelParameters", &mSipOtherMessageParameters, "" );
KPrefs::setCurrentGroup( "PhoneAccess" );
addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm");
addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda");
addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i");
+ KPrefs::setCurrentGroup( "BackupSettings" );
+ addItemString("BackupDatadir",&mBackupDatadir,KGlobalSettings::backupDataDir());
+ addItemInt( "BackupNumbers", &mBackupNumbers, 3 );
+ addItemInt( "BackupDayCount", &mBackupDayCount, 2 );
+ addItemBool( "BackupUseDefaultDir",&mBackupUseDefaultDir, true );
+ addItemBool( "BackupEnabled",&mBackupEnabled, false );
+
}
void KPimGlobalPrefs::setGlobalConfig()
{
if ( mLocaleDict == 0 ) {
QString fileName ;
QString name = KGlobal::getAppName() +"/";
#ifndef DESKTOP_VERSION
fileName= QString(getenv("QPEDIR"))+"/pics/kdepim/"+name;
#else
fileName = qApp->applicationDirPath () + "/kdepim/"+ name;
#endif
mLocaleDict = 0;
if ( mPreferredLanguage > 0 && mPreferredLanguage < 5 ) {
if ( mPreferredLanguage == 1 )
fileName = fileName+"germantranslation.txt";
else if ( mPreferredLanguage == 4 )
fileName = fileName+"usertranslation.txt";
else if ( mPreferredLanguage == 2 )
fileName = fileName+"frenchtranslation.txt";
else if ( mPreferredLanguage == 3 )
fileName = fileName+"italiantranslation.txt";
QFile file( fileName );
if (file.open( IO_ReadOnly ) ) {
QTextStream ts( &file );
ts.setEncoding( QTextStream::Latin1 );
//ts.setCodec( QTextCodec::latin1 );
QString text = ts.read();
file.close();
text.replace( QRegExp("\\\\n"), "\n" );
QString line;
QString we;
QString wt;
int br = 0;
int nbr;
nbr = text.find ( "},", br );
line = text.mid( br, nbr - br );
br = nbr+1;
int se, ee, st, et;
mLocaleDict = new QDict<QString>;
mLocaleDict->setAutoDelete( true );
QString end = "{ \"\",\"\" }";
while ( (line != end) && (br > 1) ) {
//qDebug("%d *%s* ", br, line.latin1());
se = line.find("\"")+1;
et = line.findRev("\"",-1);
ee = line.find("\",\"");
st = ee+3;
we = line.mid( se, ee-se );
if ( mPreferredLanguage == 4 )
wt = QString::fromUtf8(line.mid( st, et-st ).latin1());
else
wt = line.mid( st, et-st );
//qDebug("*%s* *%s* ", we.latin1(), wt.latin1());
mLocaleDict->insert( we, new QString (wt) );
nbr = text.find ( "}", br );
line = text.mid( br, nbr - br );
br = nbr+1;
}
//qDebug("end *%s* ", end.latin1());
setLocaleDict( mLocaleDict );
} else {
qDebug("KO: Cannot find translation file %s",fileName.latin1() );
}
}
}
KGlobal::locale()->setHore24Format( !mPreferredTime );
KGlobal::locale()->setWeekStartMonday( !mWeekStartsOnSunday );
KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)mPreferredDate );
KGlobal::locale()->setLanguage( mPreferredLanguage );
QString dummy = mUserDateFormatLong;
KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
dummy = mUserDateFormatShort;
KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
KGlobal::locale()->setDaylightSaving( mUseDaylightsaving,
mDaylightsavingStart,
mDaylightsavingEnd );
KGlobal::locale()->setTimezone( mTimeZoneId, mTimeZoneAdd30min );
KGlobalSettings::setAlternateBackgroundColor(mAlternateColor);
}
KPimGlobalPrefs::~KPimGlobalPrefs()
{
if (sInstance == this)
sInstance = staticDeleterGP.setObject(0);
else
qDebug("Whats this? Error in KPimGlobalPrefs::~KPimGlobalPrefs() ?");
if ( mLocaleDict )
delete mLocaleDict;
}
KPimGlobalPrefs *KPimGlobalPrefs::instance()
{
diff --git a/libkdepim/kpimglobalprefs.h b/libkdepim/kpimglobalprefs.h
index 36cc25a..94ac8ae 100644
--- a/libkdepim/kpimglobalprefs.h
+++ b/libkdepim/kpimglobalprefs.h
@@ -47,99 +47,105 @@ class KPimGlobalPrefs : public KPrefs
enum EMailClients {
NONE_EMC = 0,
OTHER_EMC = 1,
OMPI_EMC = 2,
QTOPIA_EMC = 3,
OPIE_EMC = 4,
OPIE_MAILIT_EMC = 5
};
enum PhoneClients {
NONE_PHC = 0,
OTHER_PHC = 1,
KPPI_PHC = 2
};
enum FaxClients {
NONE_FAC = 0,
OTHER_FAC = 1
};
enum SMSClients {
NONE_SMC = 0,
OTHER_SMC = 1
};
enum PagerClients {
NONE_PAC = 0,
OTHER_PAC = 1
};
enum SIPClients {
NONE_SIC = 0,
OTHER_SIC = 1,
KPPI_SIC = 2
};
private:
KPimGlobalPrefs( const QString &name = QString::null );
static KPimGlobalPrefs *sInstance;
QDict<QString> *mLocaleDict;
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;
bool mTimeZoneAdd30min;
QFont mApplicationFont;
QColor mAlternateColor;
int mEmailClient;
QString mEmailOtherChannel;
QString mEmailOtherMessage;
QString mEmailOtherMessageParameters;
QString mEmailOtherMessage2;
QString mEmailOtherMessageParameters2;
int mPhoneClient;
QString mPhoneOtherChannel;
QString mPhoneOtherMessage;
QString mPhoneOtherMessageParameters;
int mFaxClient;
QString mFaxOtherChannel;
QString mFaxOtherMessage;
QString mFaxOtherMessageParameters;
int mSMSClient;
QString mSMSOtherChannel;
QString mSMSOtherMessage;
QString mSMSOtherMessageParameters;
int mPagerClient;
QString mPagerOtherChannel;
QString mPagerOtherMessage;
QString mPagerOtherMessageParameters;
int mSipClient;
QString mSipOtherChannel;
QString mSipOtherMessage;
QString mSipOtherMessageParameters;
QString mEx2PhoneDevice;
QString mEx2PhoneConnection;
QString mEx2PhoneModel;
+
+ bool mBackupEnabled;
+ QString mBackupDatadir;
+ bool mBackupUseDefaultDir;
+ int mBackupNumbers;
+ int mBackupDayCount;
};
#endif
diff --git a/libkdepim/kprefsdialog.cpp b/libkdepim/kprefsdialog.cpp
index dd9a602..b6ae775 100644
--- a/libkdepim/kprefsdialog.cpp
+++ b/libkdepim/kprefsdialog.cpp
@@ -187,193 +187,193 @@ KPrefsDialogWidTime::KPrefsDialogWidTime(const QString &text,int *reference,
void KPrefsDialogWidTime::readConfig()
{
mSpin->setValue(*mReference);
}
void KPrefsDialogWidTime::writeConfig()
{
*mReference = mSpin->value();
}
QLabel *KPrefsDialogWidTime::label()
{
return mLabel;
}
QSpinBox *KPrefsDialogWidTime::spinBox()
{
return mSpin;
}
KPrefsDialogWidRadios::KPrefsDialogWidRadios(const QString &text,int *reference,
QWidget *parent)
{
mReference = reference;
mBox = new QButtonGroup(1,Qt::Horizontal,text,parent);
}
KPrefsDialogWidRadios::~KPrefsDialogWidRadios()
{
}
void KPrefsDialogWidRadios::addRadio(const QString &text)
{
new QRadioButton(text,mBox);
}
QButtonGroup *KPrefsDialogWidRadios::groupBox()
{
return mBox;
}
void KPrefsDialogWidRadios::readConfig()
{
mBox->setButton(*mReference);
}
void KPrefsDialogWidRadios::writeConfig()
{
*mReference = mBox->id(mBox->selected());
}
KPrefsDialogWidString::KPrefsDialogWidString(const QString &text,QString *reference,
QWidget *parent, QLineEdit::EchoMode echomode)
{
mReference = reference;
mLabel = new QLabel(text,parent);
mEdit = new QLineEdit(parent);
mEdit->setEchoMode( echomode );
}
KPrefsDialogWidString::~KPrefsDialogWidString()
{
}
void KPrefsDialogWidString::readConfig()
{
mEdit->setText(*mReference);
}
void KPrefsDialogWidString::writeConfig()
{
*mReference = mEdit->text();
}
QLabel *KPrefsDialogWidString::label()
{
return mLabel;
}
QLineEdit *KPrefsDialogWidString::lineEdit()
{
return mEdit;
}
KPrefsDialog::KPrefsDialog(KPrefs *prefs,QWidget *parent,char *name,bool modal) :
KDialogBase(IconList,i18n("Preferences"),Ok|Cancel|Default,Ok,parent,
name,modal,true)
{
mPrefs = prefs;
// This seems to cause a crash on exit. Investigate later.
-// mPrefsWids.setAutoDelete(true);
+ mPrefsWids.setAutoDelete(true);
connect(this,SIGNAL(defaultClicked()),SLOT(slotDefault()));
//connect(this,SIGNAL(cancelClicked()),SLOT(slotDefault()));
//connect(this,SIGNAL(cancelClicked()),SLOT(reject()));
}
KPrefsDialog::~KPrefsDialog()
{
}
void KPrefsDialog::addWid(KPrefsDialogWid *wid)
{
mPrefsWids.append(wid);
}
KPrefsDialogWidBool *KPrefsDialog::addWidBool(const QString &text,bool *reference,QWidget *parent)
{
KPrefsDialogWidBool *w = new KPrefsDialogWidBool(text,reference,parent);
addWid(w);
return w;
}
KPrefsDialogWidTime *KPrefsDialog::addWidTime(const QString &text,int *reference,QWidget *parent)
{
KPrefsDialogWidTime *w = new KPrefsDialogWidTime(text,reference,parent);
addWid(w);
return w;
}
KPrefsDialogWidColor *KPrefsDialog::addWidColor(const QString &text,QColor *reference,QWidget *parent)
{
KPrefsDialogWidColor *w = new KPrefsDialogWidColor(text,reference,parent);
addWid(w);
return w;
}
KPrefsDialogWidRadios *KPrefsDialog::addWidRadios(const QString &text,int *reference,QWidget *parent)
{
KPrefsDialogWidRadios *w = new KPrefsDialogWidRadios(text,reference,parent);
addWid(w);
return w;
}
KPrefsDialogWidString *KPrefsDialog::addWidString(const QString &text,QString *reference,QWidget *parent)
{
KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent);
addWid(w);
return w;
}
KPrefsDialogWidString *KPrefsDialog::addWidPassword(const QString &text,QString *reference,QWidget *parent)
{
KPrefsDialogWidString *w = new KPrefsDialogWidString(text,reference,parent,QLineEdit::Password);
addWid(w);
return w;
}
KPrefsDialogWidFont *KPrefsDialog::addWidFont(const QString &sampleText,const QString &buttonText,
QFont *reference,QWidget *parent)
{
KPrefsDialogWidFont *w = new KPrefsDialogWidFont(sampleText,buttonText,reference,parent);
addWid(w);
return w;
}
void KPrefsDialog::setDefaults()
{
mPrefs->setDefaults();
readConfig();
}
void KPrefsDialog::readConfig()
{
// kdDebug(5300) << "KPrefsDialog::readConfig()" << endl;
KPrefsDialogWid *wid;
for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) {
wid->readConfig();
}
usrReadConfig();
}
void KPrefsDialog::writeConfig()
{
// kdDebug(5300) << "KPrefsDialog::writeConfig()" << endl;
KPrefsDialogWid *wid;
for(wid = mPrefsWids.first();wid;wid=mPrefsWids.next()) {
wid->writeConfig();
}
usrWriteConfig();
// kdDebug(5300) << "KPrefsDialog::writeConfig() now writing..." << endl;
diff --git a/libkdepim/kprefsdialog.h b/libkdepim/kprefsdialog.h
index ad13b78..efcb86a 100644
--- a/libkdepim/kprefsdialog.h
+++ b/libkdepim/kprefsdialog.h
@@ -1,278 +1,277 @@
/*
This file is part of KOrganizer.
Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#ifndef _KPREFSDIALOG_H
#define _KPREFSDIALOG_H
// $Id$
#include <qptrlist.h>
#include <qlineedit.h>
#include <kdialogbase.h>
class KPrefs;
class KPrefsDialog;
class KColorButton;
class QCheckBox;
class QLabel;
class QSpinBox;
class QButtonGroup;
/**
@short Base class for widgets used by @ref KPrefsDialog.
@author Cornelius Schumacher
@see KPrefsDialog
This class provides the interface for the preferences widgets used by
KPrefsDialog.
*/
-class KPrefsDialogWid
+class KPrefsDialogWid : public QObject
{
public:
/**
This function is called to read value of the setting from the
stored configuration and display it in the widget.
*/
virtual void readConfig() = 0;
/**
This function is called to write the current setting of the widget to the
stored configuration.
*/
virtual void writeConfig() = 0;
};
/**
@short Widget for bool settings in @ref KPrefsDialog.
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 KPrefsDialogWidBool : public KPrefsDialogWid
{
public:
/**
Create a bool widget consisting of a QCheckbox.
@param text Text of QCheckBox.
@param reference Pointer to variable read and written by this widget.
@param parent Parent widget.
*/
KPrefsDialogWidBool(const QString &text,bool *reference,QWidget *parent);
/**
Return the QCheckbox used by this widget.
*/
QCheckBox *checkBox();
void readConfig();
void writeConfig();
private:
bool *mReference;
QCheckBox *mCheck;
};
/**
@short Widget for time settings in @ref KPrefsDialog.
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 KPrefsDialogWidTime : public KPrefsDialogWid
{
public:
/**
Create a time widget consisting of a label and a spinbox.
@param text Text of Label.
@param reference Pointer to variable read and written by this widget.
@param parent Parent widget.
*/
KPrefsDialogWidTime(const QString &text,int *reference,QWidget *parent);
/**
Return QLabel used by this widget.
*/
QLabel *label();
/**
Return QSpinBox used by this widget.
*/
QSpinBox *spinBox();
void readConfig();
void writeConfig();
private:
int *mReference;
QLabel *mLabel;
QSpinBox *mSpin;
};
/**
@short Widget for color settings in @ref KPrefsDialog.
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 KPrefsDialogWidColor : public QObject, public KPrefsDialogWid
+class KPrefsDialogWidColor : public KPrefsDialogWid
{
- Q_OBJECT
public:
/**
Create a color widget consisting of a test field and a button for opening
a color dialog.
@param text Text of button.
@param reference Pointer to variable read and written by this widget.
@param parent Parent widget.
*/
KPrefsDialogWidColor(const QString &text,QColor *reference,QWidget *parent);
/**
Destruct color setting widget.
*/
~KPrefsDialogWidColor();
/**
Return QLabel for the button
*/
QLabel *label();
/**
Return button opening the color dialog.
*/
KColorButton *button();
void readConfig();
void writeConfig();
private:
QColor *mReference;
QLabel *mLabel;
KColorButton *mButton;
};
/**
@short Widget for font settings in @ref KPrefsDialog.
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 KPrefsDialogWidFont : public QObject, public KPrefsDialogWid
+class KPrefsDialogWidFont : public KPrefsDialogWid
{
Q_OBJECT
public:
/**
Create a font widget consisting of a test field and a button for opening
a font dialog.
@param label Text of label.
@param reference Pointer to variable read and written by this widget.
@param parent Parent widget.
*/
KPrefsDialogWidFont(const QString &sampleText,const QString &labelText,
QFont *reference,QWidget *parent);
/**
Destruct font setting widget.
*/
~KPrefsDialogWidFont();
/**
Return label.
*/
QLabel *label();
/**
Return QFrame used as preview field.
*/
QLabel *preview();
/**
Return button opening the font dialog.
*/
QPushButton *button();
void readConfig();
void writeConfig();
protected slots:
void selectFont();
private:
QFont *mReference;
QLabel *mLabel;
QLabel *mPreview;
QPushButton *mButton;
};
/**
@short Widget for settings represented by a group of radio buttons in
@ref KPrefsDialog.
This class provides a widget for configuring selections. It is meant to be
used by KPrefsDialog. The user is responsible for the layout management. The
setting is interpreted as an int value, corresponding to the position of the
radio button. The position of the button is defined by the sequence of @ref
addRadio() calls, starting with 0.
*/
class KPrefsDialogWidRadios : public KPrefsDialogWid
{
public:
/**
Create a widget for selection of an option. It consists of a box with
several radio buttons.
@param text Text of main box.
@param reference Pointer to variable read and written by this widget.
@param parent Parent widget.
*/
KPrefsDialogWidRadios(const QString &text,int *reference,QWidget *parent);
virtual ~KPrefsDialogWidRadios();
/**
Add a radio button.
@param text Text of the button.
*/
void addRadio(const QString &text);
/**
Return the box widget used by this widget.
*/
QButtonGroup *groupBox();
void readConfig();
void writeConfig();
private:
int *mReference;
QButtonGroup *mBox;
};
/**
@short Widget for string settings in @ref KPrefsDialog.
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.