24#ifndef OPENSWMMVIS_UI_DIALOGS_MESH2DAQUIFERMODEL_H
25#define OPENSWMMVIS_UI_DIALOGS_MESH2DAQUIFERMODEL_H
27#include <QAbstractTableModel>
31#include <openswmm/engine/openswmm_engine.h>
67 int rowCount(
const QModelIndex &
parent = QModelIndex())
const override;
69 QVariant
data(
const QModelIndex &
index,
int role)
const override;
70 bool setData(
const QModelIndex &
index,
const QVariant &value,
71 int role = Qt::EditRole)
override;
72 QVariant
headerData(
int section, Qt::Orientation orientation,
73 int role = Qt::DisplayRole)
const override;
74 Qt::ItemFlags
flags(
const QModelIndex &
index)
const override;
76 const QModelIndex &
parent = QModelIndex())
override;
84 [[nodiscard]]
bool isDirty()
const;
100 double thetaR = 0.10;
103 bool soilSet =
false;
105 bool closureSet =
false;
109 double lambda = 0.40;
113 bool operator==(
const Row &o)
const;
118 QString m_lengthLabel = QStringLiteral(
"m");
119 QString m_rateLabel = QStringLiteral(
"mm/hr");
132 int rowCount(
const QModelIndex &
parent = QModelIndex())
const override;
134 QVariant
data(
const QModelIndex &
index,
int role)
const override;
135 bool setData(
const QModelIndex &
index,
const QVariant &value,
136 int role = Qt::EditRole)
override;
137 QVariant
headerData(
int section, Qt::Orientation orientation,
138 int role = Qt::DisplayRole)
const override;
139 Qt::ItemFlags
flags(
const QModelIndex &
index)
const override;
141 const QModelIndex &
parent = QModelIndex())
override;
145 [[nodiscard]]
bool isDirty()
const;
149 const QString &areaLabel);
158 bool operator==(
const Row &o)
const;
163 QString m_lengthLabel = QStringLiteral(
"m");
164 QString m_rateLabel = QStringLiteral(
"mm/hr");
165 QString m_areaLabel = QStringLiteral(
"m²");
The [2D_AQUIFER] rows: scope, the five positional columns, and the law/closure selections.
Definition mesh2daquifermodel.h:38
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Definition mesh2daquifermodel.cpp:322
QString commit(SWMM_Engine engine)
Definition mesh2daquifermodel.cpp:374
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition mesh2daquifermodel.cpp:190
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition mesh2daquifermodel.cpp:312
static QStringList soilTokens()
Definition mesh2daquifermodel.cpp:61
void setUnitLabels(const QString &lengthLabel, const QString &rateLabel)
Column labels want the project's length/rate words.
Definition mesh2daquifermodel.cpp:429
bool isDirty() const
Definition mesh2daquifermodel.cpp:418
void load(SWMM_Engine engine)
Replace the staged rows with the engine's.
Definition mesh2daquifermodel.cpp:334
static int closureCodeAt(int index)
Definition mesh2daquifermodel.cpp:75
static QStringList closureTokens()
Definition mesh2daquifermodel.cpp:69
static int closureIndexOf(int code)
Definition mesh2daquifermodel.cpp:85
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition mesh2daquifermodel.cpp:95
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition mesh2daquifermodel.cpp:100
int appendRow()
Append a row seeded with the defaults the parser uses.
Definition mesh2daquifermodel.cpp:420
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition mesh2daquifermodel.cpp:290
QVariant data(const QModelIndex &index, int role) const override
Definition mesh2daquifermodel.cpp:105
Column
Definition mesh2daquifermodel.h:41
@ ColAlpha
Definition mesh2daquifermodel.h:48
@ ColCount
Definition mesh2daquifermodel.h:53
@ ColScope
"*", "TAG <t>" or "CELL <n>"
Definition mesh2daquifermodel.h:42
@ ColClosure
Definition mesh2daquifermodel.h:50
@ ColTarget
the tag name or the 1-based cell index
Definition mesh2daquifermodel.h:43
@ ColThetaR
Definition mesh2daquifermodel.h:47
@ ColKs
Definition mesh2daquifermodel.h:44
@ ColZs
Definition mesh2daquifermodel.h:45
@ ColThetaS
Definition mesh2daquifermodel.h:46
@ ColHg0
Definition mesh2daquifermodel.h:51
@ ColCLoss
Definition mesh2daquifermodel.h:52
@ ColSoil
Definition mesh2daquifermodel.h:49
The [2D_AQUIFER_NODE] beds: which 1D node exchanges with which cell, through what conductance.
Definition mesh2daquifermodel.h:125
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Definition mesh2daquifermodel.cpp:568
void setUnitLabels(const QString &lengthLabel, const QString &rateLabel, const QString &areaLabel)
Definition mesh2daquifermodel.cpp:639
int appendRow(const QString &node, int cell)
Definition mesh2daquifermodel.cpp:627
QString commit(SWMM_Engine engine)
Definition mesh2daquifermodel.cpp:602
Column
Definition mesh2daquifermodel.h:128
@ ColCount
Definition mesh2daquifermodel.h:128
@ ColKc
Definition mesh2daquifermodel.h:128
@ ColNode
Definition mesh2daquifermodel.h:128
@ ColArea
Definition mesh2daquifermodel.h:128
@ ColCell
Definition mesh2daquifermodel.h:128
@ ColDc
Definition mesh2daquifermodel.h:128
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition mesh2daquifermodel.cpp:545
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition mesh2daquifermodel.cpp:452
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition mesh2daquifermodel.cpp:562
QVariant data(const QModelIndex &index, int role) const override
Definition mesh2daquifermodel.cpp:462
void load(SWMM_Engine engine)
Definition mesh2daquifermodel.cpp:580
bool isDirty() const
Definition mesh2daquifermodel.cpp:625
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition mesh2daquifermodel.cpp:499
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition mesh2daquifermodel.cpp:457
int code
Definition heatconfigdialog.cpp:40
QString lengthLabel
Definition inletdrawingview.cpp:80
SWMM_FilePathRole role
Definition ioportabilitynormalizer.cpp:22
std::vector< int > cell
Definition mesh2dresultsexport.cpp:609
std::vector< double > area
model units²
Definition mesh2dresultsexport.cpp:104
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
QString tag
r.tag or inherited from a dropped RegionMarker.
Definition meshgenerator.cpp:167
Definition openswmmvislayer.h:43
void * SWMM_Engine
Definition objectdefaultsapplier.h:19
QVector< int > parent
union-find
Definition pslgminsize.cpp:176