-rw-r--r-- | microkde/kdecore/kprefs.cpp | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/microkde/kdecore/kprefs.cpp b/microkde/kdecore/kprefs.cpp index f5e5e5a..71050e7 100644 --- a/microkde/kdecore/kprefs.cpp +++ b/microkde/kdecore/kprefs.cpp @@ -28,96 +28,111 @@ #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 KPrefsItemSize : public KPrefsItem { + public: + KPrefsItemSize(const QString &group,const QString &name,QSize *, + const QSize &defaultValue=QSize()); + ~KPrefsItemSize() {} + + void setDefault(); + void readConfig(KConfig *); + void writeConfig(KConfig *); + + private: + QSize *mReference; + QSize 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; }; @@ -174,96 +189,123 @@ KPrefsItemInt::KPrefsItemInt(const QString &group,const QString &name, 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); } +KPrefsItemSize::KPrefsItemSize(const QString &group,const QString &name, + QSize *reference,const QSize &defaultValue) : + KPrefsItem(group,name) +{ + mReference = reference; + mDefault = defaultValue; +} + +void KPrefsItemSize::setDefault() +{ + *mReference = mDefault; +} + +void KPrefsItemSize::writeConfig(KConfig *config) +{ + config->setGroup(mGroup); + config->writeEntry(mName,*mReference); +} + +void KPrefsItemSize::readConfig(KConfig *config) +{ + config->setGroup(mGroup); + *mReference = config->readSizeEntry(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; } @@ -355,109 +397,115 @@ KPrefs::KPrefs(const QString &configname) //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(); + //qDebug("KPrefs::readConfig: %s", mConfig->getFileName().latin1()); } void KPrefs::writeConfig() { KPrefsItem *item; for(item = mItems.first();item;item = mItems.next()) { item->writeConfig(mConfig); } usrWriteConfig(); - + //qDebug("KPrefs::WriteConfig: %s", mConfig->getFileName().latin1()); 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::addItemSize(const QString &key,QSize *reference,const QSize &defaultValue) +{ + addItem(new KPrefsItemSize(*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)); } |