KDECore
kconfig.h
Go to the documentation of this file.
00001 /* 00002 This file is part of the KDE libraries 00003 Copyright (c) 2006, 2007 Thomas Braxton <kde.braxton@gmail.com> 00004 Copyright (c) 2001 Waldo Bastian <bastian@kde.org> 00005 Copyright (c) 1999 Preston Brown <pbrown@kde.org> 00006 Copyright (c) 1997 Matthias Kalle Dalheimer <kalle@kde.org> 00007 00008 This library is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Library General Public 00010 License as published by the Free Software Foundation; either 00011 version 2 of the License, or (at your option) any later version. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Library General Public License for more details. 00017 00018 You should have received a copy of the GNU Library General Public License 00019 along with this library; see the file COPYING.LIB. If not, write to 00020 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00021 Boston, MA 02110-1301, USA. 00022 */ 00023 00024 #ifndef KCONFIG_H 00025 #define KCONFIG_H 00026 00027 #include "kconfigbase.h" 00028 00029 #include <kdecore_export.h> 00030 00031 #include <QtCore/QString> 00032 #include <QtCore/QVariant> 00033 #include <QtCore/QByteArray> 00034 #include <QtCore/QList> 00035 00036 class KConfigGroup; 00037 class KComponentData; 00038 class KEntryMap; 00039 class KConfigPrivate; 00040 00070 class KDECORE_EXPORT KConfig : public KConfigBase 00071 { 00072 public: 00088 enum OpenFlag { 00089 IncludeGlobals = 0x01, 00090 CascadeConfig = 0x02, 00091 00094 SimpleConfig = 0x00, 00095 NoCascade = IncludeGlobals, 00096 NoGlobals = CascadeConfig, 00097 FullConfig = IncludeGlobals|CascadeConfig 00098 }; 00099 Q_DECLARE_FLAGS(OpenFlags, OpenFlag) 00100 00101 00129 explicit KConfig(const QString& file = QString(), OpenFlags mode = FullConfig, 00130 const char* resourceType = "config"); 00131 00162 explicit KConfig(const KComponentData& componentData, const QString& file = QString(), 00163 OpenFlags mode = FullConfig, const char* resourceType = "config"); 00164 00177 KConfig(const QString& file, const QString& backend, const char* resourceType = "config"); 00178 00179 virtual ~KConfig(); 00180 00184 const KComponentData &componentData() const; // krazy:exclude=constref 00185 00189 QString name() const; 00190 00192 void sync(); 00193 00195 void markAsClean(); 00196 00199 AccessMode accessMode() const; 00200 00219 bool isConfigWritable(bool warnUser); 00221 00239 KConfig* copyTo(const QString &file, KConfig *config = 0) const; 00240 00257 void checkUpdate(const QString &id, const QString &updateFile); 00258 00262 void reparseConfiguration(); 00263 00265 00293 void addConfigSources(const QStringList &sources); 00294 00297 00300 QString locale() const; 00313 bool setLocale(const QString& aLocale); 00315 00317 00326 void setReadDefaults(bool b); 00331 bool readDefaults() const; 00333 00336 bool isImmutable() const; 00338 00340 00349 #ifndef KDE_NO_DEPRECATED 00350 KDE_DEPRECATED void setForceGlobal(bool force); 00351 #endif 00352 00361 #ifndef KDE_NO_DEPRECATED 00362 KDE_DEPRECATED bool forceGlobal() const; 00363 #endif 00364 00365 00367 QStringList groupList() const; 00368 00380 QMap<QString, QString> entryMap(const QString &aGroup=QString()) const; 00381 00382 protected: 00383 virtual bool hasGroupImpl(const QByteArray &group) const; 00384 virtual KConfigGroup groupImpl( const QByteArray &b); 00385 virtual const KConfigGroup groupImpl(const QByteArray &b) const; 00386 virtual void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags = Normal); 00387 virtual bool isGroupImmutableImpl(const QByteArray& aGroup) const; 00388 00389 friend class KConfigGroup; 00390 friend class KConfigGroupPrivate; 00391 00395 virtual void virtual_hook( int id, void* data ); 00396 00397 KConfigPrivate *const d_ptr; 00398 00399 KConfig(KConfigPrivate &d); 00400 00401 private: 00402 QStringList keyList(const QString& aGroup=QString()) const; 00403 00404 Q_DISABLE_COPY(KConfig) 00405 00406 Q_DECLARE_PRIVATE(KConfig) 00407 }; 00408 Q_DECLARE_OPERATORS_FOR_FLAGS( KConfig::OpenFlags ) 00409 00410 #endif // KCONFIG_H
KDE 4.6 API Reference