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 bool readXml(const QDomElement& element, const QStringList& searchPath);
00168
00172 bool readXml(QIODevice* device, const QDir& directory = QDir());
00173 bool readXml(QIODevice* device, const QStringList& searchPath);
00174
00181 bool readXmlFile(const QString& file);
00182
00187 QDomElement writeXml();
00188 QDomElement writeXml(const QStringList& searchPath);
00189
00190
00195 bool writeXml(QIODevice* device, int indent = 2);
00196 bool writeXml(QIODevice* device, int indent, const QStringList& searchPath);
00197
00198
00199 Q_SIGNALS:
00200
00205 void updated();
00206
00208 void dataChanged(Action*);
00210 void dataChanged(ActionCollection*);
00211
00213 void collectionToBeInserted(ActionCollection* child, ActionCollection* parent);
00215 void collectionInserted(ActionCollection* child, ActionCollection* parent);
00217 void collectionToBeRemoved(ActionCollection* child, ActionCollection* parent);
00219 void collectionRemoved(ActionCollection* child, ActionCollection* parent);
00220
00222 void actionToBeInserted(Action* child, ActionCollection* parent);
00224 void actionInserted(Action* child, ActionCollection* parent);
00226 void actionToBeRemoved(Action* child, ActionCollection* parent);
00228 void actionRemoved(Action* child, ActionCollection* parent);
00229
00230 protected:
00231 void registerCollection(ActionCollection* collection);
00232 void unregisterCollection(const QString& name);
00233 void connectSignals(ActionCollection* collection, bool conn);
00234 void connectSignals(Action* collection, bool conn);
00235
00236 private Q_SLOTS:
00237 void emitUpdated();
00238
00239 private:
00241 class Private;
00243 Private* const d;
00244 };
00245
00246 }
00247
00248 #endif
00249