basemodel.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef BASEMODEL_H
  2. #define BASEMODEL_H
  3. #include <QObject>
  4. #include <QVariantMap>
  5. class BeerService;
  6. class BaseModel : public QObject
  7. {
  8. Q_OBJECT
  9. Q_PROPERTY(QString entity READ entity CONSTANT)
  10. public:
  11. explicit BaseModel(const QString &entity, QObject *parent = nullptr);
  12. virtual ~BaseModel();
  13. QString entity() const;
  14. QVariantList items() const;
  15. QVariantMap item(const QString &itemId) const;
  16. QVariant itemProperty(const QString &itemId, const QString &propertyName, const QVariant &def = QVariant{}) const;
  17. void addItem(const QVariantMap &item) const;
  18. void deleteItem(const QString &itemId) const;
  19. void modifyItem(const QString &itemId, const QVariantMap &properties) const;
  20. public slots:
  21. void created(const QVariant &data);
  22. void modified(const QVariant &data);
  23. void deleted(const QVariant &data);
  24. void received(const QVariant &data);
  25. signals:
  26. void dataChanged();
  27. private:
  28. BeerService *service() const;
  29. QVariantMap m_data;
  30. QString m_entity;
  31. };
  32. #endif // BASEMODEL_H