From a1da3afdc9df3e83b7a9ec915acbfcc239e7c728 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 18 Jul 2024 17:03:05 +0200 Subject: [PATCH] Lua: Add AspectContainer::onApplied Change-Id: I2f53479b2b81b86fb90778dd495d8733bde2118e Reviewed-by: hjk --- src/plugins/lua/bindings/settings.cpp | 10 ++++++++++ src/plugins/lua/meta/settings.lua | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/plugins/lua/bindings/settings.cpp b/src/plugins/lua/bindings/settings.cpp index 241b1970c63..fedbdff2320 100644 --- a/src/plugins/lua/bindings/settings.cpp +++ b/src/plugins/lua/bindings/settings.cpp @@ -67,10 +67,20 @@ std::unique_ptr aspectContainerCreate(const sol::table &opti QTC_ASSERT_EXPECTED(res, return {}); return *res; }); + } else if (key == "onApplied") { + QObject::connect( + container.get(), + &AspectContainer::applied, + container.get(), + [func = v.as()]() { Lua::LuaEngine::void_safe_call(func); }); + } else if (key == "settingsGroup") { + container->setSettingsGroup(v.as()); } else { container->m_entries[key] = v; if (v.is()) { container->registerAspect(v.as()); + } else { + qWarning() << "Unknown key:" << key.c_str(); } } } diff --git a/src/plugins/lua/meta/settings.lua b/src/plugins/lua/meta/settings.lua index 6cf32d8ef2b..714b5d29f96 100644 --- a/src/plugins/lua/meta/settings.lua +++ b/src/plugins/lua/meta/settings.lua @@ -41,9 +41,11 @@ settings.AspectContainer = {} ---Options for creating an AspectContainer. ---@class AspectContainerCreate ---@field autoApply? boolean Whether the aspects should be applied automatically or not. +---@field onApplied? function Called when the aspects are applied. +---@field layouter? function The layouter of the aspect container. +---@field settingsGroup? string The settings group of the aspect container. AspectContainerCreate = {} - ---Create a new AspectContainer. ---@param options AspectContainerCreate ---@return AspectContainer