16#ifndef QGSFIELDMAPPINGWIDGET_H
17#define QGSFIELDMAPPINGWIDGET_H
20#include <QAbstractTableModel>
21#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 >()
66 void setDestinationEditable(
bool editable );
69 bool destinationEditable()
const;
75 QList<QgsFieldMappingModel::Field> mapping()
const;
83 QMap<QString, QgsProperty> fieldPropertyMap()
const;
90 void setFieldPropertyMap(
const QMap<QString, QgsProperty> &map );
93 QItemSelectionModel *selectionModel();
96 void setSourceFields(
const QgsFields &sourceFields );
120 void setDestinationFields(
const QgsFields &destinationFields,
const QMap<QString, QString> &expressions = QMap<QString, QString>() );
131 void setNativeTypes(
const QList< QgsVectorDataProvider::NativeType > &nativeTypes );
136 void scrollTo(
const QModelIndex &index )
const;
154 void appendField(
const QgsField &field,
const QString &expression = QString() );
157 bool removeSelectedFields();
160 bool moveSelectedFieldsUp();
163 bool moveSelectedFieldsDown();
170 void invertSelection();
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.
The QgsFieldMappingModel 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 data sets.