22#include "customtyperegistry_p.h"
24#include "metaenumvariable_p.h"
25#include "safestring.h"
27#include <QtCore/QLoggingCategory>
28#include <QtCore/QQueue>
29#include <QtCore/QStack>
30#include <QtCore/QStringList>
32Q_LOGGING_CATEGORY(CUTELEE_CUSTOMTYPE,
"cutelee.customtype")
36CustomTypeRegistry::CustomTypeRegistry()
39 registerBuiltInMetatype<SafeString>();
40 registerBuiltInMetatype<MetaEnumVariable>();
43void CustomTypeRegistry::registerLookupOperator(
int id,
44 MetaType::LookupFunction f)
46 CustomTypeInfo &info = types[id];
47 info.lookupFunction = f;
53 if (!
object.isValid())
56 const auto id =
object.userType();
57 MetaType::LookupFunction lf;
59 auto it = types.constFind(
id);
60 if (it == types.constEnd()) {
61 qCWarning(CUTELEE_CUSTOMTYPE)
62 <<
"Don't know how to handle metatype" <<
QMetaType(
id).
name();
67 const CustomTypeInfo &info = it.value();
68 if (!info.lookupFunction) {
69 qCWarning(CUTELEE_CUSTOMTYPE)
76 lf = info.lookupFunction;
79 return lf(
object, property);
82bool CustomTypeRegistry::lookupAlreadyRegistered(
int id)
const
84 auto it = types.constFind(
id);
85 if (it != types.constEnd()) {
86 return it.value().lookupFunction != 0;
The Cutelee namespace holds all public Cutelee API.