Simplify code and set default to 10 for old connections

This commit is contained in:
Alessandro Pasotti 2024-04-19 09:56:13 +02:00
parent 022706179f
commit 751cb4f5d9
6 changed files with 25 additions and 32 deletions

View File

@ -74,7 +74,7 @@ const QgsSettingsEntryBool *QgsOwsConnection::settingsInvertAxisOrientation = ne
const QgsSettingsEntryString *QgsOwsConnection::settingsUsername = new QgsSettingsEntryString( QStringLiteral( "username" ), sTreeOwsConnections ) ; const QgsSettingsEntryString *QgsOwsConnection::settingsUsername = new QgsSettingsEntryString( QStringLiteral( "username" ), sTreeOwsConnections ) ;
const QgsSettingsEntryString *QgsOwsConnection::settingsPassword = new QgsSettingsEntryString( QStringLiteral( "password" ), sTreeOwsConnections ) ; const QgsSettingsEntryString *QgsOwsConnection::settingsPassword = new QgsSettingsEntryString( QStringLiteral( "password" ), sTreeOwsConnections ) ;
const QgsSettingsEntryString *QgsOwsConnection::settingsAuthCfg = new QgsSettingsEntryString( QStringLiteral( "authcfg" ), sTreeOwsConnections ) ; const QgsSettingsEntryString *QgsOwsConnection::settingsAuthCfg = new QgsSettingsEntryString( QStringLiteral( "authcfg" ), sTreeOwsConnections ) ;
const QgsSettingsEntryInteger *QgsOwsConnection::settingsDefaultFeatureCount = new QgsSettingsEntryInteger( QStringLiteral( "default-feature-count" ), sTreeOwsConnections, 10 ); const QgsSettingsEntryInteger *QgsOwsConnection::settingsFeatureCount = new QgsSettingsEntryInteger( QStringLiteral( "feature-count" ), sTreeOwsConnections, 10 );
QgsOwsConnection::QgsOwsConnection( const QString &service, const QString &connName ) QgsOwsConnection::QgsOwsConnection( const QString &service, const QString &connName )
: mConnName( connName ) : mConnName( connName )
@ -213,9 +213,9 @@ QgsDataSourceUri &QgsOwsConnection::addWmsWcsConnectionSettings( QgsDataSourceUr
{ {
uri.setParam( QStringLiteral( "tilePixelRatio" ), QString::number( static_cast<int>( settingsTilePixelRatio->value( {service.toLower(), connName} ) ) ) ); uri.setParam( QStringLiteral( "tilePixelRatio" ), QString::number( static_cast<int>( settingsTilePixelRatio->value( {service.toLower(), connName} ) ) ) );
} }
if ( settingsDefaultFeatureCount->exists( {service.toLower(), connName} ) ) if ( settingsFeatureCount->exists( {service.toLower(), connName} ) )
{ {
uri.setParam( QStringLiteral( "defaultFeatureCount" ), QString::number( settingsDefaultFeatureCount->value( {service.toLower(), connName} ) ) ); uri.setParam( QStringLiteral( "featureCount" ), QString::number( settingsFeatureCount->value( {service.toLower(), connName} ) ) );
} }
return uri; return uri;

View File

@ -115,7 +115,7 @@ class CORE_EXPORT QgsOwsConnection : public QObject
static const QgsSettingsEntryString *settingsUsername; static const QgsSettingsEntryString *settingsUsername;
static const QgsSettingsEntryString *settingsPassword; static const QgsSettingsEntryString *settingsPassword;
static const QgsSettingsEntryString *settingsAuthCfg; static const QgsSettingsEntryString *settingsAuthCfg;
static const QgsSettingsEntryInteger *settingsDefaultFeatureCount; static const QgsSettingsEntryInteger *settingsFeatureCount;
#endif #endif

View File

@ -141,10 +141,10 @@ QgsNewHttpConnection::QgsNewHttpConnection( QWidget *parent, ConnectionTypes typ
cbxIgnoreGetFeatureInfoURI->setVisible( false ); cbxIgnoreGetFeatureInfoURI->setVisible( false );
mGroupBox->layout()->removeWidget( cbxIgnoreGetFeatureInfoURI ); mGroupBox->layout()->removeWidget( cbxIgnoreGetFeatureInfoURI );
sbDefaultFeatureCount->setVisible( false ); sbFeatureCount->setVisible( false );
mGroupBox->layout()->removeWidget( sbDefaultFeatureCount ); mGroupBox->layout()->removeWidget( sbFeatureCount );
lblDefaultFeatureCount->setVisible( false ); lblFeatureCount->setVisible( false );
mGroupBox->layout()->removeWidget( lblDefaultFeatureCount ); mGroupBox->layout()->removeWidget( lblFeatureCount );
cmbDpiMode->setVisible( false ); cmbDpiMode->setVisible( false );
mGroupBox->layout()->removeWidget( cmbDpiMode ); mGroupBox->layout()->removeWidget( cmbDpiMode );
@ -325,7 +325,7 @@ void QgsNewHttpConnection::updateServiceSpecificSettings()
Qgis::TilePixelRatio tilePixelRatio = QgsOwsConnection::settingsTilePixelRatio->value( detailsParameters ); Qgis::TilePixelRatio tilePixelRatio = QgsOwsConnection::settingsTilePixelRatio->value( detailsParameters );
cmbTilePixelRatio->setCurrentIndex( cmbTilePixelRatio->findData( static_cast<int>( tilePixelRatio ) ) ); cmbTilePixelRatio->setCurrentIndex( cmbTilePixelRatio->findData( static_cast<int>( tilePixelRatio ) ) );
sbDefaultFeatureCount->setValue( QgsOwsConnection::settingsDefaultFeatureCount->value( detailsParameters ) ); sbFeatureCount->setValue( QgsOwsConnection::settingsFeatureCount->value( detailsParameters ) );
const QString version = QgsOwsConnection::settingsVersion->value( detailsParameters ); const QString version = QgsOwsConnection::settingsVersion->value( detailsParameters );
int versionIdx = WFS_VERSION_MAX; // AUTO int versionIdx = WFS_VERSION_MAX; // AUTO
@ -433,7 +433,7 @@ void QgsNewHttpConnection::accept()
if ( mTypes & ConnectionWms ) if ( mTypes & ConnectionWms )
{ {
QgsOwsConnection::settingsIgnoreGetFeatureInfoURI->setValue( cbxIgnoreGetFeatureInfoURI->isChecked(), detailsParameters ); QgsOwsConnection::settingsIgnoreGetFeatureInfoURI->setValue( cbxIgnoreGetFeatureInfoURI->isChecked(), detailsParameters );
QgsOwsConnection::settingsDefaultFeatureCount->setValue( sbDefaultFeatureCount->value(), detailsParameters ); QgsOwsConnection::settingsFeatureCount->setValue( sbFeatureCount->value(), detailsParameters );
} }
if ( mTypes & ConnectionWfs ) if ( mTypes & ConnectionWfs )
{ {

View File

@ -463,18 +463,11 @@ QString QgsWMSItemBase::createUri( bool withStyle )
} }
mDataSourceUri.setParam( QStringLiteral( "crs" ), crs ); mDataSourceUri.setParam( QStringLiteral( "crs" ), crs );
// Set featureCount if the connection has a valid default value // Set default featureCount to 10, old connections might miss this
if ( mDataSourceUri.hasParam( QStringLiteral( "defaultFeatureCount" ) ) ) // setting.
if ( ! mDataSourceUri.hasParam( QStringLiteral( "featureCount" ) ) )
{ {
bool ok; mDataSourceUri.setParam( QStringLiteral( "featureCount" ), QStringLiteral( "10" ) );
mDataSourceUri.param( QStringLiteral( "defaultFeatureCount" ) ).toInt( &ok );
if ( ok )
{
// Used by the provider
mDataSourceUri.setParam( QStringLiteral( "featureCount" ), mDataSourceUri.param( QStringLiteral( "defaultFeatureCount" ) ) );
}
// Not used by the provider: remove it
mDataSourceUri.removeParam( QStringLiteral( "defaultFeatureCount" ) );
} }
//uri = rasterLayerPath + "|layers=" + layers.join( "," ) + "|styles=" + styles.join( "," ) + "|format=" + format + "|crs=" + crs; //uri = rasterLayerPath + "|layers=" + layers.join( "," ) + "|styles=" + styles.join( "," ) + "|format=" + format + "|crs=" + crs;

View File

@ -469,16 +469,16 @@ void QgsWMSSourceSelect::btnConnect_clicked()
QgsWMSConnection connection( cmbConnections->currentText() ); QgsWMSConnection connection( cmbConnections->currentText() );
mUri = connection.uri(); mUri = connection.uri();
bool defaultFeatureCountSet { }; bool featureCountSet { };
if ( connection.uri().hasParam( QStringLiteral( "defaultFeatureCount" ) ) && !connection.uri().param( QStringLiteral( "defaultFeatureCount" ) ).isEmpty() ) if ( connection.uri().hasParam( QStringLiteral( "featureCount" ) ) )
{ {
connection.uri().param( QStringLiteral( "defaultFeatureCount" ) ).toInt( &defaultFeatureCountSet ); connection.uri().param( QStringLiteral( "featureCount" ) ).toInt( &featureCountSet );
if ( defaultFeatureCountSet ) if ( featureCountSet )
mFeatureCount->setText( connection.uri().param( QStringLiteral( "defaultFeatureCount" ) ) ); mFeatureCount->setText( connection.uri().param( QStringLiteral( "featureCount" ) ) );
} }
// Original default for old connections with no default feature count // Original default for old connections with no default feature count set
if ( ! defaultFeatureCountSet ) if ( ! featureCountSet )
{ {
mFeatureCount->setText( QStringLiteral( "10" ) ); mFeatureCount->setText( QStringLiteral( "10" ) );
} }

View File

@ -158,9 +158,9 @@
<widget class="QComboBox" name="cmbTilePixelRatio"/> <widget class="QComboBox" name="cmbTilePixelRatio"/>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="lblDefaultFeatureCount"> <widget class="QLabel" name="lblFeatureCount">
<property name="text"> <property name="text">
<string>Default maximum number of GetFeatureInfo results</string> <string>Maximum number of GetFeatureInfo results</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -216,7 +216,7 @@
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QSpinBox" name="sbDefaultFeatureCount"> <widget class="QSpinBox" name="sbFeatureCount">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Specify a default value for FEATURE_COUNT when a new layer is created from this connection. &lt;/p&gt;&lt;p&gt;FEATURE_COUNT defines the maximum number of results returned by a GetFeatureInfo request, if not specified the server default value (usually 1) will be used.&lt;/p&gt;&lt;p&gt;Set to 0 to use server default: no FEATURE_COUNT parameter will be added to the request.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Specify a default value for FEATURE_COUNT when a new layer is created from this connection. &lt;/p&gt;&lt;p&gt;FEATURE_COUNT defines the maximum number of results returned by a GetFeatureInfo request, if not specified the server default value (usually 1) will be used.&lt;/p&gt;&lt;p&gt;Set to 0 to use server default: no FEATURE_COUNT parameter will be added to the request.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
@ -388,7 +388,7 @@
<tabstop>cbxWfsUseGml2EncodingForTransactions</tabstop> <tabstop>cbxWfsUseGml2EncodingForTransactions</tabstop>
<tabstop>cmbDpiMode</tabstop> <tabstop>cmbDpiMode</tabstop>
<tabstop>cmbTilePixelRatio</tabstop> <tabstop>cmbTilePixelRatio</tabstop>
<tabstop>sbDefaultFeatureCount</tabstop> <tabstop>sbFeatureCount</tabstop>
<tabstop>cbxIgnoreGetMapURI</tabstop> <tabstop>cbxIgnoreGetMapURI</tabstop>
<tabstop>cbxIgnoreGetFeatureInfoURI</tabstop> <tabstop>cbxIgnoreGetFeatureInfoURI</tabstop>
<tabstop>cbxWmsIgnoreReportedLayerExtents</tabstop> <tabstop>cbxWmsIgnoreReportedLayerExtents</tabstop>