change ui

This commit is contained in:
vcloarec 2022-09-06 20:32:37 -04:00 committed by Vincent Cloarec
parent abbcb30e82
commit 1d9495b8a9
7 changed files with 74 additions and 67 deletions

View File

@ -107,14 +107,14 @@ Sets whether the instance is valid
.. versionadded:: 3.22
%End
bool isAutoReloadFromProvider() const;
bool alwaysLoadReferenceTimeFromSource() const;
%Docstring
Returns whether the time proporties are automatically reloaded from provider when project is opened or layer is reloaded
.. versionadded:: 3.28
%End
void setIsAutoReloadFromProvider( bool autoReloadFromProvider );
void setAlwaysLoadReferenceTimeFromSource( bool autoReloadFromProvider );
%Docstring
Sets whether the time proporties are automatically reloaded from provider when project is opened or layer is reloaded

View File

@ -1585,7 +1585,7 @@ bool QgsMeshLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &con
QString errorMsg;
readSymbology( layer_node, errorMsg, context );
if ( !mTemporalProperties->timeExtent().begin().isValid() || mTemporalProperties->isAutoReloadFromProvider() )
if ( !mTemporalProperties->timeExtent().begin().isValid() || mTemporalProperties->alwaysLoadReferenceTimeFromSource() )
temporalProperties()->setDefaultsFromDataProviderTemporalCapabilities( dataProvider()->temporalCapabilities() );
// read static dataset
@ -1662,7 +1662,7 @@ void QgsMeshLayer::reload()
dataProvider()->populateMesh( mNativeMesh.get() );
if ( mTemporalProperties->isAutoReloadFromProvider() )
if ( mTemporalProperties->alwaysLoadReferenceTimeFromSource() )
mTemporalProperties->setDefaultsFromDataProviderTemporalCapabilities( mDataProvider->temporalCapabilities() );
//clear the TriangularMeshes

View File

@ -34,7 +34,7 @@ QDomElement QgsMeshLayerTemporalProperties::writeXml( QDomElement &element, QDom
temporalElement.setAttribute( QStringLiteral( "start-time-extent" ), mTimeExtent.begin().toTimeSpec( Qt::UTC ).toString( Qt::ISODate ) );
temporalElement.setAttribute( QStringLiteral( "end-time-extent" ), mTimeExtent.end().toTimeSpec( Qt::UTC ).toString( Qt::ISODate ) );
temporalElement.setAttribute( QStringLiteral( "matching-method" ), mMatchingMethod );
temporalElement.setAttribute( QStringLiteral( "auto-reload-from-provider" ), mIsAutoReloadFromProvider ? 1 : 0 );
temporalElement.setAttribute( QStringLiteral( "always-load-reference-time-from-source" ), mAlwaysLoadReferenceTimeFromSource ? 1 : 0 );
element.appendChild( temporalElement );
return element;
@ -48,7 +48,7 @@ bool QgsMeshLayerTemporalProperties::readXml( const QDomElement &element, const
const bool active = temporalElement.attribute( QStringLiteral( "temporal-active" ) ).toInt();
setIsActive( active );
mIsAutoReloadFromProvider = temporalElement.attribute( QStringLiteral( "auto-reload-from-provider" ) ).toInt();
mAlwaysLoadReferenceTimeFromSource = temporalElement.attribute( QStringLiteral( "always-load-reference-time-from-source" ) ).toInt();
mReferenceTime = QDateTime::fromString( temporalElement.attribute( QStringLiteral( "reference-time" ) ), Qt::ISODate );
@ -128,12 +128,12 @@ void QgsMeshLayerTemporalProperties::setIsValid( bool isValid )
mIsValid = isValid;
}
bool QgsMeshLayerTemporalProperties::isAutoReloadFromProvider() const
bool QgsMeshLayerTemporalProperties::alwaysLoadReferenceTimeFromSource() const
{
return mIsAutoReloadFromProvider;
return mAlwaysLoadReferenceTimeFromSource;
}
void QgsMeshLayerTemporalProperties::setIsAutoReloadFromProvider( bool autoReloadFromProvider )
void QgsMeshLayerTemporalProperties::setAlwaysLoadReferenceTimeFromSource( bool autoReloadFromProvider )
{
mIsAutoReloadFromProvider = autoReloadFromProvider;
mAlwaysLoadReferenceTimeFromSource = autoReloadFromProvider;
}

View File

@ -121,7 +121,7 @@ class CORE_EXPORT QgsMeshLayerTemporalProperties : public QgsMapLayerTemporalPro
*
* \since QGIS 3.28
*/
bool isAutoReloadFromProvider() const;
bool alwaysLoadReferenceTimeFromSource() const;
/**
* Sets whether the time proporties are automatically reloaded from provider when project is opened or layer is reloaded
@ -130,7 +130,7 @@ class CORE_EXPORT QgsMeshLayerTemporalProperties : public QgsMapLayerTemporalPro
*
* \since QGIS 3.28
*/
void setIsAutoReloadFromProvider( bool autoReloadFromProvider );
void setAlwaysLoadReferenceTimeFromSource( bool autoReloadFromProvider );
private:
QDateTime mReferenceTime;
@ -138,7 +138,7 @@ class CORE_EXPORT QgsMeshLayerTemporalProperties : public QgsMapLayerTemporalPro
QgsMeshDataProviderTemporalCapabilities::MatchingTemporalDatasetMethod mMatchingMethod =
QgsMeshDataProviderTemporalCapabilities::FindClosestDatasetBeforeStartRangeTime;
bool mIsValid = false;
bool mIsAutoReloadFromProvider = false;
bool mAlwaysLoadReferenceTimeFromSource = false;
};
#endif // QGSMESHLAYERTEMPORALPROPERTIES_H

View File

@ -91,6 +91,13 @@ QgsMeshLayerProperties::QgsMeshLayerProperties( QgsMapLayer *lyr, QgsMapCanvas *
connect( mMeshLayer, &QgsMeshLayer::activeScalarDatasetGroupChanged, mStaticDatasetWidget, &QgsMeshStaticDatasetWidget::setScalarDatasetGroup );
connect( mMeshLayer, &QgsMeshLayer::activeVectorDatasetGroupChanged, mStaticDatasetWidget, &QgsMeshStaticDatasetWidget::setVectorDatasetGroup );
connect( mAlwaysTimeFromSourceCheckBox, &QCheckBox::stateChanged, this, [this]
{
mTemporalDateTimeReference->setEnabled( !mAlwaysTimeFromSourceCheckBox->isChecked() );
if ( mAlwaysTimeFromSourceCheckBox->isChecked() )
reloadTemporalProperties();
} );
mComboBoxTemporalDatasetMatchingMethod->addItem( tr( "Find Closest Dataset Before Requested Time" ),
QgsMeshDataProviderTemporalCapabilities::FindClosestDatasetBeforeStartRangeTime );
mComboBoxTemporalDatasetMatchingMethod->addItem( tr( "Find Closest Dataset From Requested Time (After or Before)" ),
@ -236,7 +243,7 @@ void QgsMeshLayerProperties::syncToLayer()
mTemporalProviderTimeUnitComboBox->setCurrentIndex(
mTemporalProviderTimeUnitComboBox->findData( mMeshLayer->dataProvider()->temporalCapabilities()->temporalUnit() ) );
}
mAutoReloadTemporalCheckBox->setChecked( temporalProperties->isAutoReloadFromProvider() );
mAlwaysTimeFromSourceCheckBox->setChecked( temporalProperties->alwaysLoadReferenceTimeFromSource() );
mComboBoxTemporalDatasetMatchingMethod->setCurrentIndex(
mComboBoxTemporalDatasetMatchingMethod->findData( temporalProperties->matchingMethod() ) );
@ -399,7 +406,7 @@ void QgsMeshLayerProperties::apply()
mMeshLayer->setTemporalMatchingMethod( static_cast<QgsMeshDataProviderTemporalCapabilities::MatchingTemporalDatasetMethod>(
mComboBoxTemporalDatasetMatchingMethod->currentData().toInt() ) );
static_cast<QgsMeshLayerTemporalProperties *>(
mMeshLayer->temporalProperties() )->setIsAutoReloadFromProvider( mAutoReloadTemporalCheckBox->isChecked() );
mMeshLayer->temporalProperties() )->setAlwaysLoadReferenceTimeFromSource( mAlwaysTimeFromSourceCheckBox->isChecked() );
mMetadataWidget->acceptMetadata();

View File

@ -615,41 +615,34 @@
<string>Layer Temporal Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="2">
<widget class="QPushButton" name="mTemporalReloadButton">
<property name="maximumSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="toolTip">
<string>Reload from provider</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../images/images.qrc">
<normaloff>:/images/themes/default/mActionRefresh.svg</normaloff>:/images/themes/default/mActionRefresh.svg</iconset>
</property>
</widget>
</item>
<item row="1" column="0">
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Start time</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Dataset matching method</string>
<item row="0" column="1">
<widget class="QDateTimeEdit" name="mTemporalDateTimeReference">
<property name="toolTip">
<string>Reference time used to render mesh dataset when using temporal range or temporal animation</string>
</property>
<property name="calendarPopup">
<bool>true</bool>
</property>
<property name="timeSpec">
<enum>Qt::UTC</enum>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<item row="6" column="1" colspan="2">
<widget class="QComboBox" name="mComboBoxTemporalDatasetMatchingMethod">
<property name="toolTip">
<string>Method for selection of temporal mesh dataset from a range time</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QDateTimeEdit" name="mTemporalDateTimeEnd">
<property name="enabled">
<bool>false</bool>
@ -677,6 +670,13 @@
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Dataset matching method</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
@ -684,34 +684,14 @@
</property>
</widget>
</item>
<item row="2" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>End time</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QComboBox" name="mComboBoxTemporalDatasetMatchingMethod">
<property name="toolTip">
<string>Method for selection of temporal mesh dataset from a range time</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDateTimeEdit" name="mTemporalDateTimeReference">
<property name="toolTip">
<string>Reference time used to render mesh dataset when using temporal range or temporal animation</string>
</property>
<property name="calendarPopup">
<bool>true</bool>
</property>
<property name="timeSpec">
<enum>Qt::UTC</enum>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<item row="3" column="1" colspan="2">
<widget class="QDateTimeEdit" name="mTemporalDateTimeStart">
<property name="enabled">
<bool>false</bool>
@ -724,10 +704,30 @@
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="mAutoReloadTemporalCheckBox">
<item row="0" column="2">
<widget class="QPushButton" name="mTemporalReloadButton">
<property name="maximumSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="toolTip">
<string>Reload from provider</string>
</property>
<property name="text">
<string>Automatic reload from provider</string>
<string/>
</property>
<property name="icon">
<iconset resource="../../../images/images.qrc">
<normaloff>:/images/themes/default/mActionRefresh.svg</normaloff>:/images/themes/default/mActionRefresh.svg</iconset>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QCheckBox" name="mAlwaysTimeFromSourceCheckBox">
<property name="text">
<string>Always take reference time from data source</string>
</property>
</widget>
</item>

View File

@ -2060,7 +2060,7 @@ void TestQgsMeshLayer::updateTimePropertiesWhenReloading()
QDateTime referenceTime1 = temporalProperties->referenceTime();
QgsDateTimeRange timeExtent1 = temporalProperties->timeExtent();
temporalProperties->setIsAutoReloadFromProvider( true );
temporalProperties->setAlwaysLoadReferenceTimeFromSource( true );
QgsReadWriteContext readWriteContext;
QDomDocument doc( QStringLiteral( "doc" ) );