productsviewmodel.h 940 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef PRODUCTSVIEWMODEL_H
  2. #define PRODUCTSVIEWMODEL_H
  3. #include <QObject>
  4. #include <QVariantMap>
  5. #include "services/modelsregister.h"
  6. class SettingsService;
  7. class ProductsViewModel : public QObject
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(QVariantList products READ products NOTIFY productsChanged)
  11. Q_PROPERTY(QVariantList order READ order NOTIFY orderChanged)
  12. Q_PROPERTY(float orderSum READ orderSum NOTIFY orderChanged)
  13. public:
  14. explicit ProductsViewModel(QObject *parent = nullptr);
  15. QVariantList products() const;
  16. QVariantList order() const;
  17. float orderSum() const;
  18. Q_INVOKABLE void setOrderValue(const QString &productId, float value);
  19. Q_INVOKABLE void submitOrder();
  20. signals:
  21. void productsChanged();
  22. void orderChanged();
  23. private:
  24. SettingsService *settings() const;
  25. BaseModel *m_productsModel = ModelsRegister::model("products");
  26. QVariantMap m_order;
  27. };
  28. #endif // PRODUCTSVIEWMODEL_H