KDEUI
kconfigdialog.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 KCONFIGDIALOG_H 00022 #define KCONFIGDIALOG_H 00023 00024 #include <kpagedialog.h> 00025 00026 class KConfig; 00027 class KConfigSkeleton; 00028 class KConfigDialogManager; 00029 00072 class KDEUI_EXPORT KConfigDialog : public KPageDialog { 00073 Q_OBJECT 00074 00075 Q_SIGNALS: 00079 void widgetModified(); 00080 00086 void settingsChanged(const QString& dialogName); 00087 00088 public: 00101 KConfigDialog( QWidget *parent, const QString& name, 00102 KConfigSkeleton *config ); 00103 00109 ~KConfigDialog(); 00110 00127 KPageWidgetItem* addPage( QWidget *page, const QString &itemName, 00128 const QString &pixmapName=QString(), 00129 const QString &header=QString(), 00130 bool manage=true ); 00131 00150 KPageWidgetItem* addPage( QWidget *page, KConfigSkeleton *config, 00151 const QString &itemName, 00152 const QString &pixmapName=QString(), 00153 const QString &header=QString() ); 00154 00161 static KConfigDialog* exists( const QString& name ); 00162 00169 static bool showDialog( const QString& name ); 00170 00171 00172 protected Q_SLOTS: 00179 virtual void updateSettings(); 00180 00188 virtual void updateWidgets(); 00189 00196 virtual void updateWidgetsDefault(); 00197 00198 00205 void updateButtons(); 00206 00212 void settingsChangedSlot(); 00213 00214 protected: 00215 00221 virtual bool hasChanged(); 00222 00227 virtual bool isDefault(); 00228 00232 virtual void showEvent(QShowEvent *e); 00233 00234 private Q_SLOTS: 00238 void onPageRemoved(KPageWidgetItem* item); 00239 00240 private: 00241 class KConfigDialogPrivate; 00242 friend class KConfigDialogPrivate; 00243 00244 KConfigDialogPrivate *const d; 00245 00246 Q_PRIVATE_SLOT( d, void _k_updateButtons() ) 00247 Q_PRIVATE_SLOT( d, void _k_settingsChangedSlot() ) 00248 00249 Q_DISABLE_COPY(KConfigDialog) 00250 }; 00251 00252 #endif //KCONFIGDIALOG_H 00253
KDE 4.7 API Reference