From ff336ade18f4d6b307e4ed0e98fee77ee11a157c Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Sun, 18 Oct 2020 15:04:55 +1000 Subject: [PATCH] [processing] Fix Import Geotagged photos algorithm incorrectly assigns form widgets when saving the results to GPKG or other formats which automatically insert new fields into the result layer Also tweak widget behavior for newer resource widget functionality --- src/analysis/processing/qgsalgorithmimportphotos.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/analysis/processing/qgsalgorithmimportphotos.cpp b/src/analysis/processing/qgsalgorithmimportphotos.cpp index bad7298436f1..d291bc80148a 100644 --- a/src/analysis/processing/qgsalgorithmimportphotos.cpp +++ b/src/analysis/processing/qgsalgorithmimportphotos.cpp @@ -236,13 +236,17 @@ class SetEditorWidgetForPhotoAttributePostProcessor : public QgsProcessingLayerP // photo field shows picture viewer config.insert( QStringLiteral( "DocumentViewer" ), 1 ); config.insert( QStringLiteral( "FileWidget" ), true ); - vl->setEditorWidgetSetup( 0, QgsEditorWidgetSetup( QStringLiteral( "ExternalResource" ), config ) ); + config.insert( QStringLiteral( "UseLink" ), true ); + config.insert( QStringLiteral( "FullUrl" ), true ); + vl->setEditorWidgetSetup( vl->fields().lookupField( QStringLiteral( "photo" ) ), QgsEditorWidgetSetup( QStringLiteral( "ExternalResource" ), config ) ); config.clear(); // path field is a directory link config.insert( QStringLiteral( "FileWidgetButton" ), true ); config.insert( QStringLiteral( "StorageMode" ), 1 ); - vl->setEditorWidgetSetup( 2, QgsEditorWidgetSetup( QStringLiteral( "ExternalResource" ), config ) ); + config.insert( QStringLiteral( "UseLink" ), true ); + config.insert( QStringLiteral( "FullUrl" ), true ); + vl->setEditorWidgetSetup( vl->fields().lookupField( QStringLiteral( "directory" ) ), QgsEditorWidgetSetup( QStringLiteral( "ExternalResource" ), config ) ); } } };