forked from qt-creator/qt-creator
Lua: Add sol::table to QFlags utils
Change-Id: I1f2f0530efa7062946e8165a43aee0f9b9ac0e1f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -49,4 +49,16 @@ inline void mirrorEnum(sol::table &target, QMetaEnum metaEnum, const QString &na
|
||||
for (int i = 0; i < metaEnum.keyCount(); ++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
|
||||
|
Reference in New Issue
Block a user