23 #include <tqvariant.h>
25 #include <tdeconfig.h>
26 #include <kstandarddirs.h>
27 #include <tdeglobal.h>
28 #include <tdeglobalsettings.h>
31 #include "kstringhandler.h"
33 #include "tdeconfigskeleton.h"
41 TDEConfigSkeleton::ItemString::ItemString(
const TQString &group,
const TQString &key,
43 const TQString &defaultValue,
45 : TDEConfigSkeletonGenericItem<TQString>( group, key, reference, defaultValue ),
52 if ( mReference != mLoadedValue )
55 if ((mDefault == mReference) && !config->
hasDefault( mKey))
57 else if ( mType == Path )
59 else if ( mType == Password )
75 else if ( mType == Password )
83 mReference = config->
readEntry( mKey, mDefault );
86 mLoadedValue = mReference;
88 readImmutability( config );
93 mReference = p.toString();
98 return TQVariant(mReference);
101 TDEConfigSkeleton::ItemPassword::ItemPassword(
const TQString &group,
const TQString &key,
103 const TQString &defaultValue)
104 :
ItemString( group, key, reference, defaultValue, Password )
108 TDEConfigSkeleton::ItemPath::ItemPath(
const TQString &group,
const TQString &key,
110 const TQString &defaultValue)
111 : ItemString( group, key, reference, defaultValue, Path )
115 TDEConfigSkeleton::ItemProperty::ItemProperty(
const TQString &group,
117 TQVariant &reference,
118 TQVariant defaultValue )
119 : TDEConfigSkeletonGenericItem<TQVariant>( group, key, reference, defaultValue )
127 mLoadedValue = mReference;
129 readImmutability( config );
142 TDEConfigSkeleton::ItemBool::ItemBool(
const TQString &group,
const TQString &key,
143 bool &reference,
bool defaultValue )
144 : TDEConfigSkeletonGenericItem<bool>( group, key, reference, defaultValue )
152 mLoadedValue = mReference;
154 readImmutability( config );
159 mReference = p.toBool();
164 return TQVariant( mReference, 42 );
168 TDEConfigSkeleton::ItemInt::ItemInt(
const TQString &group,
const TQString &key,
169 int &reference,
int defaultValue )
170 : TDEConfigSkeletonGenericItem<int>( group, key, reference, defaultValue )
171 ,mHasMin(false), mHasMax(false)
180 mReference = TQMAX(mReference, mMin);
182 mReference = TQMIN(mReference, mMax);
183 mLoadedValue = mReference;
185 readImmutability( config );
190 mReference = p.toInt();
195 return TQVariant(mReference);
201 return TQVariant(mMin);
208 return TQVariant(mMax);
212 void TDEConfigSkeleton::ItemInt::setMinValue(
int v)
218 void TDEConfigSkeleton::ItemInt::setMaxValue(
int v)
225 TDEConfigSkeleton::ItemInt64::ItemInt64(
const TQString &group,
const TQString &key,
226 TQ_INT64 &reference, TQ_INT64 defaultValue )
227 : TDEConfigSkeletonGenericItem<TQ_INT64>( group, key, reference, defaultValue )
228 ,mHasMin(false), mHasMax(false)
237 mReference = TQMAX(mReference, mMin);
239 mReference = TQMIN(mReference, mMax);
240 mLoadedValue = mReference;
242 readImmutability( config );
247 mReference = p.toLongLong();
252 return TQVariant(mReference);
258 return TQVariant(mMin);
265 return TQVariant(mMax);
269 void TDEConfigSkeleton::ItemInt64::setMinValue(TQ_INT64 v)
275 void TDEConfigSkeleton::ItemInt64::setMaxValue(TQ_INT64 v)
281 TDEConfigSkeleton::ItemEnum::ItemEnum(
const TQString &group,
const TQString &key,
283 const TQValueList<Choice> &choices,
285 : ItemInt( group, key, reference, defaultValue ), mChoices( choices )
292 if (!config->
hasKey(mKey))
294 mReference = mDefault;
300 TQString tmp = config->
readEntry( mKey ).lower();
301 for(TQValueList<Choice>::ConstIterator it = mChoices.begin();
302 it != mChoices.end(); ++it, ++i)
304 if ((*it).name.lower() == tmp)
310 if (mReference == -1)
313 mLoadedValue = mReference;
315 readImmutability( config );
320 if ( mReference != mLoadedValue )
323 if ((mDefault == mReference) && !config->
hasDefault( mKey))
325 else if ((mReference >= 0) && (mReference < (
int) mChoices.count()))
326 config->
writeEntry( mKey, mChoices[mReference].name );
332 TQValueList<TDEConfigSkeleton::ItemEnum::Choice> TDEConfigSkeleton::ItemEnum::choices()
const
338 TDEConfigSkeleton::ItemUInt::ItemUInt(
const TQString &group,
const TQString &key,
339 unsigned int &reference,
340 unsigned int defaultValue )
341 : TDEConfigSkeletonGenericItem<unsigned int>( group, key, reference, defaultValue )
342 ,mHasMin(false), mHasMax(false)
351 mReference = TQMAX(mReference, mMin);
353 mReference = TQMIN(mReference, mMax);
354 mLoadedValue = mReference;
356 readImmutability( config );
361 mReference = p.toUInt();
366 return TQVariant(mReference);
372 return TQVariant(mMin);
379 return TQVariant(mMax);
383 void TDEConfigSkeleton::ItemUInt::setMinValue(
unsigned int v)
389 void TDEConfigSkeleton::ItemUInt::setMaxValue(
unsigned int v)
396 TDEConfigSkeleton::ItemUInt64::ItemUInt64(
const TQString &group,
const TQString &key,
397 TQ_UINT64 &reference, TQ_UINT64 defaultValue )
398 : TDEConfigSkeletonGenericItem<TQ_UINT64>( group, key, reference, defaultValue )
399 ,mHasMin(false), mHasMax(false)
408 mReference = TQMAX(mReference, mMin);
410 mReference = TQMIN(mReference, mMax);
411 mLoadedValue = mReference;
413 readImmutability( config );
418 mReference = p.toULongLong();
423 return TQVariant(mReference);
429 return TQVariant(mMin);
436 return TQVariant(mMax);
440 void TDEConfigSkeleton::ItemUInt64::setMinValue(TQ_UINT64 v)
446 void TDEConfigSkeleton::ItemUInt64::setMaxValue(TQ_UINT64 v)
452 TDEConfigSkeleton::ItemLong::ItemLong(
const TQString &group,
const TQString &key,
453 long &reference,
long defaultValue )
454 : TDEConfigSkeletonGenericItem<long>( group, key, reference, defaultValue )
455 ,mHasMin(false), mHasMax(false)
464 mReference = TQMAX(mReference, mMin);
466 mReference = TQMIN(mReference, mMax);
467 mLoadedValue = mReference;
469 readImmutability( config );
474 mReference = p.toLongLong();
479 return TQVariant((TQ_LLONG) mReference);
485 return TQVariant((TQ_LLONG) mMin);
492 return TQVariant((TQ_LLONG) mMax);
496 void TDEConfigSkeleton::ItemLong::setMinValue(
long v)
502 void TDEConfigSkeleton::ItemLong::setMaxValue(
long v)
509 TDEConfigSkeleton::ItemULong::ItemULong(
const TQString &group,
const TQString &key,
510 unsigned long &reference,
511 unsigned long defaultValue )
512 : TDEConfigSkeletonGenericItem<unsigned long>( group, key, reference, defaultValue )
513 ,mHasMin(false), mHasMax(false)
522 mReference = TQMAX(mReference, mMin);
524 mReference = TQMIN(mReference, mMax);
525 mLoadedValue = mReference;
527 readImmutability( config );
532 mReference = p.toULongLong();
537 return TQVariant((TQ_ULLONG) mReference);
543 return TQVariant((TQ_ULLONG) mMin);
550 return TQVariant((TQ_ULLONG) mMax);
554 void TDEConfigSkeleton::ItemULong::setMinValue(
unsigned long v)
560 void TDEConfigSkeleton::ItemULong::setMaxValue(
unsigned long v)
567 TDEConfigSkeleton::ItemDouble::ItemDouble(
const TQString &group,
const TQString &key,
568 double &reference,
double defaultValue )
569 : TDEConfigSkeletonGenericItem<double>( group, key, reference, defaultValue )
570 ,mHasMin(false), mHasMax(false)
579 mReference = TQMAX(mReference, mMin);
581 mReference = TQMIN(mReference, mMax);
582 mLoadedValue = mReference;
584 readImmutability( config );
589 mReference = p.toDouble();
594 return TQVariant(mReference);
600 return TQVariant(mMin);
607 return TQVariant(mMax);
611 void TDEConfigSkeleton::ItemDouble::setMinValue(
double v)
617 void TDEConfigSkeleton::ItemDouble::setMaxValue(
double v)
624 TDEConfigSkeleton::ItemColor::ItemColor(
const TQString &group,
const TQString &key,
626 const TQColor &defaultValue )
627 : TDEConfigSkeletonGenericItem<TQColor>( group, key, reference, defaultValue )
635 mLoadedValue = mReference;
637 readImmutability( config );
642 mReference = p.toColor();
647 return TQVariant(mReference);
651 TDEConfigSkeleton::ItemFont::ItemFont(
const TQString &group,
const TQString &key,
653 const TQFont &defaultValue )
654 : TDEConfigSkeletonGenericItem<TQFont>( group, key, reference, defaultValue )
662 mLoadedValue = mReference;
664 readImmutability( config );
669 mReference = p.toFont();
674 return TQVariant(mReference);
678 TDEConfigSkeleton::ItemRect::ItemRect(
const TQString &group,
const TQString &key,
680 const TQRect &defaultValue )
681 : TDEConfigSkeletonGenericItem<TQRect>( group, key, reference, defaultValue )
689 mLoadedValue = mReference;
691 readImmutability( config );
696 mReference = p.toRect();
701 return TQVariant(mReference);
705 TDEConfigSkeleton::ItemPoint::ItemPoint(
const TQString &group,
const TQString &key,
707 const TQPoint &defaultValue )
708 : TDEConfigSkeletonGenericItem<TQPoint>( group, key, reference, defaultValue )
716 mLoadedValue = mReference;
718 readImmutability( config );
723 mReference = p.toPoint();
728 return TQVariant(mReference);
732 TDEConfigSkeleton::ItemSize::ItemSize(
const TQString &group,
const TQString &key,
734 const TQSize &defaultValue )
735 : TDEConfigSkeletonGenericItem<TQSize>( group, key, reference, defaultValue )
743 mLoadedValue = mReference;
745 readImmutability( config );
750 mReference = p.toSize();
755 return TQVariant(mReference);
759 TDEConfigSkeleton::ItemDateTime::ItemDateTime(
const TQString &group,
const TQString &key,
760 TQDateTime &reference,
761 const TQDateTime &defaultValue )
762 : TDEConfigSkeletonGenericItem<TQDateTime>( group, key, reference, defaultValue )
770 mLoadedValue = mReference;
772 readImmutability( config );
777 mReference = p.toDateTime();
782 return TQVariant(mReference);
786 TDEConfigSkeleton::ItemStringList::ItemStringList(
const TQString &group,
const TQString &key,
787 TQStringList &reference,
788 const TQStringList &defaultValue )
789 : TDEConfigSkeletonGenericItem<TQStringList>( group, key, reference, defaultValue )
796 if ( !config->
hasKey( mKey ) )
797 mReference = mDefault;
800 mLoadedValue = mReference;
802 readImmutability( config );
807 mReference = p.toStringList();
812 return TQVariant(mReference);
816 TDEConfigSkeleton::ItemPathList::ItemPathList(
const TQString &group,
const TQString &key,
817 TQStringList &reference,
818 const TQStringList &defaultValue )
826 if ( !config->
hasKey( mKey ) )
827 mReference = mDefault;
830 mLoadedValue = mReference;
832 readImmutability( config );
837 if ( mReference != mLoadedValue )
840 if ((mDefault == mReference) && !config->
hasDefault( mKey))
843 TQStringList sl = mReference;
850 TDEConfigSkeleton::ItemIntList::ItemIntList(
const TQString &group,
const TQString &key,
851 TQValueList<int> &reference,
852 const TQValueList<int> &defaultValue )
853 : TDEConfigSkeletonGenericItem<TQValueList<int> >( group, key, reference, defaultValue )
860 if ( !config->
hasKey( mKey ) )
861 mReference = mDefault;
864 mLoadedValue = mReference;
866 readImmutability( config );
882 : mCurrentGroup(
"No Group" ), mUseDefaults(false)
884 kdDebug(177) <<
"Creating TDEConfigSkeleton (" << (
void *)
this <<
")" <<
endl;
886 if ( !configname.isEmpty() )
897 : mCurrentGroup(
"No Group" ), mUseDefaults(false)
899 kdDebug(177) <<
"Creating TDEConfigSkeleton (" << (
void *)
this <<
")" <<
endl;
906 TDEConfigSkeletonItem::List::ConstIterator it;
907 for( it = mItems.begin(); it != mItems.end(); ++it )
915 mCurrentGroup = group;
925 if (b == mUseDefaults)
929 TDEConfigSkeletonItem::List::ConstIterator it;
930 for( it = mItems.begin(); it != mItems.end(); ++it )
932 (*it)->swapDefault();
936 return !mUseDefaults;
941 TDEConfigSkeletonItem::List::ConstIterator it;
942 for( it = mItems.begin(); it != mItems.end(); ++it ) {
951 kdDebug(177) <<
"TDEConfigSkeleton::readConfig()" <<
endl;
953 TQString origGroup = mConfig->
group();
956 TDEConfigSkeletonItem::List::ConstIterator it;
957 for( it = mItems.begin(); it != mItems.end(); ++it )
959 (*it)->readConfig( mConfig );
969 kdDebug(177) <<
"TDEConfigSkeleton::writeConfig()" <<
endl;
971 TQString origGroup = mConfig->
group();
973 TDEConfigSkeletonItem::List::ConstIterator it;
974 for( it = mItems.begin(); it != mItems.end(); ++it )
976 (*it)->writeConfig( mConfig );
990 item->
setName( name.isEmpty() ? item->
key() : name );
991 mItems.append( item );
992 mItemDict.insert( item->
name(), item );
998 const TQString &defaultValue,
const TQString &key )
1002 reference, defaultValue,
1003 TDEConfigSkeleton::ItemString::Normal );
1009 const TQString &defaultValue,
const TQString &key )
1013 reference, defaultValue );
1019 const TQString &defaultValue,
const TQString &key )
1023 reference, defaultValue );
1029 const TQVariant &defaultValue,
const TQString &key )
1033 reference, defaultValue );
1039 bool defaultValue,
const TQString &key )
1043 reference, defaultValue );
1049 int defaultValue,
const TQString &key )
1053 reference, defaultValue );
1059 unsigned int defaultValue,
const TQString &key )
1063 reference, defaultValue );
1069 TQ_INT64 defaultValue,
const TQString &key )
1073 reference, defaultValue );
1079 TQ_UINT64 defaultValue,
const TQString &key )
1083 reference, defaultValue );
1089 long defaultValue,
const TQString &key )
1093 reference, defaultValue );
1099 unsigned long defaultValue,
const TQString &key )
1103 reference, defaultValue );
1109 double defaultValue,
const TQString &key )
1113 reference, defaultValue );
1119 const TQColor &defaultValue,
const TQString &key )
1123 reference, defaultValue );
1129 const TQFont &defaultValue,
const TQString &key )
1133 reference, defaultValue );
1139 const TQRect &defaultValue,
const TQString &key )
1143 reference, defaultValue );
1149 const TQPoint &defaultValue,
const TQString &key )
1153 reference, defaultValue );
1159 const TQSize &defaultValue,
const TQString &key )
1163 reference, defaultValue );
1169 const TQDateTime &defaultValue,
const TQString &key )
1173 reference, defaultValue );
1179 const TQStringList &defaultValue,
const TQString &key )
1183 reference, defaultValue );
1189 const TQValueList<int> &defaultValue,
const TQString &key )
1193 reference, defaultValue );
1206 return mItemDict.find(name);