File indexing completed on 2024-05-12 17:24:09
0001 // SPDX-FileCopyrightText: 2023 Mathis <mbb@kaidan.im> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <QAbstractListModel> 0007 #include "database.h" 0008 0009 class HealthHistoryModel: public QAbstractListModel 0010 { 0011 Q_OBJECT; 0012 Q_PROPERTY(int plantId READ plantId WRITE setPlantId NOTIFY plantIdChanged) 0013 0014 enum Role { 0015 HealthDateRole = Qt::UserRole +1, 0016 HealthRole 0017 }; 0018 public: 0019 explicit HealthHistoryModel(QObject *parent = nullptr); 0020 0021 DB::Plant::Id plantId() const; 0022 void setPlantId(const DB::Plant::Id plantId); 0023 0024 int rowCount(const QModelIndex &parent)const override; 0025 QHash<int, QByteArray> roleNames()const override; 0026 QVariant data(const QModelIndex& index, int role) const override; 0027 Q_INVOKABLE void addHealthEvent(const int health); 0028 0029 Q_SIGNALS: 0030 void plantIdChanged(); 0031 0032 private: 0033 std::vector<DB::HealthEvent> m_data; 0034 int m_plantId; 0035 };