32#ifndef OPENSWMMVIS_UI_PANELS_TIMESERIESTABLEMODEL_H
33#define OPENSWMMVIS_UI_PANELS_TIMESERIESTABLEMODEL_H
35#include <QAbstractTableModel>
42class TimeseriesProvider;
68 QVector<openswmmvis::timeseries::TimeseriesProvider *>
providers()
const;
75 QUndoStack *
undoStack() const noexcept {
return m_undoStack; }
81 QVariant
data(
const QModelIndex &
index,
int role = Qt::DisplayRole)
const override;
82 bool setData(
const QModelIndex &
index,
const QVariant &value,
83 int role = Qt::EditRole)
override;
84 QVariant
headerData(
int section, Qt::Orientation orientation,
85 int role = Qt::DisplayRole)
const override;
87 const QVariant &value,
int role = Qt::EditRole)
override;
88 Qt::ItemFlags
flags(
const QModelIndex &
index)
const override;
91 void onProviderPointsChanged_(
int firstIndex,
int count);
92 void onProviderPointsInserted_(
int at,
int count);
93 void onProviderPointsRemoved_(
int at,
int count);
94 void onProviderMetadataChanged_();
95 void onProviderSourceModeChanged_();
98 QVector<QPointer<openswmmvis::timeseries::TimeseriesProvider>> m_providers;
100 QUndoStack *m_undoStack =
nullptr;
103 void detectLayout_();
113 bool anyExternal_()
const;
Definition timeseriesprovider.h:43
Definition timeseriestablemodel.h:48
~TimeseriesTableModel() override
Definition timeseriestablemodel.cpp:34
QVector< openswmmvis::timeseries::TimeseriesProvider * > providers() const
Currently-bound providers. In Divergent mode this still contains every passed provider; only provider...
Definition timeseriestablemodel.cpp:40
void setProviders(QVector< openswmmvis::timeseries::TimeseriesProvider * > providers)
Bind to a set of sibling providers. Empty list clears. Auto-detects layout mode from current grids.
Definition timeseriestablemodel.cpp:48
LayoutMode
Definition timeseriestablemodel.h:52
@ SharedGrid
All providers share a common time vector.
@ Divergent
Falls back to single-provider view.
void setUndoStack(QUndoStack *stack)
Set the undo stack used for cell mutations / header renames. Pass nullptr to apply changes directly.
Definition timeseriestablemodel.h:74
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override
Definition timeseriestablemodel.cpp:247
int columnCount(const QModelIndex &parent={}) const override
Definition timeseriestablemodel.cpp:131
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition timeseriestablemodel.cpp:268
QUndoStack * undoStack() const noexcept
Definition timeseriestablemodel.h:75
LayoutMode layoutMode() const noexcept
Definition timeseriestablemodel.h:70
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition timeseriestablemodel.cpp:230
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition timeseriestablemodel.cpp:138
int rowCount(const QModelIndex &parent={}) const override
Definition timeseriestablemodel.cpp:121
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition timeseriestablemodel.cpp:167
SWMM_FilePathRole role
Definition ioportabilitynormalizer.cpp:22
ArrowPlacement p
Definition linesymbollayer.cpp:27
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
Definition timeseriesprovider.h:34
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176