aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lua/luaengine.cpp
diff options
context:
space:
mode:
authorMarcus Tillmanns <marcus.tillmanns@qt.io>2024-09-27 12:11:32 +0200
committerMarcus Tillmanns <marcus.tillmanns@qt.io>2024-10-08 11:01:38 +0000
commitcfb64f3518a362f248839d656160f566ff436ca3 (patch)
tree0e0c42cad9d55380a9fb81e131c713d2106ca1d0 /src/plugins/lua/luaengine.cpp
parent62f0c8e27b0e9aabc941a9ae3c24d3216ce7578a (diff)
Lua: Move inspect and async into resources
Change-Id: I257323861823ed7858efdb265a78cc572c2e7273 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/lua/luaengine.cpp')
-rw-r--r--src/plugins/lua/luaengine.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/lua/luaengine.cpp b/src/plugins/lua/luaengine.cpp
index f70b0d5e269..dca1bb25733 100644
--- a/src/plugins/lua/luaengine.cpp
+++ b/src/plugins/lua/luaengine.cpp
@@ -171,6 +171,23 @@ void registerProvider(const QString &packageName, const PackageProvider &provide
d->m_providers[packageName] = provider;
}
+void registerProvider(const QString &packageName, const FilePath &path)
+{
+ registerProvider(packageName, [path](sol::state_view lua) -> sol::object {
+ auto content = path.fileContents();
+ if (!content)
+ throw sol::error(content.error().toStdString());
+
+ sol::protected_function_result res
+ = lua.script(content->data(), path.fileName().toStdString());
+ if (!res.valid()) {
+ sol::error err = res;
+ throw err;
+ }
+ return res.get<sol::table>(0);
+ });
+}
+
void autoRegister(const std::function<void(sol::state_view)> &registerFunction)
{
d->m_autoProviders.append(registerFunction);