mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-11 20:16:47 +00:00
Little refactor
This commit is contained in:
parent
c11cc30180
commit
553bec0eb7
@ -27,7 +27,7 @@ public:
|
||||
virtual const DosIQMetaObject* superClassDosMetaObject() const = 0;
|
||||
};
|
||||
|
||||
/// Base class for
|
||||
/// Base class for any DosIQMetaObject
|
||||
class BaseDosQMetaObject : public DosIQMetaObject
|
||||
{
|
||||
public:
|
||||
@ -41,7 +41,7 @@ public:
|
||||
QMetaMethod writeSlot(const char *propertyName) const override { return QMetaMethod(); }
|
||||
const DosIQMetaObject* superClassDosMetaObject() const { return nullptr; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
SafeQMetaObjectPtr m_metaObject;
|
||||
};
|
||||
|
||||
@ -60,10 +60,10 @@ public:
|
||||
};
|
||||
|
||||
/// This the generic version used by subclasses of QObject or QAbstractListModels
|
||||
class DosQMetaObject : public DosIQMetaObject
|
||||
class DosQMetaObject : public BaseDosQMetaObject
|
||||
{
|
||||
public:
|
||||
DosQMetaObject(std::shared_ptr<const DosIQMetaObject> superClassDosMetaObject,
|
||||
DosQMetaObject(DosIQMetaObjectPtr superClassDosMetaObject,
|
||||
const QString& className,
|
||||
const SignalDefinitions &signalDefinitions,
|
||||
const SlotDefinitions &slotDefinitions,
|
||||
@ -72,7 +72,6 @@ public:
|
||||
QMetaMethod signal(const QString& signalName) const override;
|
||||
QMetaMethod readSlot(const char* propertyName) const override;
|
||||
QMetaMethod writeSlot(const char* propertyName) const override;
|
||||
const QMetaObject *metaObject() const override;
|
||||
const DosIQMetaObject *superClassDosMetaObject() const override;
|
||||
|
||||
private:
|
||||
@ -81,10 +80,9 @@ private:
|
||||
const SlotDefinitions &slotDefinitions,
|
||||
const PropertyDefinitions &propertyDefinitions);
|
||||
|
||||
std::shared_ptr<const DosIQMetaObject> m_superClassDosMetaObject;
|
||||
const DosIQMetaObjectPtr m_superClassDosMetaObject;
|
||||
QHash<QString, int> m_signalIndexByName;
|
||||
QHash<QString, QPair<int,int>> m_propertySlots;
|
||||
SafeQMetaObjectPtr m_metaObject;
|
||||
};
|
||||
|
||||
/// This class simply holds a ptr to a IDosQMetaObject
|
||||
|
@ -61,14 +61,19 @@ DosQAbstractListModelMetaObject::DosQAbstractListModelMetaObject()
|
||||
: BaseDosQMetaObject(::createDynamicQAbstractListModelMetaObject())
|
||||
{}
|
||||
|
||||
DosQMetaObject::DosQMetaObject(std::shared_ptr<const DosIQMetaObject> superClassMetaObject,
|
||||
DosQMetaObject::DosQMetaObject(DosIQMetaObjectPtr superClassMetaObject,
|
||||
const QString &className,
|
||||
const SignalDefinitions& signalDefinitions,
|
||||
const SlotDefinitions& slotDefinitions,
|
||||
const PropertyDefinitions& propertyDefinitions)
|
||||
: m_superClassDosMetaObject(std::move(superClassMetaObject))
|
||||
, m_metaObject(createMetaObject(className, signalDefinitions, slotDefinitions, propertyDefinitions))
|
||||
: BaseDosQMetaObject(nullptr)
|
||||
, m_superClassDosMetaObject(std::move(superClassMetaObject))
|
||||
, m_signalIndexByName(QHash<QString, int>())
|
||||
, m_propertySlots(QHash<QString, QPair<int,int>>())
|
||||
{
|
||||
// We do the metaobject initialization here because
|
||||
// we must wait for both maps to be initialized before filling them
|
||||
m_metaObject.reset(createMetaObject(className, signalDefinitions, slotDefinitions, propertyDefinitions));
|
||||
}
|
||||
|
||||
QMetaObject *DosQMetaObject::createMetaObject(const QString &className,
|
||||
@ -142,11 +147,6 @@ QMetaMethod DosQMetaObject::writeSlot(const char *propertyName) const
|
||||
return QMetaMethod();
|
||||
}
|
||||
|
||||
const QMetaObject *DosQMetaObject::metaObject() const
|
||||
{
|
||||
return m_metaObject;
|
||||
}
|
||||
|
||||
const DosIQMetaObject *DosQMetaObject::superClassDosMetaObject() const
|
||||
{
|
||||
return m_superClassDosMetaObject.get();
|
||||
|
Loading…
x
Reference in New Issue
Block a user