Lua: Add sol::table to QFlags utils

Change-Id: I1f2f0530efa7062946e8165a43aee0f9b9ac0e1f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Artur Twardy
2024-10-22 17:36:24 +02:00
parent b1f1d563b1
commit 00f47a3b9f

View File

@@ -49,4 +49,16 @@ inline void mirrorEnum(sol::table &target, QMetaEnum metaEnum, const QString &na
for (int i = 0; i < metaEnum.keyCount(); ++i) for (int i = 0; i < metaEnum.keyCount(); ++i)
widgetAttributes.set(metaEnum.key(i), metaEnum.value(i)); widgetAttributes.set(metaEnum.key(i), metaEnum.value(i));
}; };
template <typename E>
inline QFlags<E> tableToFlags(const sol::table &table) noexcept {
static_assert(std::is_enum<E>::value, "Enum type required");
QFlags<E> flags;
for (const auto& kv : table)
flags.setFlag(static_cast<E>(kv.second.as<int>()));
return flags;
}
} // namespace Lua::Internal } // namespace Lua::Internal