diff --git a/libnymea-app-core/engine.cpp b/libnymea-app-core/engine.cpp index 7d244926..231a78ef 100644 --- a/libnymea-app-core/engine.cpp +++ b/libnymea-app-core/engine.cpp @@ -21,6 +21,7 @@ #include "engine.h" #include "rulemanager.h" +#include "scriptmanager.h" #include "logmanager.h" #include "tagsmanager.h" #include "configuration/nymeaconfiguration.h" @@ -39,6 +40,7 @@ Engine::Engine(QObject *parent) : m_jsonRpcClient(new JsonRpcClient(m_connection, this)), m_deviceManager(new DeviceManager(m_jsonRpcClient, this)), m_ruleManager(new RuleManager(m_jsonRpcClient, this)), + m_scriptManager(new ScriptManager(m_jsonRpcClient, this)), m_logManager(new LogManager(m_jsonRpcClient, this)), m_tagsManager(new TagsManager(m_jsonRpcClient, this)), m_nymeaConfiguration(new NymeaConfiguration(m_jsonRpcClient, this)), @@ -80,6 +82,11 @@ RuleManager *Engine::ruleManager() const return m_ruleManager; } +ScriptManager *Engine::scriptManager() const +{ + return m_scriptManager; +} + TagsManager *Engine::tagsManager() const { return m_tagsManager; @@ -144,6 +151,7 @@ void Engine::onDeviceManagerFetchingChanged() { if (!m_deviceManager->fetchingData()) { m_ruleManager->init(); + m_scriptManager->init(); m_nymeaConfiguration->init(); m_systemController->init(); if (m_jsonRpcClient->ensureServerVersion("1.7")) { diff --git a/libnymea-app-core/engine.h b/libnymea-app-core/engine.h index 754e1ef2..b63ce71b 100644 --- a/libnymea-app-core/engine.h +++ b/libnymea-app-core/engine.h @@ -29,6 +29,7 @@ #include "wifisetup/bluetoothdiscovery.h" class RuleManager; +class ScriptManager; class LogManager; class TagsManager; class NymeaConfiguration; @@ -41,6 +42,7 @@ class Engine : public QObject Q_PROPERTY(NymeaConnection* connection READ connection CONSTANT) Q_PROPERTY(DeviceManager* deviceManager READ deviceManager CONSTANT) Q_PROPERTY(RuleManager* ruleManager READ ruleManager CONSTANT) + Q_PROPERTY(ScriptManager* scriptManager READ scriptManager CONSTANT) Q_PROPERTY(TagsManager* tagsManager READ tagsManager CONSTANT) Q_PROPERTY(JsonRpcClient* jsonRpcClient READ jsonRpcClient CONSTANT) Q_PROPERTY(NymeaConfiguration* nymeaConfiguration READ nymeaConfiguration CONSTANT) @@ -55,6 +57,7 @@ public: NymeaConnection *connection() const; DeviceManager *deviceManager() const; RuleManager *ruleManager() const; + ScriptManager *scriptManager() const; TagsManager *tagsManager() const; JsonRpcClient *jsonRpcClient() const; LogManager *logManager() const; @@ -68,6 +71,7 @@ private: JsonRpcClient *m_jsonRpcClient; DeviceManager *m_deviceManager; RuleManager *m_ruleManager; + ScriptManager *m_scriptManager; LogManager *m_logManager; TagsManager *m_tagsManager; NymeaConfiguration *m_nymeaConfiguration; diff --git a/libnymea-app-core/libnymea-app-core.h b/libnymea-app-core/libnymea-app-core.h index 64e6b004..a9d21c28 100644 --- a/libnymea-app-core/libnymea-app-core.h +++ b/libnymea-app-core/libnymea-app-core.h @@ -68,6 +68,12 @@ #include "configuration/networkmanager.h" #include "types/networkdevices.h" #include "types/networkdevice.h" +#include "scriptsyntaxhighlighter.h" +#include "scriptmanager.h" +#include "scripting/codecompletion.h" +#include "scripting/completionmodel.h" +#include "types/script.h" +#include "types/scripts.h" #include @@ -230,6 +236,13 @@ void registerQmlTypes() { qmlRegisterUncreatableType(uri, 1, 0, "NetworkDevice", "Get it from NetworkDevices"); qmlRegisterUncreatableType(uri, 1, 0, "WiredNetworkDevice", "Get it from NetworkDevices"); qmlRegisterUncreatableType(uri, 1, 0, "WirelessNetworkDevice", "Get it from NetworkDevices"); + + qmlRegisterUncreatableType(uri, 1, 0, "ScriptManager", "Get it from Engine"); + qmlRegisterUncreatableType(uri, 1, 0, "Scripts", "Getit from ScriptManager"); + qmlRegisterUncreatableType