dialog.h

00001 /*  This file is part of the KDE project
00002     Copyright (C) 2003 Matthias Kretz <kretz@kde.org>
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License version 2 as published by the Free Software Foundation.
00007 
00008     This library is distributed in the hope that it will be useful,
00009     but WITHOUT ANY WARRANTY; without even the implied warranty of
00010     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011     Library General Public License for more details.
00012 
00013     You should have received a copy of the GNU Library General Public License
00014     along with this library; see the file COPYING.LIB.  If not, write to
00015     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016     Boston, MA 02110-1301, USA.
00017 
00018 */
00019 
00020 #ifndef KSETTINGS_DIALOG_H
00021 #define KSETTINGS_DIALOG_H
00022 
00023 #include <qobject.h>
00024 #include <kservice.h>
00025 
00026 template<class T> class QValueList;
00027 class KPluginInfo;
00028 class KCMultiDialog;
00029 class KCModuleInfo;
00030 
00031 namespace KSettings
00032 {
00033 
00073 class KUTILS_EXPORT Dialog : public QObject
00074 {
00075     friend class PageNode;
00076     Q_OBJECT
00077     public:
00083         enum ContentInListView
00084         {
00088             Static,
00093             Configurable
00094         };
00095 
00105         Dialog( QWidget * parent = 0, const char * name = 0 );
00106 
00118         Dialog( ContentInListView content = Static, QWidget * parent = 0,
00119                 const char * name = 0 );
00120 
00134         Dialog( const QStringList & components, QWidget * parent = 0,
00135                 const char * name = 0 );
00136 
00152         Dialog( const QStringList & components, ContentInListView
00153                 content, QWidget * parent = 0, const char * name = 0 );
00154 
00155         ~Dialog();
00156 
00161         void addPluginInfos( const QValueList<KPluginInfo*> & plugininfos );
00162 
00163         KCMultiDialog * dialog();
00164 
00165     public slots:
00170         void show();
00171 
00172     signals:
00180         void pluginSelectionChanged();
00181 
00182     protected slots:
00183         void configureTree();
00184         void updateTreeList();
00185 
00186     private:
00191         bool isPluginForKCMEnabled( KCModuleInfo * ) const;
00192 
00193         QValueList<KService::Ptr> instanceServices() const;
00194         QValueList<KService::Ptr> parentComponentsServices(
00195                 const QStringList & ) const;
00200         void parseGroupFile( const QString & );
00201 
00207         QStringList parentModuleNames( KCModuleInfo * );
00208 
00215         void createDialogFromServices();
00216 
00217         class DialogPrivate;
00218         DialogPrivate * d;
00219 };
00220 
00221 }
00222 
00223 // vim: sw=4 sts=4 et
00224 #endif // KSETTINGS_DIALOG_H
KDE Home | KDE Accessibility Home | Description of Access Keys