KUtils
kcmodulecontainer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KCMODULECONTAINER_H
00021 #define KCMODULECONTAINER_H
00022
00023 #include <QtCore/QString>
00024 #include <QtCore/QStringList>
00025
00026 #include <kcmodule.h>
00027 #include <kcmoduleloader.h>
00028 #include <QtCore/QList>
00029
00030 class QWidget;
00031
00032 class KCModuleProxy;
00033
00049 class KUTILS_EXPORT KCModuleContainer : public KCModule
00050 {
00051 Q_OBJECT
00052 public:
00063 KCModuleContainer( QWidget* parent, const QStringList& mods );
00064
00081 explicit KCModuleContainer( QWidget *parent, const QString& mods = QString() );
00082
00090 void addModule( const QString& module );
00091
00095 virtual ~KCModuleContainer();
00096
00101 void save();
00102
00107 void load();
00108
00113 void defaults();
00114
00115 protected:
00116 typedef QList<KCModuleProxy*> ModuleList;
00117
00122 ModuleList changedModules;
00123
00127 ModuleList allModules;
00128
00129 private Q_SLOTS:
00130
00134 void tabSwitched( QWidget * module );
00135
00136 void moduleChanged(KCModuleProxy *proxy);
00137
00138 private:
00139
00140 void init();
00141
00142 class KCModuleContainerPrivate;
00143 KCModuleContainerPrivate* const d;
00144
00145 };
00146
00162 #define KCMODULECONTAINER(modules, factoryName) \
00163 class KCModuleContainer##factoryName : public KCModuleContainer \
00164 { \
00165 public: \
00166 KCModuleContainer##factoryName(QWidget *parent, const QStringList &) \
00167 : KCModuleContainer(parent, QLatin1String(modules)) \
00168 { \
00169 } \
00170 }; \
00171 typedef KGenericFactory<KCModuleContainer#factoryName> KCModuleContainer##factoryName##Factory; \
00172 K_EXPORT_COMPONENT_FACTORY(factoryName, KCModuleContainer##factoryName##Factory)
00173
00174 #endif // KCMODULECONTAINER_H
00175
00176