DiveObjectHelper: Turn DiveObjectHelper into Q_GADGET based object

DiveObjectHelper is a tiny wrapper around dive * to allow access
to dive data from QML and grantlee. It doesn't have to be a
full-fledged QObject with support for signals, etc. Therefore,
turn it into a Q_GADGET based object. This allows us passing the
object around as object, not as pointer to DiveObjectHelper.
This makes memory-management distinctly easier.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-08-13 07:28:24 +02:00 committed by bstoeger
parent a79c45e401
commit be763452ad
5 changed files with 101 additions and 20 deletions

View file

@ -9,8 +9,8 @@
#include <QVector>
#include <QVariant>
class DiveObjectHelper : public QObject {
Q_OBJECT
class DiveObjectHelper {
Q_GADGET
Q_PROPERTY(int number READ number CONSTANT)
Q_PROPERTY(int id READ id CONSTANT)
Q_PROPERTY(int rating READ rating CONSTANT)
@ -48,6 +48,7 @@ class DiveObjectHelper : public QObject {
Q_PROPERTY(QStringList endPressure READ endPressure CONSTANT)
Q_PROPERTY(QStringList firstGas READ firstGas CONSTANT)
public:
DiveObjectHelper(); // This is only to be used by Qt's metatype system!
DiveObjectHelper(struct dive *dive);
int number() const;
int id() const;
@ -92,6 +93,6 @@ public:
private:
struct dive *m_dive;
};
Q_DECLARE_METATYPE(DiveObjectHelper *)
Q_DECLARE_METATYPE(DiveObjectHelper)
#endif