tdeconfig.h
00001 /* 00002 This file is part of the KDE libraries 00003 Copyright (c) 1999 Preston Brown <pbrown@kde.org> 00004 Copyright (C) 1997 Matthias Kalle Dalheimer <kalle@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301, USA. 00020 */ 00021 00022 #ifndef _TDECONFIG_H 00023 #define _TDECONFIG_H 00024 00025 class TQTimer; 00026 00027 #include <tqvaluelist.h> 00028 00029 #include "tdeconfigbase.h" 00030 #include "klockfile.h" 00031 00032 class TDEConfigPrivate; 00033 00043 class TDECORE_EXPORT TDEConfig : public TDEConfigBase 00044 { 00045 Q_OBJECT 00046 00047 public: 00048 00062 TDEConfig( const TQString& fileName = TQString::null, 00063 bool bReadOnly = false, bool bUseKDEGlobals = true, const char *resType="config"); 00064 00065 TDEConfig(TDEConfigBackEnd *backEnd, bool bReadOnly = false); 00066 00073 virtual ~TDEConfig(); 00074 00087 virtual void rollback(bool bDeep = true); 00088 00089 00094 virtual TQStringList groupList() const; 00095 00107 virtual TQMap<TQString, TQString> entryMap(const TQString &pGroup) const; 00108 00113 virtual void reparseConfiguration(); 00114 00121 void setFileWriteMode(int mode); 00122 00129 void setForceGlobal( bool force ) { bForceGlobal = force; } 00130 00136 bool forceGlobal() const { return bForceGlobal; } 00137 00152 void checkUpdate(const TQString &id, const TQString &updateFile); 00153 00165 TDEConfig* copyTo(const TQString &file, TDEConfig *config=0) const; 00166 00179 TDELockFile::Ptr lockFile( bool bGlobal=false ); 00180 00181 protected: 00182 00189 virtual bool internalHasGroup(const TQCString &group) const; 00190 00201 virtual KEntryMap internalEntryMap(const TQString &pGroup) const; 00202 00212 virtual KEntryMap internalEntryMap() const { return aEntryMap; } 00213 00224 virtual void putData(const KEntryKey &_key, const KEntry &_data, bool _checkGroup=true); 00225 00234 virtual KEntry lookupData(const KEntryKey &_key) const; 00235 00243 KEntryMap aEntryMap; 00244 00245 private: 00250 TDEConfig( const TDEConfig& ); 00255 TDEConfig& operator= ( const TDEConfig& rConfig ); 00256 00257 private: 00258 bool bGroupImmutable : 1; // Current group is immutable. 00259 bool bFileImmutable : 1; // Current file is immutable. 00260 bool bForceGlobal : 1; // Apply everything to kdeglobals. 00261 protected: 00262 virtual void virtual_hook( int id, void* data ); 00263 private: 00264 TDEConfigPrivate *d; 00265 }; 00266 00273 class TDECORE_EXPORT TDESharedConfig : public TDEConfig, public TDEShared 00274 { 00275 friend class TQValueList<TDESharedConfig*>; 00276 public: 00277 typedef TDESharedPtr<TDESharedConfig> Ptr; 00278 00279 public: 00286 static TDESharedConfig::Ptr openConfig(const TQString& fileName, bool readOnly = false, 00287 bool bUseKDEGlobals = true); 00288 00289 private: 00290 TDESharedConfig( const TQString& fileName, bool readOnly, bool useKDEGlobals ); 00291 ~TDESharedConfig(); 00292 00293 static TQValueList<TDESharedConfig*> *s_list; 00294 }; 00295 00296 #endif