MCPcopy Create free account
hub / github.com/KDAB/GammaRay / valueFromMetaEnum

Method valueFromMetaEnum

core/enumrepositoryserver.cpp:55–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55EnumValue EnumRepositoryServer::valueFromMetaEnum(int value, const QMetaEnum &me)
56{
57 Q_ASSERT(s_instance);
58 Q_ASSERT(me.isValid());
59
60 const auto typeName = QByteArray(me.scope()) + "::" + me.name();
61 const auto it = s_instance->m_nameToIdMap.constFind(typeName);
62 if (it != s_instance->m_nameToIdMap.constEnd())
63 return EnumValue(it.value(), value);
64
65 EnumDefinition def(s_instance->m_nextId++, typeName);
66 def.setIsFlag(me.isFlag());
67 QVector<EnumDefinitionElement> elements;
68 elements.reserve(me.keyCount());
69 for (int i = 0; i < me.keyCount(); ++i)
70 elements.push_back(EnumDefinitionElement(me.value(i), me.key(i)));
71 def.setElements(elements);
72
73 s_instance->addDefinition(def);
74 s_instance->m_nameToIdMap.insert(typeName, def.id());
75
76 return EnumValue(def.id(), value);
77}
78
79EnumValue EnumRepositoryServer::valueFromVariant(const QVariant &value)
80{

Callers

nothing calls this directly

Calls 12

setIsFlagMethod · 0.80
isFlagMethod · 0.80
reserveMethod · 0.80
keyMethod · 0.80
setElementsMethod · 0.80
addDefinitionMethod · 0.80
isValidMethod · 0.45
nameMethod · 0.45
constEndMethod · 0.45
valueMethod · 0.45
insertMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected