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.