#pragma once #include #include #include "item.h" #include "../sensors/sensor.h" #include class ItemStore: public QObject { Q_OBJECT private: std::vector< std::shared_ptr > items_; public: ItemStore(QObject *parent = nullptr); virtual ~ItemStore() {} inline std::vector< std::shared_ptr >* getItems() { return &items_; } void store(QJsonObject &json); void load(const QJsonObject &json); void clear(); signals: void itemDeleted(ItemData item); void itemAdded(std::weak_ptr Item); public slots: void removeItem(const ItemData& item); void addItem(std::shared_ptr item); void addItems(const std::vector>& itemsIn); void itemStateChanged(const ItemData& item); };