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
rulelistmodel.h
Go to the documentation of this file.
1
35#ifndef OPENSWMMVIS_UI_MODELS_RULELISTMODEL_H
36#define OPENSWMMVIS_UI_MODELS_RULELISTMODEL_H
37
38#include <QAbstractListModel>
39#include <QPointer>
40
41class SWMMModelLayer;
42
43namespace openswmmvis::controls {
44class ControlRuleRegistry;
45class ControlRuleProvider;
46}
47
48namespace openswmmvis::ui {
49
50class RuleListModel : public QAbstractListModel
51{
52 Q_OBJECT
53
54public:
58 explicit RuleListModel(SWMMModelLayer *layer, QObject *parent = nullptr);
59 ~RuleListModel() override;
60
61 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
62 QVariant data (const QModelIndex &index,
63 int role = Qt::DisplayRole) const override;
64 bool setData (const QModelIndex &index, const QVariant &value,
65 int role = Qt::EditRole) override;
66 bool removeRows(int row, int count,
67 const QModelIndex &parent = QModelIndex()) override;
68 Qt::ItemFlags flags(const QModelIndex &index) const override;
69 QVariant headerData(int section, Qt::Orientation orientation,
70 int role = Qt::DisplayRole) const override;
71
75 int indexOf(const QString &name) const;
76
79 QString nameAt(int row) const;
80
81private slots:
82 void onProviderAdded_(openswmmvis::controls::ControlRuleProvider *p);
83 void onProviderAboutToBeRemoved_(openswmmvis::controls::ControlRuleProvider *p);
84 void onProviderRenamed_(openswmmvis::controls::ControlRuleProvider *p,
85 const QString &prev, const QString &now);
86 void onProviderValidationChanged_();
87 void onProviderBodyChanged_();
88
89private:
90 void bindRegistry_();
91 int rowOfProvider_(openswmmvis::controls::ControlRuleProvider *p) const;
93
94 QPointer<SWMMModelLayer> m_layer;
95};
96
97} // namespace openswmmvis::ui
98
99#endif // OPENSWMMVIS_UI_MODELS_RULELISTMODEL_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition controlruleprovider.h:45
Definition controlruleregistry.h:38
Definition rulelistmodel.h:51
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition rulelistmodel.cpp:146
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition rulelistmodel.cpp:69
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition rulelistmodel.cpp:152
QString nameAt(int row) const
Read the rule name at a given row, or empty if out of bounds.
Definition rulelistmodel.cpp:170
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Definition rulelistmodel.cpp:135
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition rulelistmodel.cpp:76
int indexOf(const QString &name) const
Look up the row index of a rule by name, or -1 if not present. Used by RulesEditorDialog::openForRule...
Definition rulelistmodel.cpp:159
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition rulelistmodel.cpp:113
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 controlruleprovider.h:34
Definition openswmmvislayer.h:43
int count
Definition numberformat.cpp:101
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474