summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/kprefs.cpp463
-rw-r--r--libkdepim/kprefs.h301
2 files changed, 0 insertions, 764 deletions
diff --git a/libkdepim/kprefs.cpp b/libkdepim/kprefs.cpp
deleted file mode 100644
index f5e5e5a..0000000
--- a/libkdepim/kprefs.cpp
+++ b/dev/null
@@ -1,463 +0,0 @@
-/*
- This file is part of KOrganizer.
- Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-
-// $Id$
-
-#include <qcolor.h>
-
-#include <kconfig.h>
-#include <kstandarddirs.h>
-#include <kglobal.h>
-#include <kdebug.h>
-
-#include "kprefs.h"
-
-class KPrefsItemBool : public KPrefsItem {
- public:
- KPrefsItemBool(const QString &group,const QString &name,bool *,bool defaultValue=true);
- virtual ~KPrefsItemBool() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- bool *mReference;
- bool mDefault;
-};
-
-class KPrefsItemInt : public KPrefsItem {
- public:
- KPrefsItemInt(const QString &group,const QString &name,int *,int defaultValue=0);
- virtual ~KPrefsItemInt() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- int *mReference;
- int mDefault;
-};
-
-
-class KPrefsItemColor : public KPrefsItem {
- public:
- KPrefsItemColor(const QString &group,const QString &name,QColor *,
- const QColor &defaultValue=QColor(128,128,128));
- virtual ~KPrefsItemColor() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- QColor *mReference;
- QColor mDefault;
-};
-
-
-class KPrefsItemFont : public KPrefsItem {
- public:
- KPrefsItemFont(const QString &group,const QString &name,QFont *,
- const QFont &defaultValue=QFont("helvetica",12));
- virtual ~KPrefsItemFont() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- QFont *mReference;
- QFont mDefault;
-};
-
-
-class KPrefsItemString : public KPrefsItem {
- public:
- KPrefsItemString(const QString &group,const QString &name,QString *,
- const QString &defaultValue="", bool isPassword=false);
- virtual ~KPrefsItemString() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- QString *mReference;
- QString mDefault;
- bool mPassword;
-};
-
-
-class KPrefsItemStringList : public KPrefsItem {
- public:
- KPrefsItemStringList(const QString &group,const QString &name,QStringList *,
- const QStringList &defaultValue=QStringList());
- virtual ~KPrefsItemStringList() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- QStringList *mReference;
- QStringList mDefault;
-};
-
-
-class KPrefsItemIntList : public KPrefsItem {
- public:
- KPrefsItemIntList(const QString &group,const QString &name,QValueList<int> *,
- const QValueList<int> &defaultValue=QValueList<int>());
- virtual ~KPrefsItemIntList() {}
-
- void setDefault();
- void readConfig(KConfig *);
- void writeConfig(KConfig *);
-
- private:
- QValueList<int> *mReference;
- QValueList<int> mDefault;
-};
-
-
-KPrefsItemBool::KPrefsItemBool(const QString &group,const QString &name,
- bool *reference,bool defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemBool::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemBool::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-
-void KPrefsItemBool::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readBoolEntry(mName,mDefault);
-}
-
-
-KPrefsItemInt::KPrefsItemInt(const QString &group,const QString &name,
- int *reference,int defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemInt::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemInt::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemInt::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readNumEntry(mName,mDefault);
-}
-
-
-KPrefsItemColor::KPrefsItemColor(const QString &group,const QString &name,
- QColor *reference,const QColor &defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemColor::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemColor::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemColor::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readColorEntry(mName,&mDefault);
-
-}
-
-
-KPrefsItemFont::KPrefsItemFont(const QString &group,const QString &name,
- QFont *reference,const QFont &defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemFont::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemFont::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemFont::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readFontEntry(mName,&mDefault);
-}
-
-
-QString endecryptStr( const QString &aStr )
-{
- QString result;
- uint i;
- for ( i = 0; i < aStr.length(); i++)
- result += (aStr.at(i).unicode() < 0x20) ?
- aStr.at(i) :
- QChar(0x1001F - aStr.at(i).unicode());
- return result;
-}
-
-
-KPrefsItemString::KPrefsItemString(const QString &group,const QString &name,
- QString *reference,const QString &defaultValue,
- bool isPassword) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
- mPassword = isPassword;
-}
-
-void KPrefsItemString::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemString::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- if ( mPassword )
- config->writeEntry(mName, endecryptStr( *mReference ) );
- else
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemString::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
-
- QString value;
- if ( mPassword ) {
- value = config->readEntry( mName, endecryptStr( mDefault ) );
- *mReference = endecryptStr( value );
- } else {
- *mReference = config->readEntry( mName, mDefault );
- }
-}
-
-
-KPrefsItemStringList::KPrefsItemStringList(const QString &group,const QString &name,
- QStringList *reference,const QStringList &defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemStringList::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemStringList::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemStringList::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readListEntry(mName);
-}
-
-
-KPrefsItemIntList::KPrefsItemIntList(const QString &group,const QString &name,
- QValueList<int> *reference,const QValueList<int> &defaultValue) :
- KPrefsItem(group,name)
-{
- mReference = reference;
- mDefault = defaultValue;
-}
-
-void KPrefsItemIntList::setDefault()
-{
- *mReference = mDefault;
-}
-
-void KPrefsItemIntList::writeConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- config->writeEntry(mName,*mReference);
-}
-
-void KPrefsItemIntList::readConfig(KConfig *config)
-{
- config->setGroup(mGroup);
- *mReference = config->readIntListEntry(mName);
-}
-
-
-QString *KPrefs::mCurrentGroup = 0;
-
-KPrefs::KPrefs(const QString &configname)
-{
- if (!configname.isEmpty()) {
- //qDebug("KPrefs::KPrefs %s",configname.latin1() );
- mConfig = new KConfig(locateLocal("config",configname));
- } else {
- mConfig = KGlobal::config();
- }
-
- mItems.setAutoDelete(true);
-
- // Set default group
- if (mCurrentGroup == 0) mCurrentGroup = new QString("No Group");
-}
-
-KPrefs::~KPrefs()
-{
- if (mConfig != KGlobal::config()) {
- delete mConfig;
- }
-}
-
-void KPrefs::setCurrentGroup(const QString &group)
-{
- if (mCurrentGroup) delete mCurrentGroup;
- mCurrentGroup = new QString(group);
-}
-
-KConfig *KPrefs::config() const
-{
- return mConfig;
-}
-
-void KPrefs::setDefaults()
-{
- KPrefsItem *item;
- for(item = mItems.first();item;item = mItems.next()) {
- item->setDefault();
- }
-
- usrSetDefaults();
-}
-
-void KPrefs::readConfig()
-{
- KPrefsItem *item;
- for(item = mItems.first();item;item = mItems.next()) {
- item->readConfig(mConfig);
- }
-
- usrReadConfig();
-}
-
-void KPrefs::writeConfig()
-{
- KPrefsItem *item;
- for(item = mItems.first();item;item = mItems.next()) {
- item->writeConfig(mConfig);
- }
-
- usrWriteConfig();
-
- mConfig->sync();
-}
-
-
-void KPrefs::addItem(KPrefsItem *item)
-{
- mItems.append(item);
-}
-
-void KPrefs::addItemBool(const QString &key,bool *reference,bool defaultValue)
-{
- addItem(new KPrefsItemBool(*mCurrentGroup,key,reference,defaultValue));
-}
-
-void KPrefs::addItemInt(const QString &key,int *reference,int defaultValue)
-{
- addItem(new KPrefsItemInt(*mCurrentGroup,key,reference,defaultValue));
-}
-
-void KPrefs::addItemColor(const QString &key,QColor *reference,const QColor &defaultValue)
-{
- addItem(new KPrefsItemColor(*mCurrentGroup,key,reference,defaultValue));
-}
-
-void KPrefs::addItemFont(const QString &key,QFont *reference,const QFont &defaultValue)
-{
- addItem(new KPrefsItemFont(*mCurrentGroup,key,reference,defaultValue));
-}
-
-void KPrefs::addItemString(const QString &key,QString *reference,const QString &defaultValue)
-{
- addItem(new KPrefsItemString(*mCurrentGroup,key,reference,defaultValue,false));
-}
-
-void KPrefs::addItemPassword(const QString &key,QString *reference,const QString &defaultValue)
-{
- addItem(new KPrefsItemString(*mCurrentGroup,key,reference,defaultValue,true));
-}
-
-void KPrefs::addItemStringList(const QString &key,QStringList *reference,
- const QStringList &defaultValue)
-{
- addItem(new KPrefsItemStringList(*mCurrentGroup,key,reference,defaultValue));
-}
-
-void KPrefs::addItemIntList(const QString &key,QValueList<int> *reference,
- const QValueList<int> &defaultValue)
-{
- addItem(new KPrefsItemIntList(*mCurrentGroup,key,reference,defaultValue));
-}
diff --git a/libkdepim/kprefs.h b/libkdepim/kprefs.h
deleted file mode 100644
index 7014bb8..0000000
--- a/libkdepim/kprefs.h
+++ b/dev/null
@@ -1,301 +0,0 @@
-/*
- This file is part of KOrganizer.
- Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-#ifndef _KPREFS_H
-#define _KPREFS_H
-// $Id$
-
-#include <qptrlist.h>
-#include <qcolor.h>
-#include <qfont.h>
-#include <qstringlist.h>
-
-class KConfig;
-
-/**
- @short Class for storing a preferences setting
- @author Cornelius Schumacher
- @see KPref
-
- This class represents one preferences setting as used by @ref KPrefs.
- Subclasses of KPrefsItem implement storage functions for a certain type of
- setting. Normally you don't have to use this class directly. Use the special
- addItem() functions of KPrefs instead. If you subclass this class you will
- have to register instances with the function KPrefs::addItem().
-*/
-class KPrefsItem {
- public:
- /**
- Constructor.
-
- @param group Config file group.
- @param name Config file key.
- */
- KPrefsItem(const QString &group,const QString &name) :
- mGroup(group),mName(name) {}
- /**
- Destructor.
- */
- virtual ~KPrefsItem() {}
-
- /**
- This function is called by @ref KPrefs to set this setting to its default
- value.
- */
- virtual void setDefault() = 0;
- /**
- This function is called by @ref KPrefs to read the value for this setting
- from a config file.
- value.
- */
- virtual void readConfig(KConfig *) = 0;
- /**
- This function is called by @ref KPrefs to write the value of this setting
- to a config file.
- */
- virtual void writeConfig(KConfig *) = 0;
-
- protected:
- QString mGroup;
- QString mName;
-};
-
-/**
- @short Class for handling preferences settings for an application.
- @author Cornelius Schumacher
- @see KPrefsItem
-
- This class provides an interface to preferences settings. Preferences items
- can be registered by the addItem() function corresponding to the data type of
- the seetting. KPrefs then handles reading and writing of config files and
- setting of default values.
-
- Normally you will subclass KPrefs, add data members for the preferences
- settings and register the members in the constructor of the subclass.
-
- Example:
- <pre>
- class MyPrefs : public KPrefs {
- public:
- MyPrefs()
- {
- setCurrentGroup("MyGroup");
- addItemBool("MySetting1",&mMyBool,false);
- addItemColor("MySetting2",&mMyColor,QColor(1,2,3));
-
- setCurrentGroup("MyOtherGroup");
- addItemFont("MySetting3",&mMyFont,QFont("helvetica",12));
- }
-
- bool mMyBool;
- QColor mMyColor;
- QFont mMyFont;
- }
- </pre>
-
- It might be convenient in many cases to make this subclass of KPrefs a
- singleton for global access from all over the application without passing
- references to the KPrefs object around.
-
- You can set all values to default values by calling @ref setDefaults(), write
- the data to the configuration file by calling @ref writeConfig() and read the
- data from the configuration file by calling @ref readConfig().
-
- If you have items, which are not covered by the existing addItem() functions
- you can add customized code for reading, writing and default setting by
- implementing the functions @ref usrSetDefaults(), @ref usrReadConfig() and
- @ref usrWriteConfig().
-
- Internally preferences settings are stored in instances of subclasses of
- @ref KPrefsItem. You can also add KPrefsItem subclasses for your own types
- and call the generic @ref addItem() to register them.
-*/
-
-class KPrefs {
- public:
- /**
- Constructor.
-
- @param configname name of config file. If no name is given, the default
- config file as returned by kapp()->config() is used.
- */
- KPrefs(const QString &configname=QString::null);
- /**
- Destructor
- */
- virtual ~KPrefs();
-
- /**
- Set preferences to default values. All registered items are set to their
- default values.
- */
- void setDefaults();
-
- /**
- Read preferences from config file. All registered items are set to the
- values read from disk.
- */
- void readConfig();
-
- /**
- Write preferences to config file. The values of all registered items are
- written to disk.
- */
- void writeConfig();
-
- /**
- Set the config file group for subsequent addItem() calls. It is valid
- until setCurrentGroup() is called with a new argument. Call this before
- you add any items. The default value is "No Group".
- */
- static void setCurrentGroup(const QString &group);
-
- /**
- Register a custom @ref KPrefsItem.
- */
- void addItem(KPrefsItem *);
-
- /**
- Register an item of type bool.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemBool(const QString &key,bool *reference,
- bool defaultValue=false);
- /**
- Register an item of type int.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemInt(const QString &key,int *reference,
- int defaultValue=0);
- /**
- Register an item of type QColor.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemColor(const QString &key,QColor *reference,
- const QColor &defaultValue=QColor(128,128,128));
- /**
- Register an item of type QFont.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemFont(const QString &key,QFont *reference,
- const QFont &defaultValue=QFont("helvetica",12));
- /**
- Register an item of type QString.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemString(const QString &key,QString *reference,
- const QString &defaultValue="");
- /**
- Register a password item of type QString. The string value is written
- encrypted to the config file. Note that the current encryption scheme
- is very weak.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemPassword(const QString &key,QString *reference,
- const QString &defaultValue="");
- /**
- Register an item of type QStringList.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemStringList(const QString &key,QStringList *reference,
- const QStringList &defaultValue=QStringList());
-
- /**
- Register an item of type QValueList<int>.
-
- @param key Key used in config file.
- @param reference Pointer to the variable, which is set by readConfig()
- and setDefaults() calls and read by writeConfig() calls.
- @param defaultValue Default value, which is used by setDefaults() and
- when the config file does not yet contain the key of
- this item.
- */
- void addItemIntList(const QString &key,QValueList<int> *reference,
- const QValueList<int> &defaultValue=QValueList<int>());
-
- protected:
- /**
- Implemented by subclasses that use special defaults.
- */
- virtual void usrSetDefaults() {};
- /**
- Implemented by subclasses that read special config values.
- */
- virtual void usrReadConfig() {};
- /**
- Implemented by subclasses that write special config values.
- */
- virtual void usrWriteConfig() {};
-
- /**
- Return the @ref KConfig object used for reading and writing the settings.
- */
- KConfig *config() const;
-
- private:
- static QString *mCurrentGroup;
-
- KConfig *mConfig; // pointer to KConfig object
-
- QPtrList<KPrefsItem> mItems;
-};
-
-#endif