KDECore
kconfigdialogmanager.h
Go to the documentation of this file.00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (C) 2003 Benjamin C Meyer (ben+kdelibs at meyerhome dot net) 00004 * Copyright (C) 2003 Waldo Bastian <bastian@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 #ifndef KCONFIGDIALOGMANAGER_H 00022 #define KCONFIGDIALOGMANAGER_H 00023 00024 #include <qobject.h> 00025 #include <qptrlist.h> 00026 #include "kdelibs_export.h" 00027 00028 class KConfigSkeleton; 00029 class KConfigSkeletonItem; 00030 class QWidget; 00031 class QSqlPropertyMap; 00032 00078 class KDECORE_EXPORT KConfigDialogManager : public QObject { 00079 00080 Q_OBJECT 00081 00082 signals: 00088 void settingsChanged(); 00089 00097 void settingsChanged( QWidget *widget ); 00098 00106 void widgetModified(); 00107 00108 00109 public: 00110 00117 KConfigDialogManager(QWidget *parent, KConfigSkeleton *conf, const char *name=0); 00118 00122 ~KConfigDialogManager(); 00123 00128 void addWidget(QWidget *widget); 00129 00134 bool hasChanged(); 00135 00140 bool isDefault(); 00141 00142 public slots: 00149 void updateSettings(); 00150 00158 void updateWidgets(); 00159 00166 void updateWidgetsDefault(); 00167 00168 protected: 00169 00176 void init(bool trackChanges); 00177 00188 bool parseChildren(const QWidget *widget, bool trackChanges); 00189 00193 void setProperty(QWidget *w, const QVariant &v); 00194 00198 QVariant property(QWidget *w); 00199 00203 void setupWidget(QWidget *widget, KConfigSkeletonItem *item); 00204 00205 protected: 00209 KConfigSkeleton *m_conf; 00210 00214 QWidget *m_dialog; 00215 00219 QSqlPropertyMap *propertyMap; 00220 00224 QMap<QString, QCString> changedMap; 00225 00226 private: 00227 class Private; 00231 Private *d; 00232 00233 }; 00234 00235 #endif // KCONFIGDIALOGMANAGER_H 00236