Skip to content

Commit c0b4d9b

Browse files
committed
Allow maximum number of entries to show in relation reference widget
to be configurable via an advanced setting configuration option In some circumstances 100 is not enough (cherry picked from commit a97ce69)
1 parent ae21d07 commit c0b4d9b

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

‎resources/qgis_global_settings.ini‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,9 @@ helpSearchPath=https://docs.qgis.org/$qgis_short_version/$qgis_locale/docs/user_
7777
[providers]
7878
# Default timeout for PostgreSQL servers (seconds)
7979
PostgreSQL\default_timeout=30
80+
81+
[gui]
82+
# Maximum number of entries to show in Relation Reference widgets. Too large a number here can
83+
# cause performance issues, as the records must all be loaded from the related table on display.
84+
maxEntriesRelationWidget=100
85+

‎src/core/qgsfeaturefiltermodel.cpp‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include "qgsvectorlayer.h"
2020
#include "qgsconditionalstyle.h"
21+
#include "qgssettings.h"
2122

2223
QgsFeatureFilterModel::QgsFeatureFilterModel( QObject *parent )
2324
: QAbstractItemModel( parent )
@@ -357,7 +358,7 @@ void QgsFeatureFilterModel::scheduledReload()
357358
request.setSubsetOfAttributes( attributes, mSourceLayer->fields() );
358359
request.setFlags( QgsFeatureRequest::NoGeometry );
359360

360-
request.setLimit( 100 );
361+
request.setLimit( QgsSettings().value( QStringLiteral( "maxEntriesRelationWidget" ), 100, QgsSettings::Gui ).toInt() );
361362

362363
mGatherer = new QgsFieldExpressionValuesGatherer( mSourceLayer, mDisplayExpression, mIdentifierField, request );
363364
mGatherer->setData( mShouldReloadCurrentFeature );

0 commit comments

Comments
 (0)