#pragma once #include namespace utils { template QString enumToString(Enum value) { auto metaEnum = QMetaEnum::fromType(); return metaEnum.valueToKey(static_cast(value)); } template Enum enumFromString(const QString &str, Enum defaultValue = {}) { auto metaEnum = QMetaEnum::fromType(); bool isOk; auto value = metaEnum.keyToValue(str.toLatin1(), &isOk); if (isOk) { return static_cast(value); } return defaultValue; } }