tdeconfigdialogmanager.h
00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (C) 2003 Benjamin C Meyer (ben+tdelibs 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 TDECONFIGDIALOGMANAGER_H 00022 #define TDECONFIGDIALOGMANAGER_H 00023 00024 #include <tqobject.h> 00025 #include <tqptrlist.h> 00026 #include "tdelibs_export.h" 00027 00028 class TDEConfigSkeleton; 00029 class TDEConfigSkeletonItem; 00030 class TQWidget; 00031 class TQSqlPropertyMap; 00032 00078 class TDECORE_EXPORT TDEConfigDialogManager : public TQObject { 00079 00080 Q_OBJECT 00081 00082 signals: 00088 void settingsChanged(); 00089 00097 void settingsChanged( TQWidget *widget ); 00098 00106 void widgetModified(); 00107 00108 00109 public: 00110 00117 TDEConfigDialogManager(TQWidget *parent, TDEConfigSkeleton *conf, const char *name=0); 00118 00122 ~TDEConfigDialogManager(); 00123 00128 void addWidget(TQWidget *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 TQWidget *widget, bool trackChanges); 00189 00193 void setProperty(TQWidget *w, const TQVariant &v); 00194 00198 TQVariant property(TQWidget *w); 00199 00203 void setupWidget(TQWidget *widget, TDEConfigSkeletonItem *item); 00204 00205 protected: 00209 TDEConfigSkeleton *m_conf; 00210 00214 TQWidget *m_dialog; 00215 00219 TQSqlPropertyMap *propertyMap; 00220 00224 TQMap<TQString, TQCString> changedMap; 00225 00226 private: 00227 class Private; 00231 Private *d; 00232 00233 }; 00234 00235 #endif // TDECONFIGDIALOGMANAGER_H 00236