]> Some of my projects - localmylist.git/commitdiff
Expose more stuff to the script environment
authorAPTX <marek321@gmail.com>
Mon, 16 Jul 2012 01:52:05 +0000 (03:52 +0200)
committerAPTX <marek321@gmail.com>
Mon, 16 Jul 2012 01:52:05 +0000 (03:52 +0200)
localmylist/directoryscantask.cpp
localmylist/mylist.h
localmylist/requesthandler.cpp
localmylist/scriptable.cpp
localmylist/scriptable.h
localmylist/settings.h
management-gui/mainwindow.cpp

index db05bedfaff53ed3c25363a71dbc34e8d5eaa201..3b92772813d3709c8518652d3bf31ec60adedbae 100644 (file)
@@ -1,6 +1,7 @@
 #include "directoryscantask.h"
 
 #include "mylist.h"
+#include "settings.h"
 #include "addfiletask.h"
 
 #include <QDebug>
index db24635fb4fc68cced7d36167dd451974f6aa411..03671f4e319c347afb361c73aa76e56d0002a09f 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "localmylist_global.h"
 #include "database.h"
-#include "settings.h"
 #include <QObject>
 
 #include <QSet>
@@ -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
index 15633bfbfbb646d896598d7146b09f1eb2112d77..9e5723cd48182c7c627dd93d4c58b165d62577c8 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "mylist.h"
 #include "database.h"
+#include "settings.h"
 
 #include <AniDBUdpClient/Client>
 #include <AniDBUdpClient/AnimeCommand>
index 420b0f8763b8df3d27181d0a6cae1d173d142d10..48ff43ad483dab5f59f76860d3aeda520af31e8b 100644 (file)
@@ -1,11 +1,17 @@
 #include "scriptable.h"
 
+#include "mylist.h"
 #include "database.h"
+#include "settings.h"
 
 namespace LocalMyList {
 
 void registerTypes(QScriptEngine *engine)
 {
+       qScriptRegisterMetaType<MyList*>(engine, Scriptable::toScriptValue<MyList*>, Scriptable::fromScriptValue<MyList*>);
+       qScriptRegisterMetaType<Database*>(engine, Scriptable::toScriptValue<Database*>, Scriptable::fromScriptValue<Database*>);
+       qScriptRegisterMetaType<Settings*>(engine, Scriptable::toScriptValue<Settings*>, Scriptable::fromScriptValue<Settings*>);
+
        Scriptable::Anime *AnimePrototype = new Scriptable::Anime();
        engine->setDefaultPrototype(qMetaTypeId<Anime>(), engine->newQObject(AnimePrototype));
        engine->setDefaultPrototype(qMetaTypeId<Anime*>(), engine->newQObject(AnimePrototype));
index 6679b15187643404227d19a7d5d342fbc6a2902b..c92ab6abdf0fdf1ec7e1785f33be5b0162b18928 100644 (file)
@@ -25,6 +25,17 @@ struct DatabaseConnectionSettings;
 void LOCALMYLISTSHARED_EXPORT registerTypes(QScriptEngine *engine);
 
 namespace Scriptable {
+
+template<typename T> QScriptValue toScriptValue(QScriptEngine *engine, const T &t)
+{
+       return engine->newQObject(t);
+}
+
+template<typename T> void fromScriptValue(const QScriptValue &value, T &t)
+{
+       t = qobject_cast<T>(value.toQObject());
+}
+
 /*
 struct LOCALMYLISTSHARED_EXPORT AnimeTitle
 {
index 330cb4ff275c617808840e916469f14d876ded25..c26cfcf7f2d99ac60ad900f931a3da1e87245e62 100644 (file)
@@ -41,4 +41,6 @@ private:
 
 } // namespace LocalMyList
 
+Q_DECLARE_METATYPE(LocalMyList::Settings*)
+
 #endif // SETTINGS_H
index c1604204c8701ff544e0296953569272c125e44c..185526b9a5e0db536fbd9641c978eb973f60b34f 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "mylist.h"
 #include "database.h"
+#include "settings.h"
 #include "mylistmodel.h"
 #include "unknownfilelookuptask.h"
 #include "addrelatedepisodestask.h"