16#ifndef QGSFIELDMAPPINGWIDGET_H
17#define QGSFIELDMAPPINGWIDGET_H
23#include <QAbstractTableModel>
25#include <QStyledItemDelegate>
29class QItemSelectionModel;
31class QgsFieldMappingTypeDelegate;
58 QWidget *parent =
nullptr,
61 const QMap<QString, QString> &expressions = QMap<QString, QString>(),
62 const QList< QgsVectorDataProvider::NativeType > &nativeTypes = QList< QgsVectorDataProvider::NativeType >()
75 QList<QgsFieldMappingModel::Field>
mapping()
const;
131 void setNativeTypes(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes );
136 void scrollTo(
const QModelIndex &index )
const;
173 QTableView *mTableView =
nullptr;
176 QgsFieldMappingTypeDelegate *mTypeDelegate =
nullptr;
178 QPointer<QgsVectorLayer> mSourceLayer;
179 void updateColumns();
181 std::list<int> selectedRows();
190class QgsFieldMappingExpressionDelegate :
public QStyledItemDelegate
195 QgsFieldMappingExpressionDelegate( QObject *parent =
nullptr );
198 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
199 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
200 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
203class QgsFieldMappingTypeDelegate :
public QStyledItemDelegate
208 QgsFieldMappingTypeDelegate(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes, QObject *parent =
nullptr );
211 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
212 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
213 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
224 void setNativeTypes(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes );
227 QList< QgsVectorDataProvider::NativeType > mNativeTypes;
Abstract interface for generating an expression context.
Holds mapping information for mapping from one set of QgsFields to another.
Encapsulate a field in an attribute table or data source.
Container of fields for a vector layer.
Represents a vector layer which manages a vector based dataset.