#ifndef PARTICLELISTMODEL_H
#define PARTICLELISTMODEL_H

#include <QAbstractListModel>
#include "store.h"

class ParticleListModel : public QAbstractListModel
{
  Q_OBJECT

public:
  explicit ParticleListModel(Store *store, QObject *parent = nullptr);

  int rowCount(const QModelIndex &parent = QModelIndex()) const override;
  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;

  void setStreamId(const QString &streamId);
  int firstUnseenRow() const;  // Returns -1 if none unseen
  const Particle* particleAtRow(int row) const;

private:
  Store *m_store;
  QString m_currentStreamId;
};

#endif // PARTICLELISTMODEL_H
