From 6101fdd250ac7161f69f1489040f8890fae90071 Mon Sep 17 00:00:00 2001 From: APTX Date: Mon, 16 Jul 2012 03:52:05 +0200 Subject: [PATCH] Expose more stuff to the script environment --- localmylist/directoryscantask.cpp | 1 + localmylist/mylist.h | 11 +++++++---- localmylist/requesthandler.cpp | 1 + localmylist/scriptable.cpp | 6 ++++++ localmylist/scriptable.h | 11 +++++++++++ localmylist/settings.h | 2 ++ management-gui/mainwindow.cpp | 1 + 7 files changed, 29 insertions(+), 4 deletions(-) diff --git a/localmylist/directoryscantask.cpp b/localmylist/directoryscantask.cpp index db05bed..3b92772 100644 --- a/localmylist/directoryscantask.cpp +++ b/localmylist/directoryscantask.cpp @@ -1,6 +1,7 @@ #include "directoryscantask.h" #include "mylist.h" +#include "settings.h" #include "addfiletask.h" #include diff --git a/localmylist/mylist.h b/localmylist/mylist.h index db24635..03671f4 100644 --- a/localmylist/mylist.h +++ b/localmylist/mylist.h @@ -3,7 +3,6 @@ #include "localmylist_global.h" #include "database.h" -#include "settings.h" #include #include @@ -14,6 +13,7 @@ namespace LocalMyList { +class Settings; class AbstractTask; class WorkThread; class RequestHandler; @@ -22,7 +22,8 @@ class DirectoryWatcher; class LOCALMYLISTSHARED_EXPORT MyList : public QObject { Q_OBJECT - Q_PROPERTY(Database *database READ database) + Q_PROPERTY(LocalMyList::Database *database READ database) + Q_PROPERTY(LocalMyList::Settings *settings READ settings) Q_PROPERTY(QString hostName READ hostName WRITE setHostName) Q_PROPERTY(int hostId READ hostId) Q_PROPERTY(bool isUdpHost READ isUdpHost) @@ -32,8 +33,8 @@ public: MyList(); ~MyList(); - Database *database() const; - Settings *settings() const; + LocalMyList::Database *database() const; + LocalMyList::Settings *settings() const; QString hostName() const; void setHostName(QString name); @@ -100,4 +101,6 @@ LOCALMYLISTSHARED_EXPORT MyList *instance(); } // namespace LocalMyList +Q_DECLARE_METATYPE(LocalMyList::MyList*) + #endif // LOCALMYLIST_H diff --git a/localmylist/requesthandler.cpp b/localmylist/requesthandler.cpp index 15633bf..9e5723c 100644 --- a/localmylist/requesthandler.cpp +++ b/localmylist/requesthandler.cpp @@ -2,6 +2,7 @@ #include "mylist.h" #include "database.h" +#include "settings.h" #include #include diff --git a/localmylist/scriptable.cpp b/localmylist/scriptable.cpp index 420b0f8..48ff43a 100644 --- a/localmylist/scriptable.cpp +++ b/localmylist/scriptable.cpp @@ -1,11 +1,17 @@ #include "scriptable.h" +#include "mylist.h" #include "database.h" +#include "settings.h" namespace LocalMyList { void registerTypes(QScriptEngine *engine) { + qScriptRegisterMetaType(engine, Scriptable::toScriptValue, Scriptable::fromScriptValue); + qScriptRegisterMetaType(engine, Scriptable::toScriptValue, Scriptable::fromScriptValue); + qScriptRegisterMetaType(engine, Scriptable::toScriptValue, Scriptable::fromScriptValue); + Scriptable::Anime *AnimePrototype = new Scriptable::Anime(); engine->setDefaultPrototype(qMetaTypeId(), engine->newQObject(AnimePrototype)); engine->setDefaultPrototype(qMetaTypeId(), engine->newQObject(AnimePrototype)); diff --git a/localmylist/scriptable.h b/localmylist/scriptable.h index 6679b15..c92ab6a 100644 --- a/localmylist/scriptable.h +++ b/localmylist/scriptable.h @@ -25,6 +25,17 @@ struct DatabaseConnectionSettings; void LOCALMYLISTSHARED_EXPORT registerTypes(QScriptEngine *engine); namespace Scriptable { + +template QScriptValue toScriptValue(QScriptEngine *engine, const T &t) +{ + return engine->newQObject(t); +} + +template void fromScriptValue(const QScriptValue &value, T &t) +{ + t = qobject_cast(value.toQObject()); +} + /* struct LOCALMYLISTSHARED_EXPORT AnimeTitle { diff --git a/localmylist/settings.h b/localmylist/settings.h index 330cb4f..c26cfcf 100644 --- a/localmylist/settings.h +++ b/localmylist/settings.h @@ -41,4 +41,6 @@ private: } // namespace LocalMyList +Q_DECLARE_METATYPE(LocalMyList::Settings*) + #endif // SETTINGS_H diff --git a/management-gui/mainwindow.cpp b/management-gui/mainwindow.cpp index c160420..185526b 100644 --- a/management-gui/mainwindow.cpp +++ b/management-gui/mainwindow.cpp @@ -12,6 +12,7 @@ #include "mylist.h" #include "database.h" +#include "settings.h" #include "mylistmodel.h" #include "unknownfilelookuptask.h" #include "addrelatedepisodestask.h" -- 2.52.0