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> 32 Q_LOGGING_CATEGORY(CUTELEE_CUSTOMTYPE,
"cutelee.customtype")
36 CustomTypeRegistry::CustomTypeRegistry()
39 registerBuiltInMetatype<SafeString>();
40 registerBuiltInMetatype<MetaEnumVariable>();
43 void 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);
82 bool 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.