Files
z-bar-qt/Plugins/include/util/metaenum.hpp
T
zach ef2fb95fab
C++ / fmt (pull_request) Successful in 4s
JS/TS / fmt (pull_request) Failing after 17s
JS/TS / lint (pull_request) Successful in 19s
Python / static (pull_request) Successful in 1m11s
Rust / fmt (pull_request) Successful in 1m3s
Rust / build (pull_request) Successful in 2m26s
Rust / clippy (pull_request) Failing after 16m40s
Python / verify (pull_request) Failing after 17m52s
C++ / clang-tidy (pull_request) Failing after 18m0s
C++ / build (pull_request) Failing after 18m2s
chore: split cmake into multiple files and fix settings searching regex + add enabled option to llm
2026-09-01 14:30:04 +02:00

32 lines
816 B
C++

#pragma once
#include <qmetaobject.h>
#include <qmetatype.h>
#include <qvariant.h>
namespace util {
inline QMetaEnum metaEnumFor(const QMetaType& type) {
const auto* meta = type.metaObject();
if (!meta) return {};
auto name = QByteArray(type.name());
if (const auto scope = name.lastIndexOf("::"); scope >= 0)
name = name.mid(scope + 2);
return meta->enumerator(meta->indexOfEnumerator(name.constData()));
}
inline bool isSupportedEnum(const QMetaType& type) {
if (!type.flags().testFlag(QMetaType::IsEnumeration)) return false;
const auto metaEnum = metaEnumFor(type);
return metaEnum.isValid() && !metaEnum.is64Bit();
}
inline const char* enumKeyFor(const QMetaEnum& metaEnum, const QVariant& value) {
return metaEnum.valueToKey(static_cast<quint64>(value.toLongLong()));
}
} // namespace util