Kross
action.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_ACTION_H
00021 #define KROSS_ACTION_H
00022
00023 #include <QtCore/QVariant>
00024 #include <QtCore/QObject>
00025 #include <QtCore/QDir>
00026 #include <QtCore/QUrl>
00027 #include <QtGui/QAction>
00028 #include <QtXml/QDomAttr>
00029 #include <QtScript/QScriptable>
00030
00031 #include "errorinterface.h"
00032 #include "childreninterface.h"
00033
00034 namespace Kross {
00035
00036 class Script;
00037
00094 class KROSSCORE_EXPORT Action
00095 : public QAction
00096 , public QScriptable
00097 , public ChildrenInterface
00098 , public ErrorInterface
00099 {
00100 Q_OBJECT
00101
00102 public:
00103
00112 Action(QObject* parent, const QString& name, const QDir& packagepath = QDir());
00113
00125 Action(QObject* parent, const QUrl& url);
00126
00130 virtual ~Action();
00131
00137 void fromDomElement(const QDomElement& element);
00138
00144 QDomElement toDomElement() const;
00145
00155 bool initialize();
00156
00163 void finalize();
00164
00169 bool isFinalized() const;
00170
00182 Script* script() const;
00183
00184 public Q_SLOTS:
00185
00189 QString name() const;
00190
00195 int version() const;
00196
00200 QString description() const;
00201
00205 void setDescription(const QString& description);
00206
00210 QString iconName() const;
00211
00215 void setIconName(const QString& iconname);
00216
00220 bool isEnabled() const;
00221
00225 void setEnabled(bool enabled);
00226
00230 QString file() const;
00231
00235 bool setFile(const QString& scriptfile);
00236
00240 QByteArray code() const;
00241
00245 void setCode(const QByteArray& code);
00246
00251 QString interpreter() const;
00252
00256 void setInterpreter(const QString& interpretername);
00257
00262 QString currentPath() const;
00263
00268 void addQObject(QObject* obj, const QString &name = QString());
00269
00273 QObject* qobject(const QString &name) const;
00274
00278 QStringList qobjectNames() const;
00279
00285 QVariantMap options() const;
00286
00292 QVariant option(const QString& name, const QVariant& defaultvalue = QVariant());
00293
00297 bool setOption(const QString& name, const QVariant& value);
00298
00302 QStringList functionNames();
00303
00310 QVariant callFunction(const QString& name, const QVariantList& args = QVariantList());
00311
00312 Q_SIGNALS:
00313
00320 void updated();
00321
00325 void started(Kross::Action*);
00326
00330 void finished(Kross::Action*);
00331
00335 void finalized(Kross::Action*);
00336
00337 private Q_SLOTS:
00338
00344 void slotTriggered();
00345
00346 private:
00348 class Private;
00350 Private* const d;
00351 };
00352
00353 }
00354
00355 Q_DECLARE_METATYPE(Kross::Action*)
00356
00357 #endif
00358