SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
processcomponentsmodel.h
Go to the documentation of this file.
1
20#ifndef PROCESSCOMPONENTSMODEL_H
21#define PROCESSCOMPONENTSMODEL_H
22
23#include <QAbstractTableModel>
24#include <QList>
25#include <QString>
26#include <QStyledItemDelegate>
27
28#include <openswmm/engine/openswmm_engine.h>
29
30class ProcessComponentsModel : public QAbstractTableModel
31{
32 Q_OBJECT
33public:
34 enum Column { ColId = 0, ColConfig = 1, ColStatus = 2, ColCount };
35
36 struct KnownId {
37 QString id;
38 QString description;
39 bool implemented = false;
40 };
41
42 explicit ProcessComponentsModel(QObject *parent = nullptr);
43
45 static QList<KnownId> knownIds();
46
47 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
48 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
49 QVariant data(const QModelIndex &index, int role) const override;
50 bool setData(const QModelIndex &index, const QVariant &value,
51 int role = Qt::EditRole) override;
52 QVariant headerData(int section, Qt::Orientation orientation,
53 int role = Qt::DisplayRole) const override;
54 Qt::ItemFlags flags(const QModelIndex &index) const override;
55 bool removeRows(int row, int count,
56 const QModelIndex &parent = QModelIndex()) override;
57
60 void load(SWMM_Engine engine, const QString &modelDir);
62 int commit(SWMM_Engine engine);
64 bool isDirty() const;
65
66 int appendRow(const QString &id, const QString &config);
67 QString idAt(int row) const;
68 QString configAt(int row) const;
69
70private:
71 struct Row {
72 QString id;
73 QString config;
74 QString resolved;
75 };
76 QString statusFor(const Row &r) const;
77
78 QList<Row> m_rows;
79 QList<Row> m_loaded;
80 QString m_modelDir;
81};
82
84class ProcessComponentIdDelegate : public QStyledItemDelegate
85{
86 Q_OBJECT
87public:
88 explicit ProcessComponentIdDelegate(QObject *parent = nullptr);
89 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
90 const QModelIndex &index) const override;
91 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
92 void setModelData(QWidget *editor, QAbstractItemModel *model,
93 const QModelIndex &index) const override;
94};
95
96#endif // PROCESSCOMPONENTSMODEL_H
Combo editor over the built-in catalogue, editable for free-form ids.
Definition processcomponentsmodel.h:85
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Definition processcomponentsmodel.cpp:288
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Definition processcomponentsmodel.cpp:277
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition processcomponentsmodel.cpp:260
Definition processcomponentsmodel.h:31
int commit(SWMM_Engine engine)
Apply staged edits to the engine. Returns the number of engine writes.
Definition processcomponentsmodel.cpp:195
void load(SWMM_Engine engine, const QString &modelDir)
Definition processcomponentsmodel.cpp:163
QString configAt(int row) const
Definition processcomponentsmodel.cpp:246
QString idAt(int row) const
Definition processcomponentsmodel.cpp:241
int appendRow(const QString &id, const QString &config)
Definition processcomponentsmodel.cpp:229
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition processcomponentsmodel.cpp:116
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition processcomponentsmodel.cpp:133
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Definition processcomponentsmodel.cpp:153
QVariant data(const QModelIndex &index, int role) const override
Definition processcomponentsmodel.cpp:85
static QList< KnownId > knownIds()
The engine's built-in catalogue (static for the process).
Definition processcomponentsmodel.cpp:26
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition processcomponentsmodel.cpp:145
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition processcomponentsmodel.cpp:49
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition processcomponentsmodel.cpp:54
Column
Definition processcomponentsmodel.h:34
@ ColCount
Definition processcomponentsmodel.h:34
@ ColConfig
Definition processcomponentsmodel.h:34
@ ColId
Definition processcomponentsmodel.h:34
@ ColStatus
Definition processcomponentsmodel.h:34
bool isDirty() const
True when the rows differ from what load() read.
Definition processcomponentsmodel.cpp:186
SWMM_FilePathRole role
Definition ioportabilitynormalizer.cpp:22
hid_t id
Definition mesh2dh5reader.cpp:29
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
int count
Definition numberformat.cpp:101
void * SWMM_Engine
Definition objectdefaultsapplier.h:19
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Definition processcomponentsmodel.h:36
QString description
Definition processcomponentsmodel.h:38
QString id
Definition processcomponentsmodel.h:37
bool implemented
Definition processcomponentsmodel.h:39