From 6df2f07fa3e22db23265281a8bf820670695c09b Mon Sep 17 00:00:00 2001 From: VitorVieiraZ Date: Thu, 23 May 2024 17:53:14 -0300 Subject: [PATCH 1/3] fixing override relations editor bug --- app/inpututils.cpp | 4 ++-- app/inpututils.h | 2 +- app/qml/form/MMFormPage.qml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/inpututils.cpp b/app/inpututils.cpp index aad2eacbe..a57dd5d0f 100644 --- a/app/inpututils.cpp +++ b/app/inpututils.cpp @@ -1046,7 +1046,7 @@ const QUrl InputUtils::getThemeIcon( const QString &name ) return QUrl( path ); } -const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVariantMap &config, const QgsField &field, const QgsRelation &relation ) +const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVariantMap &config, const QgsField &field, const QgsRelation &relation, const QString &fieldName ) { QString widgetName = widgetNameIn.toLower(); @@ -1129,7 +1129,7 @@ const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVa } // Mind this hack - fields with `no-gallery-use` won't use gallery, but normal word tags instead - if ( field.name().contains( "nogallery", Qt::CaseInsensitive ) || field.alias().contains( "nogallery", Qt::CaseInsensitive ) ) + if ( fieldName.contains( "nogallery", Qt::CaseInsensitive ) || field.alias().contains( "nogallery", Qt::CaseInsensitive ) ) { useGallery = false; } diff --git a/app/inpututils.h b/app/inpututils.h index bc2c8deb0..4ee1751b8 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -387,7 +387,7 @@ class InputUtils: public QObject * \param config map coming from QGIS describing this field * \param field qgsfield instance of this field */ - Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation() ); + Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation() , const QString &fieldName = QString() ); /** * \copydoc QgsCoordinateFormatter::format() diff --git a/app/qml/form/MMFormPage.qml b/app/qml/form/MMFormPage.qml index 656f255b6..97641a7c0 100644 --- a/app/qml/form/MMFormPage.qml +++ b/app/qml/form/MMFormPage.qml @@ -296,7 +296,7 @@ Page { source: { if ( model.EditorWidget !== undefined ) { - return __inputUtils.getFormEditorType( model.EditorWidget, model.EditorWidgetConfig, model.Field, model.Relation ) + return __inputUtils.getFormEditorType( model.EditorWidget, model.EditorWidgetConfig, model.Field, model.Relation, model.Name ) } return '' From f9f2f3b631b1bc14f805464d8b806f7f912b19c1 Mon Sep 17 00:00:00 2001 From: VitorVieiraZ Date: Thu, 23 May 2024 23:05:44 -0300 Subject: [PATCH 2/3] code layout adjust --- app/inpututils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/inpututils.h b/app/inpututils.h index 4ee1751b8..88ba72db6 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -387,7 +387,7 @@ class InputUtils: public QObject * \param config map coming from QGIS describing this field * \param field qgsfield instance of this field */ - Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation() , const QString &fieldName = QString() ); + Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation(), const QString &fieldName = QString() ); /** * \copydoc QgsCoordinateFormatter::format() From da09cd7f878444afee582f01ebc4472864b7ca36 Mon Sep 17 00:00:00 2001 From: VitorVieiraZ Date: Fri, 24 May 2024 09:16:19 -0300 Subject: [PATCH 3/3] post review code adjustments --- app/inpututils.cpp | 4 ++-- app/inpututils.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/inpututils.cpp b/app/inpututils.cpp index a57dd5d0f..50c23ffa6 100644 --- a/app/inpututils.cpp +++ b/app/inpututils.cpp @@ -1046,7 +1046,7 @@ const QUrl InputUtils::getThemeIcon( const QString &name ) return QUrl( path ); } -const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVariantMap &config, const QgsField &field, const QgsRelation &relation, const QString &fieldName ) +const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVariantMap &config, const QgsField &field, const QgsRelation &relation, const QString &editorTitle ) { QString widgetName = widgetNameIn.toLower(); @@ -1129,7 +1129,7 @@ const QUrl InputUtils::getFormEditorType( const QString &widgetNameIn, const QVa } // Mind this hack - fields with `no-gallery-use` won't use gallery, but normal word tags instead - if ( fieldName.contains( "nogallery", Qt::CaseInsensitive ) || field.alias().contains( "nogallery", Qt::CaseInsensitive ) ) + if ( editorTitle.contains( "nogallery", Qt::CaseInsensitive ) ) { useGallery = false; } diff --git a/app/inpututils.h b/app/inpututils.h index 88ba72db6..2ba463900 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -387,7 +387,7 @@ class InputUtils: public QObject * \param config map coming from QGIS describing this field * \param field qgsfield instance of this field */ - Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation(), const QString &fieldName = QString() ); + Q_INVOKABLE static const QUrl getFormEditorType( const QString &widgetNameIn, const QVariantMap &config = QVariantMap(), const QgsField &field = QgsField(), const QgsRelation &relation = QgsRelation(), const QString &editorTitle = QString() ); /** * \copydoc QgsCoordinateFormatter::format()