summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/qremoteobjectnode.cpp
diff options
context:
space:
mode:
authorMichael Brasser <mbrasser@ford.com>2020-07-24 14:12:45 -0500
committerMichael Brasser <michael.brasser@live.com>2020-07-27 10:28:10 -0500
commit51695d93e7190d0cbb2e896a0a2bbdd24ebbaf71 (patch)
treeca807667e1af6cc715e8641d65f9955c27e8b0f7 /src/remoteobjects/qremoteobjectnode.cpp
parent807c505b16edc28836f1ecd6e9e7a6a160bb4bea (diff)
Update dependencies.yaml
Change-Id: Ic4bfe4ba2173c84c743f4c972db216e6bbd30211 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Diffstat (limited to 'src/remoteobjects/qremoteobjectnode.cpp')
-rw-r--r--src/remoteobjects/qremoteobjectnode.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/remoteobjects/qremoteobjectnode.cpp b/src/remoteobjects/qremoteobjectnode.cpp
index 5d1e6ec..2d3d56d 100644
--- a/src/remoteobjects/qremoteobjectnode.cpp
+++ b/src/remoteobjects/qremoteobjectnode.cpp
@@ -133,6 +133,11 @@ static void GadgetLoadOperator(QDataStream &in, void *data)
in >> prop;
}
+static bool GadgetEqualsFn(const QtPrivate::QMetaTypeInterface *, const void *a, const void *b)
+{
+ return *reinterpret_cast<const GadgetType*>(a) == *reinterpret_cast<const GadgetType*>(b);
+}
+
// Like the Q_GADGET static methods above, we need constructor/destructor methods
// in order to use dynamically defined enums with QVariant or as signal/slot
// parameters (i.e., the queued connection mechanism, which QtRO leverages).
@@ -178,6 +183,18 @@ static void EnumLoadOperator(QDataStream &in, void *data)
in >> value;
}
+template<typename T>
+static bool EnumEqualsFn(const QtPrivate::QMetaTypeInterface *, const void *a, const void *b)
+{
+ return *static_cast<const T*>(a) == *static_cast<const T*>(b);
+}
+
+template<typename T>
+static bool EnumLessThanFn(const QtPrivate::QMetaTypeInterface *, const void *a, const void *b)
+{
+ return *static_cast<const T*>(a) < *static_cast<const T*>(b);
+}
+
static QString name(const QMetaObject * const mobj)
{
const int ind = mobj->indexOfClassInfo(QCLASSINFO_REMOTEOBJECT_TYPE);
@@ -777,6 +794,8 @@ static TypeInfo *enumMetaType(const QByteArray &name, uint size, const QMetaObje
EnumCopyConstructor<Int>,
EnumMoveConstructor<Int>,
EnumDestructor<Int>,
+ EnumEqualsFn<Int>,
+ EnumLessThanFn<Int>,
nullptr };
return typeInfo;
}
@@ -878,6 +897,8 @@ static int registerGadgets(IoDeviceBase *connection, Gadgets &gadgets, QByteArra
GadgetTypedCopyConstructor,
GadgetTypedMoveConstructor,
GadgetTypedDestructor,
+ GadgetEqualsFn,
+ nullptr,
nullptr };
entry.gadgetMetaType = QMetaType(typeInfo);
QMetaType::registerStreamOperators(entry.gadgetMetaType.id(), &GadgetSaveOperator, &GadgetLoadOperator);
@@ -890,6 +911,8 @@ static int registerGadgets(IoDeviceBase *connection, Gadgets &gadgets, QByteArra
nullptr,
nullptr,
nullptr,
+ nullptr,
+ nullptr,
nullptr };
entry.gadgetMetaType = QMetaType(typeInfo);
}