Files
beerlog/models/basemodel.h
2023-04-13 17:57:27 +02:00

44 lines
976 B
C++

#ifndef BASEMODEL_H
#define BASEMODEL_H
#include <QObject>
#include <QVariantMap>
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;
QVariantMap m_data;
QString m_entity;
};
#endif // BASEMODEL_H