16#ifndef QGSFIELDMAPPINGWIDGET_H
17#define QGSFIELDMAPPINGWIDGET_H
20#include <QAbstractTableModel>
21#include <QStyledItemDelegate>
29class QItemSelectionModel;
31class QgsFieldMappingTypeDelegate;
57 QWidget *parent =
nullptr,
60 const QMap<QString, QString> &expressions = QMap<QString, QString>(),
61 const QList< QgsVectorDataProvider::NativeType > &nativeTypes = QList< QgsVectorDataProvider::NativeType >()
65 void setDestinationEditable(
bool editable );
68 bool destinationEditable()
const;
74 QList<QgsFieldMappingModel::Field> mapping()
const;
82 QMap<QString, QgsProperty> fieldPropertyMap()
const;
89 void setFieldPropertyMap(
const QMap<QString, QgsProperty> &map );
92 QItemSelectionModel *selectionModel();
95 void setSourceFields(
const QgsFields &sourceFields );
119 void setDestinationFields(
const QgsFields &destinationFields,
const QMap<QString, QString> &expressions = QMap<QString, QString>() );
130 void setNativeTypes(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes );
135 void scrollTo(
const QModelIndex &index )
const;
153 void appendField(
const QgsField &field,
const QString &expression = QString() );
156 bool removeSelectedFields();
159 bool moveSelectedFieldsUp();
162 bool moveSelectedFieldsDown();
169 void invertSelection();
172 QTableView *mTableView =
nullptr;
175 QgsFieldMappingTypeDelegate *mTypeDelegate =
nullptr;
177 QPointer<QgsVectorLayer> mSourceLayer;
178 void updateColumns();
180 std::list<int> selectedRows();
189class QgsFieldMappingExpressionDelegate :
public QStyledItemDelegate
194 QgsFieldMappingExpressionDelegate( QObject *parent =
nullptr );
197 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
198 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
199 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
202class QgsFieldMappingTypeDelegate :
public QStyledItemDelegate
207 QgsFieldMappingTypeDelegate(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes, QObject *parent =
nullptr );
210 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
211 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
212 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
223 void setNativeTypes(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes );
226 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.