| 53 | } |
| 54 | |
| 55 | EnumValue 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 | |
| 79 | EnumValue EnumRepositoryServer::valueFromVariant(const QVariant &value) |
| 80 | { |
nothing calls this directly
no test coverage detected