//
//     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/>.


class KConfigDialogManager : QObject
{
%TypeHeaderCode
#include <kconfigdialogmanager.h>
%End


signals:
    void                    settingsChanged ();
    void                    settingsChanged (QWidget* widget);
    void                    widgetModified ();

public:
                            KConfigDialogManager (QWidget* parent /TransferThis/, KConfigSkeleton* conf);
    void                    addWidget (QWidget* widget);
    bool                    hasChanged () const;
    bool                    isDefault () const;
    static QHash<QString,QByteArray>*  propertyMap ();
    static QHash<QString,QByteArray>*  changedMap ();
    void                    updateSettings ();
    void                    updateWidgets ();
    void                    updateWidgetsDefault ();

protected:
    void                    init (bool trackChanges);
    bool                    parseChildren (const QWidget* widget, bool trackChanges);
    QByteArray              getUserProperty (const QWidget* widget) const;
    void                    setProperty (QWidget* w, const QVariant& v);
    QVariant                property (QWidget* w) const;
    void                    setupWidget (QWidget* widget, KConfigSkeletonItem* item);
    static void             initMaps ();

private:
                            KConfigDialogManager (const KConfigDialogManager&);
};   // KConfigDialogManager


