pass QgsAttributeEditorContext from QgisApp

This commit is contained in:
signedav 2020-07-01 11:22:37 +02:00
parent 059f9fadd8
commit a360f53773
3 changed files with 14 additions and 9 deletions

View File

@ -10214,7 +10214,14 @@ void QgisApp::pasteFromClipboard( QgsMapLayer *destinationLayer )
{
newFeatures.clear();
QgsFixAttributeDialog *dialog = new QgsFixAttributeDialog( pasteVectorLayer, invalidFeatures, this );
QgsAttributeEditorContext context( createAttributeEditorContext() );
context.setAllowCustomUi( false );
context.setFormMode( QgsAttributeEditorContext::StandaloneDialog );
context.setVectorLayerTools( mVectorLayerTools );
context.setCadDockWidget( mAdvancedDigitizingDockWidget );
context.setMapCanvas( mMapCanvas );
QgsFixAttributeDialog *dialog = new QgsFixAttributeDialog( pasteVectorLayer, invalidFeatures, this, context );
int feedback = dialog->exec();
switch ( feedback )

View File

@ -20,21 +20,19 @@
#include <QtWidgets/QPushButton>
QgsFixAttributeDialog::QgsFixAttributeDialog( QgsVectorLayer *vl, QgsFeatureList &features, QWidget *parent )
QgsFixAttributeDialog::QgsFixAttributeDialog( QgsVectorLayer *vl, QgsFeatureList &features, QWidget *parent, const QgsAttributeEditorContext &context )
: QDialog( parent )
, mFeatures( features )
{
init( vl );
init( vl, context );
}
void QgsFixAttributeDialog::init( QgsVectorLayer *layer )
void QgsFixAttributeDialog::init( QgsVectorLayer *layer, const QgsAttributeEditorContext &context )
{
QgsAttributeEditorContext context;
setWindowTitle( tr( "%1 - Fix Pasted Features" ).arg( layer->name() ) );
setLayout( new QGridLayout() );
layout()->setMargin( 0 );
context.setFormMode( QgsAttributeEditorContext::StandaloneDialog );
context.setVectorLayerTools( QgisApp::instance()->vectorLayerTools() );
mUnfixedFeatures = mFeatures;
mCurrentFeature = mFeatures.begin();

View File

@ -52,7 +52,7 @@ class APP_EXPORT QgsFixAttributeDialog : public QDialog
/**
* Constructor for QgsFixAttributeDialog
*/
QgsFixAttributeDialog( QgsVectorLayer *vl, QgsFeatureList &features, QWidget *parent SIP_TRANSFERTHIS = nullptr );
QgsFixAttributeDialog( QgsVectorLayer *vl, QgsFeatureList &features, QWidget *parent SIP_TRANSFERTHIS = nullptr, const QgsAttributeEditorContext &context = QgsAttributeEditorContext() );
/**
* Returns fixed features
@ -69,7 +69,7 @@ class APP_EXPORT QgsFixAttributeDialog : public QDialog
void reject() override;
private:
void init( QgsVectorLayer *layer );
void init( QgsVectorLayer *layer, const QgsAttributeEditorContext &context );
QString descriptionText();
QgsFeatureList mFeatures;