//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

//ig typedef KSharedPtr<KSharedConfig> KSharedConfigPtr;

%ModuleHeaderCode
#include <kconfiggroup.h>
%End


class KConfigGroup : KConfigBase
{
%TypeHeaderCode
#include <kconfiggroup.h>
%End


public:
                            KConfigGroup ();
                            KConfigGroup (KConfigBase* master, const QString& group);
                            KConfigGroup (KConfigBase* master, const char* group);
//ig                        KConfigGroup (const KConfigBase* master, const QString& group);
//ig                        KConfigGroup (const KConfigBase* master, const char* group);
                            KConfigGroup (const KSharedConfigPtr& master, const QString& group);
                            KConfigGroup (const KSharedConfigPtr& master, const char* group);
                            KConfigGroup (const KConfigGroup&);
    bool                    isValid () const;
    QString                 name () const;
    bool                    exists () const;
    void                    sync ();
    void                    markAsClean ();
    KConfigBase::AccessMode  accessMode () const;
    KConfig*                config ();
//ig     const KConfig*     config () const;
    void                    changeGroup (const QString& group);
    void                    changeGroup (const char* group);
    void                    copyTo (KConfigBase* other, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal) const;
    void                    reparent (KConfigBase* parent, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    KConfigGroup            parent () const;
    QStringList             groupList () const;
    QStringList             keyList () const;
    void                    deleteGroup (KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    QVariant                readEntry (const QString& key, const QVariant& aDefault) const;
    QVariant                readEntry (const char* key, const QVariant& aDefault) const;
    QString                 readEntry (const QString& key, const QString& aDefault) const;
    QString                 readEntry (const char* key, const QString& aDefault) const;
    QString                 readEntry (const QString& key, const char* aDefault = 0) const;
    QString                 readEntry (const char* key, const char* aDefault = 0) const;
    QVariantList            readEntry (const QString& key, const QVariantList& aDefault) const;
    QVariantList            readEntry (const char* key, const QVariantList& aDefault) const;
    QStringList             readEntry (const QString& key, const QStringList& aDefault) const;
    QStringList             readEntry (const char* key, const QStringList& aDefault) const;
    QStringList             readXdgListEntry (const QString& pKey, const QStringList& aDefault = QStringList()) const;
    QStringList             readXdgListEntry (const char* pKey, const QStringList& aDefault = QStringList()) const;
    QString                 readPathEntry (const QString& pKey, const QString& aDefault) const;
    QString                 readPathEntry (const char* key, const QString& aDefault) const;
    QStringList             readPathEntry (const QString& pKey, const QStringList& aDefault) const;
    QStringList             readPathEntry (const char* key, const QStringList& aDefault) const;
    QString                 readEntryUntranslated (const QString& pKey, const QString& aDefault = QString()) const;
    QString                 readEntryUntranslated (const char* key, const QString& aDefault = QString()) const;
    void                    writeEntry (const QString& key, const QVariant& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const QVariant& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const QString& key, const QString& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const QString& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const QString& key, const QByteArray& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const QByteArray& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const QString& key, const char* value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const char* value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const QString& key, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const QString& key, const QVariantList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeEntry (const char* key, const QVariantList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeXdgListEntry (const QString& pKey, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writeXdgListEntry (const char* pKey, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writePathEntry (const QString& pKey, const QString& path, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writePathEntry (const char* pKey, const QString& path, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writePathEntry (const QString& pKey, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    writePathEntry (const char* pKey, const QStringList& value, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    deleteEntry (const QString& pKey, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    void                    deleteEntry (const char* pKey, KConfigBase::WriteConfigFlags pFlags = KConfigBase::Normal);
    bool                    hasKey (const QString& key) const;
    bool                    hasKey (const char* key) const;
    bool                    isImmutable () const;
    bool                    isEntryImmutable (const QString& key) const;
    bool                    isEntryImmutable (const char* key) const;
    void                    revertToDefault (const QString& key);
    void                    revertToDefault (const char* key);
    bool                    hasDefault (const QString& key) const;
    bool                    hasDefault (const char* key) const;
    QMap<QString,QString>   entryMap () const;

protected:
    bool                    hasGroupImpl (const QByteArray& group) const;
    KConfigGroup            groupImpl (const QByteArray& b);
//ig     const KConfigGroup  groupImpl (const QByteArray& b) const;
    void                    deleteGroupImpl (const QByteArray& group, KConfigBase::WriteConfigFlags flags);
    bool                    isGroupImmutableImpl (const QByteArray& aGroup) const;
};   // KConfigGroup


