16 #ifndef QGSNEWVECTORTABLEDIALOG_H
17 #define QGSNEWVECTORTABLEDIALOG_H
19 #include <QStyledItemDelegate>
29 #include "ui_qgsnewvectortabledialogbase.h"
31 class QgsNewVectorTableFieldModel;
61 void setSchemaName(
const QString &name );
66 void setTableName(
const QString &name );
86 QString tableName()
const;
91 QString schemaName()
const;
96 QString geometryColumnName()
const;
111 void setFields(
const QgsFields &fields );
117 bool createSpatialIndex();
122 QStringList validationErrors()
const;
127 QgsNewVectorTableFieldModel *mFieldModel =
nullptr;
128 int mCurrentRow = -1;
130 QStringList mTableNames;
131 QStringList mValidationErrors;
133 void updateButtons();
134 void selectRow(
int row );
139 void showEvent( QShowEvent *event )
override;
147 class QgsNewVectorTableDialogFieldsDelegate:
public QStyledItemDelegate
151 QgsNewVectorTableDialogFieldsDelegate(
const QList< QgsVectorDataProvider::NativeType> &typeList, QObject *parent =
nullptr );
154 QWidget *createEditor( QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
155 void setEditorData( QWidget *editor,
const QModelIndex &index )
const override;
156 void setModelData( QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index )
const override;
160 void onFieldTypeChanged(
int index );
164 const QList< QgsVectorDataProvider::NativeType> mTypeList;
184 QgsNewVectorTableFieldModel(
const QList< QgsVectorDataProvider::NativeType> &nativeTypes, QObject *parent =
nullptr );
187 int columnCount(
const QModelIndex & )
const override;
188 QVariant
data(
const QModelIndex &index,
int role )
const override;
189 bool setData(
const QModelIndex &index,
const QVariant &value,
int role )
override;
190 QVariant headerData(
int section, Qt::Orientation orientation,
int role )
const override;
191 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
193 QList<QgsVectorDataProvider::NativeType> nativeTypes()
const;
199 const QList< QgsVectorDataProvider::NativeType> mNativeTypes;
200 QString typeDesc(
const QString &
typeName )
const;
201 QVariant::Type type(
const QString &
typeName )
const;
210 #endif // QGSNEWVECTORTABLEDIALOG_H