kxmlguifactory.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __kxmlguifactory_h__
00021 #define __kxmlguifactory_h__
00022
00023 #include <qobject.h>
00024 #include <qptrlist.h>
00025 #include <qdom.h>
00026 #include <qvaluelist.h>
00027
00028 class KAction;
00029 class KXMLGUIFactoryPrivate;
00030 class KXMLGUIClient;
00031 class KXMLGUIBuilder;
00032 class KInstance;
00033
00034 namespace KXMLGUI
00035 {
00036 struct MergingIndex;
00037 class ContainerNode;
00038 class ContainerClient;
00039 class BuildHelper;
00040 }
00041
00059 class KXMLGUIFactory : public QObject
00060 {
00061 friend class KXMLGUI::BuildHelper;
00062 Q_OBJECT
00063 public:
00071 KXMLGUIFactory( KXMLGUIBuilder *builder, QObject *parent = 0, const char *name = 0 );
00072
00076 ~KXMLGUIFactory();
00077
00078
00079 static QString readConfigFile( const QString &filename, bool never_null, const KInstance *instance = 0 );
00080 static QString readConfigFile( const QString &filename, const KInstance *instance = 0 );
00081 static bool saveConfigFile( const QDomDocument& doc, const QString& filename,
00082 const KInstance *instance = 0 );
00083
00084 static QString documentToXML( const QDomDocument& doc );
00085 static QString elementToXML( const QDomElement& elem );
00086
00090 static void removeDOMComments( QDomNode &node );
00091
00102 void addClient( KXMLGUIClient *client );
00103
00109 void removeClient( KXMLGUIClient *client );
00110
00111 void plugActionList( KXMLGUIClient *client, const QString &name, const QPtrList<KAction> &actionList );
00112 void unplugActionList( KXMLGUIClient *client, const QString &name );
00113
00117 QPtrList<KXMLGUIClient> clients() const;
00118
00139 QWidget *container( const QString &containerName, KXMLGUIClient *client, bool useTagName = false );
00140
00141 QPtrList<QWidget> containers( const QString &tagName );
00142
00151 void reset();
00152
00162 void resetContainer( const QString &containerName, bool useTagName = false );
00163
00164 signals:
00165 void clientAdded( KXMLGUIClient *client );
00166 void clientRemoved( KXMLGUIClient *client );
00167
00168 private:
00169
00170 QWidget *findRecursive( KXMLGUI::ContainerNode *node, bool tag );
00171
00172 QPtrList<QWidget> findRecursive( KXMLGUI::ContainerNode *node, const QString &tagName );
00173
00174 void applyActionProperties( const QDomElement &element );
00175 void configureAction( KAction *action, const QDomNamedNodeMap &attributes );
00176 void configureAction( KAction *action, const QDomAttr &attribute );
00177
00178 protected:
00179 virtual void virtual_hook( int id, void* data );
00180 private:
00181 KXMLGUIFactoryPrivate *d;
00182 };
00183
00184 #endif
00185
00186
This file is part of the documentation for kdeui Library Version 3.2.3.