Files
beerlog/models/basemodel.h

48 lines
1.0 KiB
C++

#ifndef BASEMODEL_H
#define BASEMODEL_H
#include <QObject>
#include <QVariantMap>
#include "services/dumpservice.h"
class BeerService;
class BaseModel : public QObject
{
Q_OBJECT
Q_PROPERTY(QString entity READ entity CONSTANT)
public:
explicit BaseModel(const QString &entity, QObject *parent = nullptr);
virtual ~BaseModel();
QString entity() const;
QVariantList items() const;
QVariantMap item(const QString &itemId) const;
QVariant itemProperty(const QString &itemId, const QString &propertyName, const QVariant &def = QVariant{}) const;
void submitItem(const QVariantMap &item) const;
void deleteItem(const QString &itemId) const;
public slots:
void created(const QVariant &data);
void modified(const QVariant &data);
void deleted(const QVariant &data);
void received(const QVariant &data);
signals:
void dataChanged();
private:
BeerService *service() const;
DumpService m_dumpService;
QVariantMap m_data;
QString m_entity;
};
#endif // BASEMODEL_H