]> Some of my projects - localmylist.git/commitdiff
Expose more stuff to the script environment
authorAPTX <redacted>
Mon, 16 Jul 2012 01:52:05 +0000 (03:52 +0200)
committerAPTX <redacted>
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 db05bed..3b92772 100644 (file)
@@ -1,6 +1,7 @@
 #include "directoryscantask.h"
 
 #include "mylist.h"
+#include "settings.h"
 #include "addfiletask.h"
 
 #include <QDebug>
index db24635..03671f4 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 15633bf..9e5723c 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "mylist.h"
 #include "database.h"
+#include "settings.h"
 
 #include <AniDBUdpClient/Client>
 #include <AniDBUdpClient/AnimeCommand>
index 420b0f8..48ff43a 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 6679b15..c92ab6a 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 330cb4f..c26cfcf 100644 (file)
@@ -41,4 +41,6 @@ private:
 
 } // namespace LocalMyList
 
+Q_DECLARE_METATYPE(LocalMyList::Settings*)
+
 #endif // SETTINGS_H
index c160420..185526b 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "mylist.h"
 #include "database.h"
+#include "settings.h"
 #include "mylistmodel.h"
 #include "unknownfilelookuptask.h"
 #include "addrelatedepisodestask.h"