|
18 | 18 |
|
19 | 19 | #include "ScriptingEngine.h" |
20 | 20 | #include "Promise.h" |
| 21 | +#include "modules/Module.h" |
21 | 22 | #include "modules/core/CoreModule.h" |
22 | | -#include "modules/fs/File.h" |
| 23 | +#include "modules/desktop/DesktopModule.h" |
| 24 | +#include "modules/fs/FSModule.h" |
23 | 25 | #include "modules/main/MainModule.h" |
24 | 26 | #include <libinputactions/InputActionsMain.h> |
25 | | -#include <libinputactions/PointF.h> |
26 | 27 | #include <libinputactions/config/ConfigIssue.h> |
27 | 28 | #include <libinputactions/globals.h> |
28 | 29 | #include <libinputactions/helpers/QString.h> |
@@ -74,25 +75,11 @@ void ScriptingEngine::initialize() |
74 | 75 |
|
75 | 76 | m_coreModule = std::make_unique<CoreModule>(*this, m_variableRegistry); |
76 | 77 | QJSEngine::setObjectOwnership(m_coreModule.get(), QJSEngine::CppOwnership); |
77 | | - auto coreModule = m_engine->newQObject(m_coreModule.get()); |
78 | | - coreModule.setProperty("KeyboardModifier", newEnum<KeyboardModifier>()); |
79 | | - coreModule.setProperty("VariableType", newEnum<VariableType>()); |
80 | | - registerBuiltinModule("inputactions/core", coreModule); |
81 | | - |
82 | | - auto desktopModule = m_engine->newObject(); |
83 | | - desktopModule.setProperty("CursorShape", newEnum<CursorShape>()); |
84 | | - registerBuiltinModule("inputactions/desktop", desktopModule); |
85 | | - |
86 | | - auto fsModule = m_engine->newObject(); |
87 | | - fsModule.setProperty("File", m_engine->newQMetaObject(&File::staticMetaObject)); |
88 | | - auto file = fsModule.property("File"); |
89 | | - file.setProperty("readAllText", newFunction<QJSValue, QString>(&File::readAllText)); |
90 | | - file.setProperty("writeAllText", newFunction<QJSValue, QString, QString>(&File::writeAllText)); |
91 | | - registerBuiltinModule("inputactions/fs", fsModule); |
92 | | - |
93 | | - auto mainModule = m_engine->newQObject(new MainModule(*this)); |
94 | | - mainModule.setProperty("Point", m_engine->newQMetaObject(&PointF::staticMetaObject)); |
95 | | - registerBuiltinModule("inputactions", mainModule); |
| 78 | + registerBuiltinModule("inputactions/core", m_coreModule.get()); |
| 79 | + |
| 80 | + registerBuiltinModule("inputactions", new MainModule(*this)); |
| 81 | + registerBuiltinModule("inputactions/desktop", new DesktopModule(*this)); |
| 82 | + registerBuiltinModule("inputactions/fs", new FSModule(*this)); |
96 | 83 |
|
97 | 84 | auto globalObject = m_engine->globalObject(); |
98 | 85 | globalObject.setProperty("require", newFunction<QJSValue, QString>([this](QString module) { |
@@ -170,10 +157,12 @@ void ScriptingEngine::initializeWatchdog() |
170 | 157 | onWatchdogRestartTimerTick(); |
171 | 158 | } |
172 | 159 |
|
173 | | -void ScriptingEngine::registerBuiltinModule(const QString &name, QJSValue value) |
| 160 | +void ScriptingEngine::registerBuiltinModule(const QString &name, Module *module) |
174 | 161 | { |
175 | | - ensureEngine().registerModule(name, value); |
176 | | - m_builtinModules[name] = std::move(value); |
| 162 | + auto object = m_engine->newQObject(module); |
| 163 | + module->initialize(object); |
| 164 | + ensureEngine().registerModule(name, object); |
| 165 | + m_builtinModules[name] = std::move(object); |
177 | 166 | } |
178 | 167 |
|
179 | 168 | QJSValue ScriptingEngine::newEnum(const QMetaEnum &metaEnum) |
|
0 commit comments