Files
beerlog/models/basemodel.h

45 lines
1.0 KiB
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 addItem(const QVariantMap &item) const;
void deleteItem(const QString &itemId) const;
void modifyItem(const QString &itemId, const QVariantMap &properties) 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