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
importmappingmodel.h
Go to the documentation of this file.
1
18#ifndef OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPINGMODEL_H
19#define OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPINGMODEL_H
20
22
23#include <QAbstractTableModel>
24#include <QStringList>
25#include <QStyledItemDelegate>
26
27namespace openswmmvis::import {
28
29class ImportMappingModel : public QAbstractTableModel
30{
31 Q_OBJECT
32
33public:
34 enum Column { TargetCol = 0, SourceCol = 1, DefaultCol = 2, ColCount = 3 };
35
36 explicit ImportMappingModel(QObject *parent = nullptr);
37
41 void reset(TargetKind kind, const QStringList &sourceFields);
42
46 void applyBindings(const QVector<AttributeBinding> &bindings,
47 QStringList *droppedOut = nullptr);
48
52 int autoMatch();
53
54 [[nodiscard]] const ImportMapping &mapping() const { return m_mapping; }
58 [[nodiscard]] ImportMapping &mappingRef() { return m_mapping; }
59
60 [[nodiscard]] QStringList sourceFields() const { return m_sourceFields; }
61 [[nodiscard]] const QVector<TargetAttribute> &attributes() const
62 { return m_attributes; }
63
67 [[nodiscard]] QString validationError() const;
68
69 // QAbstractTableModel ---------------------------------------------
70 [[nodiscard]] int rowCount(const QModelIndex &parent = {}) const override;
71 [[nodiscard]] int columnCount(const QModelIndex &parent = {}) const override;
72 [[nodiscard]] QVariant data(const QModelIndex &idx, int role) const override;
73 [[nodiscard]] QVariant headerData(int section, Qt::Orientation o,
74 int role) const override;
75 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &idx) const override;
76 bool setData(const QModelIndex &idx, const QVariant &value,
77 int role) override;
78
79signals:
82
83private:
84 ImportMapping m_mapping;
85 QVector<TargetAttribute> m_attributes;
86 QStringList m_sourceFields;
87};
88
91class SourceFieldDelegate : public QStyledItemDelegate
92{
93 Q_OBJECT
94
95public:
97 QObject *parent = nullptr);
98
99 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &opt,
100 const QModelIndex &idx) const override;
101 void setEditorData(QWidget *editor, const QModelIndex &idx) const override;
102 void setModelData(QWidget *editor, QAbstractItemModel *model,
103 const QModelIndex &idx) const override;
104
105private:
106 ImportMappingModel *m_model = nullptr;
107};
108
109} // namespace openswmmvis::import
110
111#endif // OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPINGMODEL_H
Definition importmappingmodel.h:30
QStringList sourceFields() const
Definition importmappingmodel.h:60
Qt::ItemFlags flags(const QModelIndex &idx) const override
Definition importmappingmodel.cpp:213
Column
Definition importmappingmodel.h:34
@ SourceCol
Definition importmappingmodel.h:34
@ TargetCol
Definition importmappingmodel.h:34
@ ColCount
Definition importmappingmodel.h:34
@ DefaultCol
Definition importmappingmodel.h:34
QString validationError() const
Definition importmappingmodel.cpp:107
const QVector< TargetAttribute > & attributes() const
Definition importmappingmodel.h:61
ImportMapping & mappingRef()
Definition importmappingmodel.h:58
int autoMatch()
Definition importmappingmodel.cpp:78
QVariant data(const QModelIndex &idx, int role) const override
Definition importmappingmodel.cpp:148
bool setData(const QModelIndex &idx, const QVariant &value, int role) override
Definition importmappingmodel.cpp:221
int columnCount(const QModelIndex &parent={}) const override
Definition importmappingmodel.cpp:143
void reset(TargetKind kind, const QStringList &sourceFields)
Definition importmappingmodel.cpp:23
const ImportMapping & mapping() const
Definition importmappingmodel.h:54
int rowCount(const QModelIndex &parent={}) const override
Definition importmappingmodel.cpp:138
QVariant headerData(int section, Qt::Orientation o, int role) const override
Definition importmappingmodel.cpp:200
void applyBindings(const QVector< AttributeBinding > &bindings, QStringList *droppedOut=nullptr)
Definition importmappingmodel.cpp:55
Definition importmappingmodel.h:92
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &opt, const QModelIndex &idx) const override
Definition importmappingmodel.cpp:261
void setEditorData(QWidget *editor, const QModelIndex &idx) const override
Definition importmappingmodel.cpp:272
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &idx) const override
Definition importmappingmodel.cpp:282
SWMM_FilePathRole role
Definition ioportabilitynormalizer.cpp:22
Definition featurelayerimporter.h:39
TargetKind
Definition importtargetregistry.h:32
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
TokenKind kind
Definition queryparser.cpp:34
Definition importmapping.h:37