Skip to content

Commit

Permalink
tweaks on wmst static temporal settings logic and ui
Browse files Browse the repository at this point in the history
  • Loading branch information
Samweli committed Apr 28, 2020
1 parent a094300 commit 1ab5814
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
18 changes: 10 additions & 8 deletions src/gui/raster/qgsrasterlayerproperties.cpp
Expand Up @@ -1244,15 +1244,15 @@ void QgsRasterLayerProperties::apply()

void QgsRasterLayerProperties::updateSourceStaticTime()
{
QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata(
mRasterLayer->providerType() );
QVariantMap uri = metadata->decodeUri( mRasterLayer->dataProvider()->dataSourceUri() );
uri["allowTemporalUpdates"] = mWmstGroup->isChecked() ? QStringLiteral( "true" ) : QStringLiteral( "false" );

if ( mWmstGroup->isEnabled() &&
mRasterLayer->dataProvider() &&
mRasterLayer->dataProvider()->temporalCapabilities()->hasTemporalCapabilities() )
{
QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata(
mRasterLayer->providerType() );

QVariantMap uri = metadata->decodeUri( mRasterLayer->dataProvider()->dataSourceUri() );

if ( mStaticTemporalRange->isChecked() )
{
QString time = mStartStaticDateTimeEdit->dateTime().toString( Qt::ISODateWithMs ) + '/' +
Expand Down Expand Up @@ -1290,12 +1290,11 @@ void QgsRasterLayerProperties::updateSourceStaticTime()
const QLatin1String enableTime = mDisableTime->isChecked() ? QLatin1String( "no" ) : QLatin1String( "yes" );

uri["enableTime"] = enableTime;

mRasterLayer->setDataSource( metadata->encodeUri( uri ), mRasterLayer->name(), mRasterLayer->providerType(), QgsDataProvider::ProviderOptions() );

mRasterLayer->temporalProperties()->setIntervalHandlingMethod( static_cast< QgsRasterDataProviderTemporalCapabilities::IntervalHandlingMethod >(
mFetchModeComboBox->currentData().toInt() ) );
}
mRasterLayer->setDataSource( metadata->encodeUri( uri ), mRasterLayer->name(), mRasterLayer->providerType(), QgsDataProvider::ProviderOptions() );

}

void QgsRasterLayerProperties::setSourceStaticTimeState()
Expand Down Expand Up @@ -1373,6 +1372,9 @@ void QgsRasterLayerProperties::setSourceStaticTimeState()
mProjectTemporalRange->setChecked( !time.isEmpty() );

mDisableTime->setChecked( enableTime == QLatin1String( "no" ) );

mWmstGroup->setChecked( uri.contains( QStringLiteral( "allowTemporalUpdates" ) ) &&
uri.value( QStringLiteral( "allowTemporalUpdates" ) ).toString() == QStringLiteral( "true" ) );
}
}

Expand Down
1 change: 1 addition & 0 deletions src/providers/wms/qgswmsdataitems.cpp
Expand Up @@ -301,6 +301,7 @@ QString QgsWMSItemBase::createUri()
// WMS-T defaults settings
if ( mDataSourceUri.param( QLatin1String( "type" ) ) == QLatin1String( "wmst" ) )
{
mDataSourceUri.setParam( QLatin1String( "allowTemporalUpdates" ), QLatin1String( "false" ) );
mDataSourceUri.setParam( QLatin1String( "temporalSource" ), QLatin1String( "provider" ) );
mDataSourceUri.setParam( QLatin1String( "enableTime" ), QLatin1String( "yes" ) );
}
Expand Down
4 changes: 4 additions & 0 deletions src/providers/wms/qgswmsprovider.cpp
Expand Up @@ -1091,6 +1091,10 @@ void QgsWmsProvider::addWmstParameters( QUrlQuery &query )

QVariantMap uri = metadata->decodeUri( dataSourceUri() );

// Skip fetching if updates are not allowed
if ( uri.value( QStringLiteral( "allowTemporalUpdates" ), QStringLiteral( "true" ) ).toString() != QStringLiteral( "true" ) )
return;

if ( range.isInfinite() )
{
if ( uri.contains( QStringLiteral( "time" ) ) &&
Expand Down

0 comments on commit 1ab5814

Please sign in to comment.