Kross
actioncollection.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 KROSS_ACTIONCOLLECTION_H
00021 #define KROSS_ACTIONCOLLECTION_H
00022
00023 #include "krossconfig.h"
00024 #include "action.h"
00025
00026
00027 #include <QtCore/QObject>
00028 #include <QtCore/QDir>
00029
00030 class QDomElement;
00031 class QIODevice;
00032
00033 namespace Kross {
00034
00046 class KROSSCORE_EXPORT ActionCollection : public QObject
00047 {
00048 Q_OBJECT
00049
00050 public:
00051
00062 explicit ActionCollection(const QString& name, ActionCollection* parent = 0);
00063
00067 virtual ~ActionCollection();
00068
00072 QString name() const;
00073
00077 QString text() const;
00078
00082 void setText(const QString& text);
00083
00087 QString description() const;
00088
00092 void setDescription(const QString& description);
00093
00097 QString iconName() const;
00098
00102 void setIconName(const QString& iconname);
00103
00107 QIcon icon() const;
00108
00112 bool isEnabled() const;
00113
00117 void setEnabled(bool enabled);
00118
00124 ActionCollection* parentCollection() const;
00126 void setParentCollection( ActionCollection *parent );
00131 bool hasCollection(const QString& name) const;
00132
00137 ActionCollection* collection(const QString& name) const;
00138
00143 QStringList collections() const;
00144
00145 QList<Action*> actions() const;
00146
00150 Action* action(const QString& name) const;
00151 void addAction(Action* action);
00152 void addAction(const QString& name, Action* action);
00153 void removeAction(const QString& name);
00154 void removeAction(Action* action);
00155
00166 bool readXml(const QDomElement& element, const QDir& directory = QDir());
00167
00171 bool readXml(QIODevice* device, const QDir& directory = QDir());
00172
00179 bool readXmlFile(const QString& file);
00180
00185 QDomElement writeXml();
00186
00191 bool writeXml(QIODevice* device, int indent = 2);
00192
00193 Q_SIGNALS:
00194
00199 void updated();
00200
00202 void dataChanged(Action*);
00204 void dataChanged(ActionCollection*);
00205
00207 void collectionToBeInserted(ActionCollection* child, ActionCollection* parent);
00209 void collectionInserted(ActionCollection* child, ActionCollection* parent);
00211 void collectionToBeRemoved(ActionCollection* child, ActionCollection* parent);
00213 void collectionRemoved(ActionCollection* child, ActionCollection* parent);
00214
00216 void actionToBeInserted(Action* child, ActionCollection* parent);
00218 void actionInserted(Action* child, ActionCollection* parent);
00220 void actionToBeRemoved(Action* child, ActionCollection* parent);
00222 void actionRemoved(Action* child, ActionCollection* parent);
00223
00224 protected:
00225 void registerCollection(ActionCollection* collection);
00226 void unregisterCollection(const QString& name);
00227 void connectSignals(ActionCollection* collection, bool conn);
00228 void connectSignals(Action* collection, bool conn);
00229
00230 private Q_SLOTS:
00231 void emitUpdated();
00232
00233 private:
00235 class Private;
00237 Private* const d;
00238 };
00239
00240 }
00241
00242 #endif
00243