diff --git a/src/scripting/CMakeLists.txt b/src/scripting/CMakeLists.txt --- a/src/scripting/CMakeLists.txt +++ b/src/scripting/CMakeLists.txt @@ -1,5 +1,7 @@ set(scripting_SRCS + script.cpp scripthandler.cpp + scriptmanager.cpp taskaction.cpp ) diff --git a/src/scripting/script.h b/src/scripting/script.h new file mode 100644 --- /dev/null +++ b/src/scripting/script.h @@ -0,0 +1,31 @@ +#ifndef SCRIPT_H +#define SCRIPT_H + +#include +#include + +class ScriptManager; + +/*! + \brief Zanshin Script :: author, description, code to be run + +*/ +class Script : public QObject +{ + Q_OBJECT +public: + explicit Script(QObject *parent = 0, QSharedPointer manager = 0); + + bool enabled() const; + void setEnabled(bool enabled); + +signals: + +public slots: +private: + bool m_enabled; + + QSharedPointer m_manager; +}; + +#endif // SCRIPT_H diff --git a/src/scripting/script.cpp b/src/scripting/script.cpp new file mode 100644 --- /dev/null +++ b/src/scripting/script.cpp @@ -0,0 +1,19 @@ +#include "script.h" +#include "scriptmanager.h" + +Script::Script(QObject *parent, QSharedPointer manager) : QObject(parent), + m_enabled(true), + m_manager(manager) +{ + +} + +bool Script::enabled() const +{ + return m_enabled; +} + +void Script::setEnabled(bool enabled) +{ + m_enabled = enabled; +} diff --git a/src/scripting/scripthandler.h b/src/scripting/scripthandler.h --- a/src/scripting/scripthandler.h +++ b/src/scripting/scripthandler.h @@ -26,6 +26,7 @@ #define SCRIPTING_SCRIPTHANDLER_H #include +#include #include #include "domain/taskrepository.h" @@ -42,12 +43,12 @@ QJSValue evaluateFile(const QString &filename); QJSValue evaluateString(const QString &string); - QJSEngine *engine(); + QPointer engine(); private: Domain::TaskRepository::Ptr m_taskRepository; - QJSEngine *m_engine; + QPointer m_engine; }; } diff --git a/src/scripting/scripthandler.cpp b/src/scripting/scripthandler.cpp --- a/src/scripting/scripthandler.cpp +++ b/src/scripting/scripthandler.cpp @@ -54,7 +54,7 @@ return m_engine->evaluate(string); } -QJSEngine *ScriptHandler::engine() +QPointer ScriptHandler::engine() { return m_engine; } diff --git a/src/scripting/scriptmanager.h b/src/scripting/scriptmanager.h new file mode 100644 --- /dev/null +++ b/src/scripting/scriptmanager.h @@ -0,0 +1,32 @@ +#ifndef SCRIPTMANAGER_H +#define SCRIPTMANAGER_H + +#include +#include + +class Script; + +/*! + \brief Manage scripts, load new scripts enable/disable, get new scripts + +*/ +class ScriptManager : public QObject +{ + Q_OBJECT +public: + explicit ScriptManager(QObject *parent = 0); + + QList > scripts() const; + + void enableScript(QSharedPointer