basemodel.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef BASEMODEL_H
  2. #define BASEMODEL_H
  3. #include <QObject>
  4. #include <QVariantMap>
  5. #include "services/dumpservice.h"
  6. class BeerService;
  7. class BaseModel : public QObject
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(QString entity READ entity CONSTANT)
  11. public:
  12. explicit BaseModel(const QString &entity, QObject *parent = nullptr);
  13. virtual ~BaseModel();
  14. QString entity() const;
  15. QVariantList items() const;
  16. QVariantMap item(const QString &itemId) const;
  17. QVariant itemProperty(const QString &itemId, const QString &propertyName, const QVariant &def = QVariant{}) const;
  18. void submitItem(const QVariantMap &item) const;
  19. void deleteItem(const QString &itemId) 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. DumpService m_dumpService;
  30. QVariantMap m_data;
  31. QString m_entity;
  32. };
  33. #endif // BASEMODEL_H