mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-04 00:04:03 -04:00
suggested changes from the review
This commit is contained in:
parent
b30ccf3289
commit
2517b566d1
@ -1,6 +1,10 @@
|
||||
QGIS
|
||||
Building QGIS from source - step by step
|
||||
<<<<<<< HEAD
|
||||
2020-02-24
|
||||
=======
|
||||
2020-02-19
|
||||
>>>>>>> c81bfa2090... suggested changes from the review
|
||||
|
||||
%! target : html
|
||||
%! style : style.css
|
||||
@ -56,8 +60,13 @@ Building QGIS from source - step by step
|
||||
% End of comments
|
||||
% -------------------
|
||||
|
||||
<<<<<<< HEAD
|
||||
Last Updated: 2020-02-24
|
||||
Last Change : 2020-02-24
|
||||
=======
|
||||
Last Updated: 2020-02-19
|
||||
Last Change : 2020-02-17
|
||||
>>>>>>> c81bfa2090... suggested changes from the review
|
||||
|
||||
%%toc
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
QGIS News
|
||||
Change history for the QGIS Project
|
||||
<<<<<<< HEAD
|
||||
2020-02-24
|
||||
=======
|
||||
2020-02-19
|
||||
>>>>>>> c81bfa2090... suggested changes from the review
|
||||
|
||||
%! target : html
|
||||
%! style : style.css
|
||||
@ -35,6 +39,7 @@ Change history for the QGIS Project
|
||||
% End of comments
|
||||
% -------------------
|
||||
|
||||
<<<<<<< HEAD
|
||||
Last Updated: 2020-02-24
|
||||
Last Change : 2020-02-24
|
||||
|
||||
@ -72,6 +77,10 @@ This release has following new features:
|
||||
- Notable Fixes: Bug fixes by Stephen Knox
|
||||
-
|
||||
|
||||
=======
|
||||
Last Updated: 2020-02-19
|
||||
Last Change : 2020-02-17
|
||||
>>>>>>> c81bfa2090... suggested changes from the review
|
||||
|
||||
= What's new in Version 3.10 'A Coruña'? =
|
||||
|
||||
|
@ -116,9 +116,9 @@ Gets the data source specification.
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
virtual QgsDataProviderTemporalProperties *temporalProperties();
|
||||
virtual QgsDataProviderTemporalCapabilities *temporalCapabilities();
|
||||
%Docstring
|
||||
Returns data provider temporal properties. This may be ``None``, depending on the data provider.
|
||||
Returns data provider temporal capabilities. This may be ``None``, depending on the data provider.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
@ -0,0 +1,42 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgsdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsDataProviderTemporalCapabilities : QgsTemporalProperty
|
||||
{
|
||||
%Docstring
|
||||
Class for handling data providers temporal capabilities.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsdataprovidertemporalcapabilities.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsDataProviderTemporalCapabilities( bool enabled = false );
|
||||
%Docstring
|
||||
Constructor for QgsDataProviderTemporalCapabilities.
|
||||
%End
|
||||
|
||||
virtual ~QgsDataProviderTemporalCapabilities();
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgsdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
@ -1,7 +1,7 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgsdataprovidertemporalproperties.h *
|
||||
* src/core/qgsdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
@ -12,31 +12,31 @@
|
||||
|
||||
|
||||
|
||||
class QgsDataProviderTemporalProperties : QgsTemporalProperty
|
||||
class QgsDataProviderTemporalCapabilities : QgsTemporalProperty
|
||||
{
|
||||
%Docstring
|
||||
Class for handling data providers temporal properties.
|
||||
Class for handling data providers temporal capabilities.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsdataprovidertemporalproperties.h"
|
||||
#include "qgsdataprovidertemporalcapabilities.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsDataProviderTemporalProperties( bool enabled = false );
|
||||
QgsDataProviderTemporalCapabilities( bool enabled = false );
|
||||
%Docstring
|
||||
Constructor for QgsDataProviderTemporalProperties.
|
||||
Constructor for QgsDataProviderTemporalCapabilities.
|
||||
%End
|
||||
|
||||
virtual ~QgsDataProviderTemporalProperties();
|
||||
virtual ~QgsDataProviderTemporalCapabilities();
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgsdataprovidertemporalproperties.h *
|
||||
* src/core/qgsdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -11,10 +11,14 @@
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsMapLayerTemporalProperties : QgsTemporalProperty
|
||||
{
|
||||
%Docstring
|
||||
An abstract base class for handling map layer temporal properties.
|
||||
Base class for storage of map layer temporal properties.
|
||||
|
||||
QgsMapLayerTemporalProperties expose user-configurable settings for controlling
|
||||
how an individual QgsMapLayer behaves in a temporal context, e.g. while animating a map object.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
@ -27,22 +31,20 @@ An abstract base class for handling map layer temporal properties.
|
||||
QgsMapLayerTemporalProperties( bool enabled = false );
|
||||
%Docstring
|
||||
Constructor for QgsMapLayerTemporalProperties.
|
||||
|
||||
The ``enabled`` argument specifies whether the temporal properties are initially enabled or not (see isActive()).
|
||||
%End
|
||||
|
||||
virtual ~QgsMapLayerTemporalProperties();
|
||||
|
||||
virtual QDomElement writeXml( QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context ) = 0;
|
||||
%Docstring
|
||||
Writes the properties to a DOM ``element``, to be used later with readXml().
|
||||
Writes map layer temporal properties to a DOM element, to be used later with readXml()
|
||||
|
||||
.. seealso:: :py:func:`readXml`
|
||||
%End
|
||||
|
||||
virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context ) = 0;
|
||||
%Docstring
|
||||
Reads temporal properties from a DOM ``element`` previously written by writeXml().
|
||||
Reads temporal properties from a DOM element previously written by writeXml()
|
||||
|
||||
.. seealso:: :py:func:`writeXml`
|
||||
%End
|
||||
|
@ -10,10 +10,11 @@
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsTemporalRangeObject
|
||||
{
|
||||
%Docstring
|
||||
Base class for objects with an associated (optional) temporal range.
|
||||
Base class for temporal based classes.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
@ -23,11 +24,14 @@ Base class for objects with an associated (optional) temporal range.
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsTemporalRangeObject( bool enabled = false );
|
||||
QgsTemporalRangeObject();
|
||||
%Docstring
|
||||
Constructor QgsTemporalRangeObject.
|
||||
Constructor for QgsTemporalRangeObject.
|
||||
%End
|
||||
|
||||
The ``enabled`` argument specifies whether the temporal range is initially enabled or not (see isTemporal()).
|
||||
QgsTemporalRangeObject( bool enabled );
|
||||
%Docstring
|
||||
Creates temporal range object with the specified temporal state.
|
||||
%End
|
||||
|
||||
QgsTemporalRangeObject( const QgsRenderContext &rh );
|
||||
@ -39,38 +43,34 @@ Copies render context temporal members
|
||||
|
||||
void setIsTemporal( bool enabled );
|
||||
%Docstring
|
||||
Sets whether the temporal range is ``enabled`` (i.e. whether the object has a temporal range
|
||||
which will be considered when rendering maps with a specific time range set.)
|
||||
Sets object as a temporal based one, which will be considered when rendering maps with a specific time range set.
|
||||
|
||||
.. seealso:: :py:func:`isTemporal`
|
||||
%End
|
||||
|
||||
bool isTemporal() const;
|
||||
%Docstring
|
||||
Returns ``True`` if the object's temporal range is enabled, and the object will be filtered when rendering maps with a specific time range set.
|
||||
Returns true if the object is a temporal one, and will be filtered when rendering maps with a specific time range set.
|
||||
|
||||
For map settings, if ``False`` is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
For map settings, If false is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
|
||||
.. seealso:: :py:func:`setIsTemporal`
|
||||
%End
|
||||
|
||||
void setTemporalRange( const QgsDateTimeRange &range );
|
||||
void setTemporalRange( const QgsDateTimeRange &dateTimeRange );
|
||||
%Docstring
|
||||
Sets the temporal ``range`` for the object.
|
||||
Set datetime range for a temporal object.
|
||||
|
||||
Calling setTemporalRange() automatically enables temporal properties on the
|
||||
object (see isTemporal()), regardless of its existing state.
|
||||
It updates object temporal state to true if it was false.
|
||||
|
||||
When a temporal ``range`` is set it can be used to filter and request time base objects.
|
||||
When set, can be used to filter and request time base objects.
|
||||
|
||||
.. seealso:: :py:func:`temporalRange`
|
||||
%End
|
||||
|
||||
const QgsDateTimeRange &temporalRange() const;
|
||||
%Docstring
|
||||
Returns the datetime range for the object.
|
||||
|
||||
This should only be considered when isTemporal() returns ``True``.
|
||||
Returns datetime range if object is a temporal object.
|
||||
|
||||
.. seealso:: :py:func:`setTemporalRange`
|
||||
%End
|
||||
|
@ -1,88 +0,0 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgstemporalrangeobject.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsTemporalRangeObject
|
||||
{
|
||||
%Docstring
|
||||
Base class for temporal based classes.
|
||||
|
||||
Subclasses may wish to update the abstract temporal functions.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgstemporalrangeobject.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsTemporalRangeObject();
|
||||
%Docstring
|
||||
Constructor for QgsTemporalRangeObject.
|
||||
%End
|
||||
|
||||
QgsTemporalRangeObject( bool enabled );
|
||||
%Docstring
|
||||
Creates temporal range object with the specified temporal state.
|
||||
%End
|
||||
|
||||
QgsTemporalRangeObject( const QgsRenderContext &rh );
|
||||
%Docstring
|
||||
Copies render context temporal members
|
||||
%End
|
||||
|
||||
virtual ~QgsTemporalRangeObject();
|
||||
|
||||
void setIsTemporal( bool enabled );
|
||||
%Docstring
|
||||
Sets object as a temporal based one, which will be considered when rendering maps with a specific time range set.
|
||||
|
||||
.. seealso:: :py:func:`isTemporal`
|
||||
%End
|
||||
|
||||
bool isTemporal() const;
|
||||
%Docstring
|
||||
Returns true if the object is a temporal one, and will be filtered when rendering maps with a specific time range set.
|
||||
|
||||
For map settings, If false is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
|
||||
.. seealso:: :py:func:`setIsTemporal`
|
||||
%End
|
||||
|
||||
void setTemporalRange( const QgsDateTimeRange &dateTimeRange );
|
||||
%Docstring
|
||||
Set datetime range for a temporal object.
|
||||
|
||||
It updates object temporal state to true if it was false.
|
||||
|
||||
When set, can be used to filter and request time base objects.
|
||||
|
||||
.. seealso:: :py:func:`temporalRange`
|
||||
%End
|
||||
|
||||
const QgsDateTimeRange &temporalRange() const;
|
||||
%Docstring
|
||||
Returns datetime range if object is a temporal object.
|
||||
|
||||
.. seealso:: :py:func:`setTemporalRange`
|
||||
%End
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/qgstemporalrangeobject.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
@ -193,9 +193,9 @@ Returns the sublayers of this layer - useful for providers that manage
|
||||
their own layers, such as WMS
|
||||
%End
|
||||
|
||||
virtual QgsRasterDataProviderTemporalProperties *temporalProperties();
|
||||
virtual QgsRasterDataProviderTemporalCapabilities *temporalCapabilities();
|
||||
%Docstring
|
||||
Returns temporal properties associated with data provider.
|
||||
Returns temporal capabilities associated with the data provider.
|
||||
%End
|
||||
|
||||
virtual bool supportsLegendGraphic() const;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/raster/qgsrasterdataprovidertemporalproperties.h *
|
||||
* src/core/raster/qgsrasterdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
@ -10,25 +10,29 @@
|
||||
|
||||
|
||||
|
||||
class QgsRasterDataProviderTemporalProperties : QgsDataProviderTemporalProperties
|
||||
class QgsRasterDataProviderTemporalCapabilities : QgsDataProviderTemporalCapabilities
|
||||
{
|
||||
%Docstring
|
||||
Implementation raster data provider temporal properties.
|
||||
Implementation of data provider temporal properties for QgsRasterDataProviders.
|
||||
|
||||
Data provider temporal capabilities reflect the temporal capabilities of a QgsDataProvider.
|
||||
Unlike QgsMapLayerTemporalProperties, these settings are not user-configurable,
|
||||
and should only be set by the QgsDataProvider itself.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsrasterdataprovidertemporalproperties.h"
|
||||
#include "qgsrasterdataprovidertemporalcapabilities.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsRasterDataProviderTemporalProperties( bool enabled = false );
|
||||
QgsRasterDataProviderTemporalCapabilities( bool enabled = false );
|
||||
%Docstring
|
||||
Constructor for QgsRasterDataProviderTemporalProperties.
|
||||
Constructor for :py:class:`QgsRasterDataProviderTemporalProperties`.
|
||||
%End
|
||||
|
||||
virtual ~QgsRasterDataProviderTemporalProperties();
|
||||
virtual ~QgsRasterDataProviderTemporalCapabilities();
|
||||
|
||||
|
||||
void setTemporalRange( const QgsDateTimeRange &dateTimeRange );
|
||||
@ -136,7 +140,7 @@ Returns the enabled status of the reference range.
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/raster/qgsrasterdataprovidertemporalproperties.h *
|
||||
* src/core/raster/qgsrasterdataprovidertemporalcapabilities.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
@ -36,7 +36,6 @@ The ``enabled`` argument specifies whether the temporal properties are initially
|
||||
{
|
||||
ModeFixedTemporalRange,
|
||||
ModeTemporalRangeFromDataProvider,
|
||||
ModeTemporalRangesList
|
||||
};
|
||||
|
||||
TemporalMode mode() const;
|
||||
|
@ -41,7 +41,7 @@
|
||||
%Include auto_generated/qgsdataitemprovider.sip
|
||||
%Include auto_generated/qgsdataitemproviderregistry.sip
|
||||
%Include auto_generated/qgsdataprovider.sip
|
||||
%Include auto_generated/qgsdataprovidertemporalproperties.sip
|
||||
%Include auto_generated/qgsdataprovidertemporalcapabilities.sip
|
||||
%Include auto_generated/qgsdatasourceuri.sip
|
||||
%Include auto_generated/qgsdatetimestatisticalsummary.sip
|
||||
%Include auto_generated/qgsdatumtransform.sip
|
||||
@ -448,7 +448,7 @@
|
||||
%Include auto_generated/raster/qgsrasterblock.sip
|
||||
%Include auto_generated/raster/qgsrasterchecker.sip
|
||||
%Include auto_generated/raster/qgsrasterdataprovider.sip
|
||||
%Include auto_generated/raster/qgsrasterdataprovidertemporalproperties.sip
|
||||
%Include auto_generated/raster/qgsrasterdataprovidertemporalcapabilities.sip
|
||||
%Include auto_generated/raster/qgsrasterdrawer.sip
|
||||
%Include auto_generated/raster/qgsrasterfilewriter.sip
|
||||
%Include auto_generated/raster/qgsrasterfilewritertask.sip
|
||||
|
@ -1,7 +1,7 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/gui/qgstemporallayerwidget.h *
|
||||
* src/gui/raster/qgsrasterlayertemporalpropertieswidget.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
@ -11,23 +11,22 @@
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsTemporalLayerWidget : QWidget
|
||||
class QgsRasterLayerTemporalPropertiesWidget : QWidget
|
||||
{
|
||||
%Docstring
|
||||
A widget for filtering temporal layer based on its available time values
|
||||
A widget for configuring the temporal properties for a raster layer.
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgstemporallayerwidget.h"
|
||||
#include "qgsrasterlayertemporalpropertieswidget.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
QgsTemporalLayerWidget( QWidget *parent = 0, QgsMapLayer *layer = 0 );
|
||||
QgsRasterLayerTemporalPropertiesWidget( QWidget *parent = 0, QgsMapLayer *layer = 0 );
|
||||
%Docstring
|
||||
Constructor for QgsTemporalLayerWidget.
|
||||
Constructor for QgsRasterLayerTemporalPropertiesWidget.
|
||||
%End
|
||||
|
||||
void setMapCanvas( QgsMapCanvas *canvas );
|
||||
@ -44,7 +43,7 @@ Save widget temporal properties inputs.
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/gui/qgstemporallayerwidget.h *
|
||||
* src/gui/raster/qgsrasterlayertemporalpropertieswidget.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
@ -193,7 +193,6 @@
|
||||
%Include auto_generated/qgstablewidgetitem.sip
|
||||
%Include auto_generated/qgstabwidget.sip
|
||||
%Include auto_generated/qgstaskmanagerwidget.sip
|
||||
%Include auto_generated/qgstemporallayerwidget.sip
|
||||
%Include auto_generated/qgstextformatwidget.sip
|
||||
%Include auto_generated/qgstextpreview.sip
|
||||
%Include auto_generated/qgstreewidgetitem.sip
|
||||
@ -327,6 +326,7 @@
|
||||
%Include auto_generated/raster/qgssinglebandgrayrendererwidget.sip
|
||||
%Include auto_generated/raster/qgssinglebandpseudocolorrendererwidget.sip
|
||||
%Include auto_generated/raster/qgsrasterlayerproperties.sip
|
||||
%Include auto_generated/raster/qgsrasterlayertemporalpropertieswidget.sip
|
||||
%Include auto_generated/symbology/characterwidget.sip
|
||||
%Include auto_generated/symbology/qgs25drendererwidget.sip
|
||||
%Include auto_generated/symbology/qgsarrowsymbollayerwidget.sip
|
||||
|
@ -232,7 +232,7 @@ SET(QGIS_CORE_SRCS
|
||||
qgsdataitemproviderregistry.cpp
|
||||
qgsdatasourceuri.cpp
|
||||
qgsdataprovider.cpp
|
||||
qgsdataprovidertemporalproperties.cpp
|
||||
qgsdataprovidertemporalcapabilities.cpp
|
||||
qgsdatetimestatisticalsummary.cpp
|
||||
qgsdatumtransform.cpp
|
||||
qgsdbfilterproxymodel.cpp
|
||||
@ -509,7 +509,7 @@ SET(QGIS_CORE_SRCS
|
||||
raster/qgsrasterblock.cpp
|
||||
raster/qgsrasterchecker.cpp
|
||||
raster/qgsrasterdataprovider.cpp
|
||||
raster/qgsrasterdataprovidertemporalproperties.cpp
|
||||
raster/qgsrasterdataprovidertemporalcapabilities.cpp
|
||||
raster/qgsrasterfilewritertask.cpp
|
||||
raster/qgsrasteridentifyresult.cpp
|
||||
raster/qgsrasterinterface.cpp
|
||||
@ -729,7 +729,7 @@ SET(QGIS_CORE_HDRS
|
||||
qgsdataitemprovider.h
|
||||
qgsdataitemproviderregistry.h
|
||||
qgsdataprovider.h
|
||||
qgsdataprovidertemporalproperties.h
|
||||
qgsdataprovidertemporalcapabilities.h
|
||||
qgsdatasourceuri.h
|
||||
qgsdatetimestatisticalsummary.h
|
||||
qgsdatumtransform.h
|
||||
@ -1219,7 +1219,7 @@ SET(QGIS_CORE_HDRS
|
||||
raster/qgsrasterblock.h
|
||||
raster/qgsrasterchecker.h
|
||||
raster/qgsrasterdataprovider.h
|
||||
raster/qgsrasterdataprovidertemporalproperties.h
|
||||
raster/qgsrasterdataprovidertemporalcapabilities.h
|
||||
raster/qgsrasterdrawer.h
|
||||
raster/qgsrasterfilewriter.h
|
||||
raster/qgsrasterfilewritertask.h
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "qgscoordinatetransformcontext.h"
|
||||
#include "qgslayermetadata.h"
|
||||
#include "qgserror.h"
|
||||
#include "qgsdataprovidertemporalproperties.h"
|
||||
#include "qgsdataprovidertemporalcapabilities.h"
|
||||
|
||||
class QgsRectangle;
|
||||
class QgsCoordinateReferenceSystem;
|
||||
@ -173,11 +173,11 @@ class CORE_EXPORT QgsDataProvider : public QObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns data provider temporal properties. This may be NULLPTR, depending on the data provider.
|
||||
* Returns data provider temporal capabilities. This may be NULLPTR, depending on the data provider.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
virtual QgsDataProviderTemporalProperties *temporalProperties() { return nullptr; }
|
||||
virtual QgsDataProviderTemporalCapabilities *temporalCapabilities() { return nullptr; }
|
||||
|
||||
/**
|
||||
* Returns the extent of the layer
|
||||
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgsdataprovidertemporalproperties.cpp
|
||||
qgsdataprovidertemporalcapabalities.cpp
|
||||
---------------
|
||||
begin : February 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -15,9 +15,9 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "qgsdataprovidertemporalproperties.h"
|
||||
#include "qgsdataprovidertemporalcapabilities.h"
|
||||
|
||||
QgsDataProviderTemporalProperties::QgsDataProviderTemporalProperties( bool enabled )
|
||||
QgsDataProviderTemporalCapabilities::QgsDataProviderTemporalCapabilities( bool enabled )
|
||||
: QgsTemporalProperty( enabled )
|
||||
{
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgsdataprovidertemporalproperties.h
|
||||
qgsdataprovidertemporalcapabilities.h
|
||||
---------------
|
||||
begin : February 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -16,8 +16,8 @@
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef QGSDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#define QGSDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#ifndef QGSDATAPROVIDERTEMPORALCAPABILITIES_H
|
||||
#define QGSDATAPROVIDERTEMPORALCAPABILITIES_H
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include "qgis_sip.h"
|
||||
@ -26,23 +26,23 @@
|
||||
#include <QDomElement>
|
||||
|
||||
/**
|
||||
* \class QgsDataProviderTemporalProperties
|
||||
* \class QgsDataProviderTemporalCapabilities
|
||||
* \ingroup core
|
||||
* Class for handling data providers temporal properties.
|
||||
* Class for handling data providers temporal capabilities.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
|
||||
class CORE_EXPORT QgsDataProviderTemporalProperties : public QgsTemporalProperty
|
||||
class CORE_EXPORT QgsDataProviderTemporalCapabilities : public QgsTemporalProperty
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsDataProviderTemporalProperties.
|
||||
* Constructor for QgsDataProviderTemporalCapabilities.
|
||||
*/
|
||||
QgsDataProviderTemporalProperties( bool enabled = false );
|
||||
QgsDataProviderTemporalCapabilities( bool enabled = false );
|
||||
|
||||
virtual ~QgsDataProviderTemporalProperties() = default;
|
||||
virtual ~QgsDataProviderTemporalCapabilities() = default;
|
||||
};
|
||||
|
||||
#endif // QGSDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#endif // QGSDATAPROVIDERTEMPORALCAPABILITIES_H
|
@ -29,32 +29,34 @@
|
||||
/**
|
||||
* \class QgsMapLayerTemporalProperties
|
||||
* \ingroup core
|
||||
* An abstract base class for handling map layer temporal properties.
|
||||
* Base class for storage of map layer temporal properties.
|
||||
*
|
||||
* QgsMapLayerTemporalProperties expose user-configurable settings for controlling
|
||||
* how an individual QgsMapLayer behaves in a temporal context, e.g. while animating a map object.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
|
||||
class CORE_EXPORT QgsMapLayerTemporalProperties : public QgsTemporalProperty
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsMapLayerTemporalProperties.
|
||||
*
|
||||
* The \a enabled argument specifies whether the temporal properties are initially enabled or not (see isActive()).
|
||||
*/
|
||||
QgsMapLayerTemporalProperties( bool enabled = false );
|
||||
|
||||
virtual ~QgsMapLayerTemporalProperties() = default;
|
||||
|
||||
/**
|
||||
* Writes the properties to a DOM \a element, to be used later with readXml().
|
||||
* Writes map layer temporal properties to a DOM element, to be used later with readXml()
|
||||
*
|
||||
* \see readXml()
|
||||
*/
|
||||
virtual QDomElement writeXml( QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context ) = 0;
|
||||
|
||||
/**
|
||||
* Reads temporal properties from a DOM \a element previously written by writeXml().
|
||||
* Reads temporal properties from a DOM element previously written by writeXml()
|
||||
*
|
||||
* \see writeXml()
|
||||
*/
|
||||
|
@ -1,60 +0,0 @@
|
||||
/***************************************************************************
|
||||
qgstemporalrangeobject.cpp
|
||||
---------------
|
||||
begin : January 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
email : samweli at kartoza dot com
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "qgstemporalrangeobject.h"
|
||||
#include "qgsrendercontext.h"
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject()
|
||||
{
|
||||
}
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject( bool enabled )
|
||||
: mTemporal( enabled )
|
||||
{
|
||||
}
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject( const QgsRenderContext &rh )
|
||||
: mTemporal( rh.isTemporal() )
|
||||
, mDateTimeRange( rh.temporalRange() )
|
||||
{
|
||||
}
|
||||
|
||||
void QgsTemporalRangeObject::setIsTemporal( bool enabled )
|
||||
{
|
||||
mTemporal = enabled;
|
||||
}
|
||||
|
||||
bool QgsTemporalRangeObject::isTemporal() const
|
||||
{
|
||||
return mTemporal;
|
||||
}
|
||||
|
||||
void QgsTemporalRangeObject::setTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( !isTemporal() )
|
||||
setIsTemporal( true );
|
||||
|
||||
mDateTimeRange = dateTimeRange;
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsTemporalRangeObject::temporalRange() const
|
||||
{
|
||||
return mDateTimeRange;
|
||||
}
|
||||
|
@ -1,63 +0,0 @@
|
||||
/***************************************************************************
|
||||
qgstemporalrangeobject.cpp
|
||||
---------------
|
||||
begin : January 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
email : samweli at kartoza dot com
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "qgstemporalrangeobject.h"
|
||||
#include "qgsrendercontext.h"
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject()
|
||||
{
|
||||
}
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject( bool enabled )
|
||||
: mTemporal( enabled )
|
||||
{
|
||||
}
|
||||
|
||||
QgsTemporalRangeObject::QgsTemporalRangeObject( const QgsRenderContext &rh )
|
||||
: mTemporal( rh.isTemporal() )
|
||||
, mDateTimeRange( rh.temporalRange() )
|
||||
{
|
||||
}
|
||||
|
||||
void QgsTemporalRangeObject::setIsTemporal( bool enabled )
|
||||
{
|
||||
mTemporal = enabled;
|
||||
}
|
||||
|
||||
bool QgsTemporalRangeObject::isTemporal() const
|
||||
{
|
||||
return mTemporal;
|
||||
}
|
||||
|
||||
void QgsTemporalRangeObject::setTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( dateTimeRange == mDateTimeRange )
|
||||
return;
|
||||
|
||||
if ( !isTemporal() )
|
||||
setIsTemporal( true );
|
||||
|
||||
mDateTimeRange = dateTimeRange;
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsTemporalRangeObject::temporalRange() const
|
||||
{
|
||||
return mDateTimeRange;
|
||||
}
|
||||
|
@ -23,10 +23,12 @@
|
||||
#include "qgis_sip.h"
|
||||
#include "qgsrange.h"
|
||||
|
||||
class QgsRenderContext;
|
||||
|
||||
/**
|
||||
* \class QgsTemporalRangeObject
|
||||
* \ingroup core
|
||||
* Base class for objects with an associated (optional) temporal range.
|
||||
* Base class for temporal based classes.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
@ -35,11 +37,14 @@ class CORE_EXPORT QgsTemporalRangeObject
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor QgsTemporalRangeObject.
|
||||
*
|
||||
* The \a enabled argument specifies whether the temporal range is initially enabled or not (see isTemporal()).
|
||||
* Constructor for QgsTemporalRangeObject.
|
||||
*/
|
||||
QgsTemporalRangeObject( bool enabled = false );
|
||||
QgsTemporalRangeObject();
|
||||
|
||||
/**
|
||||
* Creates temporal range object with the specified temporal state.
|
||||
*/
|
||||
QgsTemporalRangeObject( bool enabled );
|
||||
|
||||
/**
|
||||
* Copies render context temporal members
|
||||
@ -49,38 +54,34 @@ class CORE_EXPORT QgsTemporalRangeObject
|
||||
virtual ~QgsTemporalRangeObject() = default;
|
||||
|
||||
/**
|
||||
* Sets whether the temporal range is \a enabled (i.e. whether the object has a temporal range
|
||||
* which will be considered when rendering maps with a specific time range set.)
|
||||
* Sets object as a temporal based one, which will be considered when rendering maps with a specific time range set.
|
||||
*
|
||||
* \see isTemporal()
|
||||
*/
|
||||
void setIsTemporal( bool enabled );
|
||||
|
||||
/**
|
||||
* Returns TRUE if the object's temporal range is enabled, and the object will be filtered when rendering maps with a specific time range set.
|
||||
* Returns true if the object is a temporal one, and will be filtered when rendering maps with a specific time range set.
|
||||
*
|
||||
* For map settings, if FALSE is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
* For map settings, If false is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
*
|
||||
* \see setIsTemporal()
|
||||
*/
|
||||
bool isTemporal() const;
|
||||
|
||||
/**
|
||||
* Sets the temporal \a range for the object.
|
||||
* Set datetime range for a temporal object.
|
||||
*
|
||||
* Calling setTemporalRange() automatically enables temporal properties on the
|
||||
* object (see isTemporal()), regardless of its existing state.
|
||||
* It updates object temporal state to true if it was false.
|
||||
*
|
||||
* When a temporal \a range is set it can be used to filter and request time base objects.
|
||||
* When set, can be used to filter and request time base objects.
|
||||
*
|
||||
* \see temporalRange()
|
||||
*/
|
||||
void setTemporalRange( const QgsDateTimeRange &range );
|
||||
void setTemporalRange( const QgsDateTimeRange &dateTimeRange );
|
||||
|
||||
/**
|
||||
* Returns the datetime range for the object.
|
||||
*
|
||||
* This should only be considered when isTemporal() returns TRUE.
|
||||
* Returns datetime range if object is a temporal object.
|
||||
*
|
||||
* \see setTemporalRange()
|
||||
*/
|
||||
|
@ -1,102 +0,0 @@
|
||||
/***************************************************************************
|
||||
qgstemporalrangeobject.h
|
||||
---------------
|
||||
begin : January 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
email : samweli at kartoza dot com
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef QGSTEMPORALRANGEOBJECT_H
|
||||
#define QGSTEMPORALRANGEOBJECT_H
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include "qgis_sip.h"
|
||||
#include "qgsrange.h"
|
||||
|
||||
class QgsRenderContext;
|
||||
|
||||
/**
|
||||
* \class QgsTemporalRangeObject
|
||||
* \ingroup core
|
||||
* Base class for temporal based classes.
|
||||
*
|
||||
* Subclasses may wish to update the abstract temporal functions.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
class CORE_EXPORT QgsTemporalRangeObject
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsTemporalRangeObject.
|
||||
*/
|
||||
QgsTemporalRangeObject();
|
||||
|
||||
/**
|
||||
* Creates temporal range object with the specified temporal state.
|
||||
*/
|
||||
QgsTemporalRangeObject( bool enabled );
|
||||
|
||||
/**
|
||||
* Copies render context temporal members
|
||||
*/
|
||||
QgsTemporalRangeObject( const QgsRenderContext &rh );
|
||||
|
||||
virtual ~QgsTemporalRangeObject() = default;
|
||||
|
||||
/**
|
||||
* Sets object as a temporal based one, which will be considered when rendering maps with a specific time range set.
|
||||
*
|
||||
* \see isTemporal()
|
||||
*/
|
||||
void setIsTemporal( bool enabled );
|
||||
|
||||
/**
|
||||
* Returns true if the object is a temporal one, and will be filtered when rendering maps with a specific time range set.
|
||||
*
|
||||
* For map settings, If false is returned, then any other temporal settings relating to the map will be ignored during rendering.
|
||||
*
|
||||
* \see setIsTemporal()
|
||||
*/
|
||||
bool isTemporal() const;
|
||||
|
||||
/**
|
||||
* Set datetime range for a temporal object.
|
||||
*
|
||||
* It updates object temporal state to true if it was false.
|
||||
*
|
||||
* When set, can be used to filter and request time base objects.
|
||||
*
|
||||
* \see temporalRange()
|
||||
*/
|
||||
void setTemporalRange( const QgsDateTimeRange &dateTimeRange );
|
||||
|
||||
/**
|
||||
* Returns datetime range if object is a temporal object.
|
||||
*
|
||||
* \see setTemporalRange()
|
||||
*/
|
||||
const QgsDateTimeRange &temporalRange() const;
|
||||
|
||||
private:
|
||||
|
||||
//! Temporal state
|
||||
bool mTemporal = false;
|
||||
|
||||
//! Represents datetime range member.
|
||||
QgsDateTimeRange mDateTimeRange;
|
||||
|
||||
};
|
||||
|
||||
#endif // QGSTEMPORALRANGEOBJECT_H
|
@ -217,14 +217,14 @@ QgsRasterDataProvider::QgsRasterDataProvider()
|
||||
: QgsDataProvider( QString(), QgsDataProvider::ProviderOptions() )
|
||||
, QgsRasterInterface( nullptr )
|
||||
{
|
||||
mTemporalProperties = std::unique_ptr< QgsRasterDataProviderTemporalProperties >( new QgsRasterDataProviderTemporalProperties() );
|
||||
mTemporalCapabilities = qgis::make_unique< QgsRasterDataProviderTemporalCapabilities >();
|
||||
}
|
||||
|
||||
QgsRasterDataProvider::QgsRasterDataProvider( const QString &uri, const ProviderOptions &options )
|
||||
: QgsDataProvider( uri, options )
|
||||
, QgsRasterInterface( nullptr )
|
||||
{
|
||||
mTemporalProperties = std::unique_ptr< QgsRasterDataProviderTemporalProperties >( new QgsRasterDataProviderTemporalProperties() );
|
||||
mTemporalCapabilities = qgis::make_unique< QgsRasterDataProviderTemporalCapabilities >();
|
||||
}
|
||||
|
||||
QgsRasterDataProvider::ProviderCapabilities QgsRasterDataProvider::providerCapabilities() const
|
||||
@ -518,13 +518,13 @@ void QgsRasterDataProvider::copyBaseSettings( const QgsRasterDataProvider &other
|
||||
mExtent = other.mExtent;
|
||||
|
||||
// copy temporal properties
|
||||
mTemporalProperties->setIsActive( other.mTemporalProperties->isActive() );
|
||||
mTemporalProperties->setTemporalRange( other.mTemporalProperties->temporalRange() );
|
||||
mTemporalProperties->setFixedTemporalRange( other.mTemporalProperties->fixedTemporalRange() );
|
||||
mTemporalProperties->setEnableTime( other.mTemporalProperties->isTimeEnabled() );
|
||||
mTemporalProperties->setHasReference( other.mTemporalProperties->hasReference() );
|
||||
mTemporalProperties->setReferenceTemporalRange( other.mTemporalProperties->referenceTemporalRange() );
|
||||
mTemporalProperties->setFixedReferenceTemporalRange( other.mTemporalProperties->fixedReferenceTemporalRange() );
|
||||
mTemporalCapabilities->setIsActive( other.mTemporalCapabilities->isActive() );
|
||||
mTemporalCapabilities->setTemporalRange( other.mTemporalCapabilities->temporalRange() );
|
||||
mTemporalCapabilities->setFixedTemporalRange( other.mTemporalCapabilities->fixedTemporalRange() );
|
||||
mTemporalCapabilities->setEnableTime( other.mTemporalCapabilities->isTimeEnabled() );
|
||||
mTemporalCapabilities->setHasReference( other.mTemporalCapabilities->hasReference() );
|
||||
mTemporalCapabilities->setReferenceTemporalRange( other.mTemporalCapabilities->referenceTemporalRange() );
|
||||
mTemporalCapabilities->setFixedReferenceTemporalRange( other.mTemporalCapabilities->fixedReferenceTemporalRange() );
|
||||
}
|
||||
|
||||
// ENDS
|
||||
|
@ -40,7 +40,7 @@
|
||||
#include "qgsrasterrange.h"
|
||||
#include "qgsrectangle.h"
|
||||
#include "qgsrasteriterator.h"
|
||||
#include "qgsrasterdataprovidertemporalproperties.h"
|
||||
#include "qgsrasterdataprovidertemporalcapabilities.h"
|
||||
|
||||
class QImage;
|
||||
class QByteArray;
|
||||
@ -263,9 +263,9 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns temporal properties associated with data provider.
|
||||
* Returns temporal capabilities associated with the data provider.
|
||||
*/
|
||||
QgsRasterDataProviderTemporalProperties *temporalProperties() override { return mTemporalProperties.get(); }
|
||||
QgsRasterDataProviderTemporalCapabilities *temporalCapabilities() override { return mTemporalCapabilities.get(); }
|
||||
|
||||
//! \brief Returns whether the provider supplies a legend graphic
|
||||
virtual bool supportsLegendGraphic() const { return false; }
|
||||
@ -623,7 +623,7 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast
|
||||
/**
|
||||
* Data provider temporal properties
|
||||
*/
|
||||
std::unique_ptr< QgsRasterDataProviderTemporalProperties > mTemporalProperties;
|
||||
std::unique_ptr< QgsRasterDataProviderTemporalCapabilities > mTemporalCapabilities;
|
||||
|
||||
};
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgsrasterdataprovidertemporalproperties.cpp
|
||||
qgsrasterdataprovidertemporalcapabilities.cpp
|
||||
---------------
|
||||
begin : February 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -15,10 +15,10 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "qgsrasterdataprovidertemporalproperties.h"
|
||||
#include "qgsrasterdataprovidertemporalcapabilities.h"
|
||||
|
||||
QgsRasterDataProviderTemporalProperties::QgsRasterDataProviderTemporalProperties( bool enabled )
|
||||
: QgsDataProviderTemporalProperties( enabled )
|
||||
QgsRasterDataProviderTemporalCapabilities::QgsRasterDataProviderTemporalCapabilities( bool enabled )
|
||||
: QgsDataProviderTemporalCapabilities( enabled )
|
||||
{
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ QgsRasterDataProviderTemporalProperties::QgsRasterDataProviderTemporalProperties
|
||||
// return *this;
|
||||
//}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( !isActive() )
|
||||
setIsActive( true );
|
||||
@ -40,12 +40,12 @@ void QgsRasterDataProviderTemporalProperties::setTemporalRange( const QgsDateTim
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalProperties::temporalRange() const
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalCapabilities::temporalRange() const
|
||||
{
|
||||
return mRange;
|
||||
}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setFixedTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setFixedTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( !isActive() )
|
||||
setIsActive( true );
|
||||
@ -54,22 +54,22 @@ void QgsRasterDataProviderTemporalProperties::setFixedTemporalRange( const QgsDa
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalProperties::fixedTemporalRange() const
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalCapabilities::fixedTemporalRange() const
|
||||
{
|
||||
return mFixedRange;
|
||||
}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setEnableTime( bool enabled )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setEnableTime( bool enabled )
|
||||
{
|
||||
mEnableTime = enabled;
|
||||
}
|
||||
|
||||
bool QgsRasterDataProviderTemporalProperties::isTimeEnabled() const
|
||||
bool QgsRasterDataProviderTemporalCapabilities::isTimeEnabled() const
|
||||
{
|
||||
return mEnableTime;
|
||||
}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setReferenceTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setReferenceTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( !isActive() )
|
||||
setIsActive( true );
|
||||
@ -78,12 +78,12 @@ void QgsRasterDataProviderTemporalProperties::setReferenceTemporalRange( const Q
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalProperties::referenceTemporalRange() const
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalCapabilities::referenceTemporalRange() const
|
||||
{
|
||||
return mReferenceRange;
|
||||
}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setFixedReferenceTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setFixedReferenceTemporalRange( const QgsDateTimeRange &dateTimeRange )
|
||||
{
|
||||
if ( !isActive() )
|
||||
setIsActive( true );
|
||||
@ -92,28 +92,28 @@ void QgsRasterDataProviderTemporalProperties::setFixedReferenceTemporalRange( co
|
||||
|
||||
}
|
||||
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalProperties::fixedReferenceTemporalRange() const
|
||||
const QgsDateTimeRange &QgsRasterDataProviderTemporalCapabilities::fixedReferenceTemporalRange() const
|
||||
{
|
||||
return mFixedReferenceRange;
|
||||
}
|
||||
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setHasReference( bool enabled )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setHasReference( bool enabled )
|
||||
{
|
||||
mHasReferenceRange = enabled;
|
||||
}
|
||||
|
||||
bool QgsRasterDataProviderTemporalProperties::hasReference() const
|
||||
bool QgsRasterDataProviderTemporalCapabilities::hasReference() const
|
||||
{
|
||||
return mHasReferenceRange;
|
||||
}
|
||||
|
||||
void QgsRasterDataProviderTemporalProperties::setReferenceEnable( bool enabled )
|
||||
void QgsRasterDataProviderTemporalCapabilities::setReferenceEnable( bool enabled )
|
||||
{
|
||||
mReferenceEnable = enabled;
|
||||
}
|
||||
|
||||
bool QgsRasterDataProviderTemporalProperties::isReferenceEnable() const
|
||||
bool QgsRasterDataProviderTemporalCapabilities::isReferenceEnable() const
|
||||
{
|
||||
return mReferenceEnable;
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgsrasterdataprovidertemporalproperties.h
|
||||
qgsrasterdataprovidertemporalcapabilities.h
|
||||
---------------
|
||||
begin : February 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -15,34 +15,38 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef QGSRASTERDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#define QGSRASTERDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#ifndef QGSRASTERDATAPROVIDERTEMPORALCAPABILITIES_H
|
||||
#define QGSRASTERDATAPROVIDERTEMPORALCAPABILITIES_H
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include "qgis_sip.h"
|
||||
#include "qgsrange.h"
|
||||
#include "qgsdataprovidertemporalproperties.h"
|
||||
#include "qgsdataprovidertemporalcapabilities.h"
|
||||
|
||||
/**
|
||||
* \class QgsRasterDataProviderTemporalProperties
|
||||
* \class QgsRasterDataProviderTemporalCapabilities
|
||||
* \ingroup core
|
||||
* Implementation raster data provider temporal properties.
|
||||
* Implementation of data provider temporal properties for QgsRasterDataProviders.
|
||||
*
|
||||
* Data provider temporal capabilities reflect the temporal capabilities of a QgsDataProvider.
|
||||
* Unlike QgsMapLayerTemporalProperties, these settings are not user-configurable,
|
||||
* and should only be set by the QgsDataProvider itself.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
|
||||
class CORE_EXPORT QgsRasterDataProviderTemporalProperties : public QgsDataProviderTemporalProperties
|
||||
class CORE_EXPORT QgsRasterDataProviderTemporalCapabilities : public QgsDataProviderTemporalCapabilities
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsRasterDataProviderTemporalProperties.
|
||||
*/
|
||||
QgsRasterDataProviderTemporalProperties( bool enabled = false );
|
||||
QgsRasterDataProviderTemporalCapabilities( bool enabled = false );
|
||||
|
||||
virtual ~QgsRasterDataProviderTemporalProperties() = default;
|
||||
virtual ~QgsRasterDataProviderTemporalCapabilities() = default;
|
||||
|
||||
// QgsRasterDataProviderTemporalProperties &operator=( const QgsRasterDataProviderTemporalProperties &other );
|
||||
// QgsRasterDataProviderTemporalCapabilities &operator=( const QgsRasterDataProviderTemporalProperties &other );
|
||||
|
||||
/**
|
||||
* Sets the current active datetime range for the temporal properties.
|
||||
@ -187,4 +191,4 @@ class CORE_EXPORT QgsRasterDataProviderTemporalProperties : public QgsDataProvid
|
||||
|
||||
};
|
||||
|
||||
#endif // QGSRASTERDATAPROVIDERTEMPORALPROPERTIES_H
|
||||
#endif // QGSRASTERDATAPROVIDERTEMPORALCAPABILITIES_H
|
@ -110,8 +110,6 @@ QgsRasterLayerTemporalProperties::TemporalMode QgsRasterLayerTemporalProperties:
|
||||
return TemporalMode::ModeFixedTemporalRange;
|
||||
case 1:
|
||||
return TemporalMode::ModeTemporalRangeFromDataProvider;
|
||||
case 2:
|
||||
return TemporalMode::ModeTemporalRangesList;
|
||||
default:
|
||||
return TemporalMode::ModeFixedTemporalRange;
|
||||
}
|
||||
|
@ -52,7 +52,6 @@ class CORE_EXPORT QgsRasterLayerTemporalProperties : public QgsMapLayerTemporalP
|
||||
{
|
||||
ModeFixedTemporalRange, //! Mode when temporal properties have fixed start and end datetimes.
|
||||
ModeTemporalRangeFromDataProvider, //! Mode when raster layer depends on temporal range from its data provider.
|
||||
ModeTemporalRangesList //! To be used when raster layer has list of temporal ranges.
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,7 @@ SET(QGIS_GUI_SRCS
|
||||
raster/qgsrasterbandcombobox.cpp
|
||||
raster/qgsrasterhistogramwidget.cpp
|
||||
raster/qgsrasterlayerproperties.cpp
|
||||
raster/qgsrasterlayertemporalpropertieswidget.cpp
|
||||
raster/qgsrasterminmaxwidget.cpp
|
||||
raster/qgsrasterrendererwidget.cpp
|
||||
raster/qgssinglebandgrayrendererwidget.cpp
|
||||
@ -457,7 +458,6 @@ SET(QGIS_GUI_SRCS
|
||||
qgstabwidget.cpp
|
||||
qgstablewidgetitem.cpp
|
||||
qgstaskmanagerwidget.cpp
|
||||
qgstemporallayerwidget.cpp
|
||||
qgstextformatwidget.cpp
|
||||
qgstextpreview.cpp
|
||||
qgstreewidgetitem.cpp
|
||||
@ -668,7 +668,6 @@ SET(QGIS_GUI_HDRS
|
||||
qgstablewidgetitem.h
|
||||
qgstabwidget.h
|
||||
qgstaskmanagerwidget.h
|
||||
qgstemporallayerwidget.h
|
||||
qgstextformatwidget.h
|
||||
qgstextpreview.h
|
||||
qgstreewidgetitem.h
|
||||
@ -914,6 +913,7 @@ SET(QGIS_GUI_HDRS
|
||||
raster/qgssinglebandgrayrendererwidget.h
|
||||
raster/qgssinglebandpseudocolorrendererwidget.h
|
||||
raster/qgsrasterlayerproperties.h
|
||||
raster/qgsrasterlayertemporalpropertieswidget.h
|
||||
|
||||
symbology/characterwidget.h
|
||||
symbology/qgs25drendererwidget.h
|
||||
|
@ -59,7 +59,7 @@
|
||||
#include "qgsfileutils.h"
|
||||
#include "qgswebview.h"
|
||||
|
||||
#include "qgstemporallayerwidget.h"
|
||||
#include "qgsrasterlayertemporalpropertieswidget.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QTableWidgetItem>
|
||||
@ -274,14 +274,12 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer *lyr, QgsMapCanv
|
||||
// Temporal options
|
||||
|
||||
if ( mRasterLayer->temporalProperties()->isActive() ||
|
||||
mRasterLayer->dataProvider()->temporalProperties()->isActive() )
|
||||
mRasterLayer->dataProvider()->temporalCapabilities()->isActive() )
|
||||
{
|
||||
QVBoxLayout *temporalLayout = new QVBoxLayout( temporalFrame );
|
||||
mTemporalLayerWidget = new QgsTemporalLayerWidget( this, mRasterLayer );
|
||||
mTemporalLayerWidget->setMapCanvas( mMapCanvas );
|
||||
temporalLayout->addWidget( mTemporalLayerWidget );
|
||||
|
||||
// TODO set lower and upper limits in datetimeedit inputs
|
||||
mTemporalWidget = new QgsRasterLayerTemporalPropertiesWidget( this, mRasterLayer );
|
||||
mTemporalWidget->setMapCanvas( mMapCanvas );
|
||||
temporalLayout->addWidget( mTemporalWidget );
|
||||
|
||||
}
|
||||
|
||||
@ -1111,7 +1109,7 @@ void QgsRasterLayerProperties::apply()
|
||||
mRasterLayer->setCustomProperty( "WMSBackgroundLayer", mBackgroundLayerCheckBox->isChecked() );
|
||||
|
||||
// Update temporal properties
|
||||
mTemporalLayerWidget->saveTemporalProperties();
|
||||
mTemporalWidget->saveTemporalProperties();
|
||||
|
||||
// Force a redraw of the legend
|
||||
mRasterLayer->setLegend( QgsMapLayerLegend::defaultRasterLegend( mRasterLayer ) );
|
||||
|
@ -37,7 +37,7 @@ class QgsMetadataWidget;
|
||||
class QgsRasterRenderer;
|
||||
class QgsRasterRendererWidget;
|
||||
class QgsRasterHistogramWidget;
|
||||
class QgsTemporalLayerWidget;
|
||||
class QgsRasterLayerTemporalPropertiesWidget;
|
||||
class QgsWebView;
|
||||
|
||||
|
||||
@ -204,7 +204,7 @@ class GUI_EXPORT QgsRasterLayerProperties : public QgsOptionsDialogBase, private
|
||||
/**
|
||||
* Widget with temporal inputs, to be used by temporal based raster layers.
|
||||
*/
|
||||
QgsTemporalLayerWidget *mTemporalLayerWidget = nullptr;
|
||||
QgsRasterLayerTemporalPropertiesWidget *mTemporalWidget = nullptr;
|
||||
|
||||
bool rasterIsMultiBandColor();
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgstemporallayerwidget.cpp
|
||||
qgsrasterlayertemporalpropertieswidget.cpp
|
||||
------------------------------
|
||||
begin : January 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -15,80 +15,80 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "qgstemporallayerwidget.h"
|
||||
#include "qgsrasterlayertemporalpropertieswidget.h"
|
||||
#include "qgsgui.h"
|
||||
#include "qgsproject.h"
|
||||
|
||||
QgsTemporalLayerWidget::QgsTemporalLayerWidget( QWidget *parent, QgsMapLayer *layer )
|
||||
QgsRasterLayerTemporalPropertiesWidget::QgsRasterLayerTemporalPropertiesWidget( QWidget *parent, QgsMapLayer *layer )
|
||||
: QWidget( parent )
|
||||
, mLayer( layer )
|
||||
{
|
||||
setupUi( this );
|
||||
connect( mSetEndAsStartNormalButton, &QPushButton::clicked, this, &QgsTemporalLayerWidget::setEndAsStartNormalButton_clicked );
|
||||
connect( mSetEndAsStartReferenceButton, &QPushButton::clicked, this, &QgsTemporalLayerWidget::setEndAsStartReferenceButton_clicked );
|
||||
connect( mLayerRadioButton, &QRadioButton::clicked, this, &QgsTemporalLayerWidget::layerRadioButton_clicked );
|
||||
connect( mProjectRadioButton, &QRadioButton::clicked, this, &QgsTemporalLayerWidget::projectRadioButton_clicked );
|
||||
connect( mReferenceCheckBox, &QCheckBox::clicked, this, &QgsTemporalLayerWidget::referenceCheckBox_clicked );
|
||||
connect( mSetEndAsStartNormalButton, &QPushButton::clicked, this, &QgsRasterLayerTemporalPropertiesWidget::setEndAsStartNormalButton_clicked );
|
||||
connect( mSetEndAsStartReferenceButton, &QPushButton::clicked, this, &QgsRasterLayerTemporalPropertiesWidget::setEndAsStartReferenceButton_clicked );
|
||||
connect( mLayerRadioButton, &QRadioButton::clicked, this, &QgsRasterLayerTemporalPropertiesWidget::layerRadioButton_clicked );
|
||||
connect( mProjectRadioButton, &QRadioButton::clicked, this, &QgsRasterLayerTemporalPropertiesWidget::projectRadioButton_clicked );
|
||||
connect( mReferenceCheckBox, &QCheckBox::clicked, this, &QgsRasterLayerTemporalPropertiesWidget::referenceCheckBox_clicked );
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::setEndAsStartNormalButton_clicked()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::setEndAsStartNormalButton_clicked()
|
||||
{
|
||||
mEndTemporalDateTimeEdit->setDateTime( mStartTemporalDateTimeEdit->dateTime() );
|
||||
// Update current selection label
|
||||
// updateRangeLabel( "layer", mRangeLabel );
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::setEndAsStartReferenceButton_clicked()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::setEndAsStartReferenceButton_clicked()
|
||||
{
|
||||
mEndReferenceDateTimeEdit->setDateTime( mStartReferenceDateTimeEdit->dateTime() );
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::layerRadioButton_clicked()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::layerRadioButton_clicked()
|
||||
{
|
||||
if ( mLayerRadioButton->isChecked() )
|
||||
{
|
||||
setInputWidgetState( "normal", true );
|
||||
setInputWidgetState( TemporalDimension::NormalTemporal, true );
|
||||
// updateRangeLabel( "layer", mRangeLabel );
|
||||
mProjectRadioButton->setChecked( false );
|
||||
}
|
||||
else
|
||||
setInputWidgetState( "normal", false );
|
||||
setInputWidgetState( TemporalDimension::NormalTemporal, false );
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::projectRadioButton_clicked()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::projectRadioButton_clicked()
|
||||
{
|
||||
if ( mProjectRadioButton->isChecked() )
|
||||
{
|
||||
mLayerRadioButton->setChecked( false );
|
||||
setInputWidgetState( "normal", false );
|
||||
setInputWidgetState( TemporalDimension::NormalTemporal, false );
|
||||
// updateRangeLabel( "project", mRangeLabel );
|
||||
}
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::referenceCheckBox_clicked()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::referenceCheckBox_clicked()
|
||||
{
|
||||
if ( mReferenceCheckBox->isChecked() )
|
||||
setInputWidgetState( "reference", true );
|
||||
setInputWidgetState( TemporalDimension::BiTemporal, true );
|
||||
else
|
||||
setInputWidgetState( "reference", false );
|
||||
setInputWidgetState( TemporalDimension::BiTemporal, false );
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::init()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::init()
|
||||
{
|
||||
mLayerRadioButton->setChecked( true );
|
||||
setInputWidgetState( "reference", false );
|
||||
setInputWidgetState( TemporalDimension::BiTemporal, false );
|
||||
setDateTimeInputsLimit();
|
||||
|
||||
// updateRangeLabel( "layer", mRangeLabel );
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::setDateTimeInputsLimit()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::setDateTimeInputsLimit()
|
||||
{
|
||||
QgsRasterLayer *layer = qobject_cast<QgsRasterLayer *>( mLayer );
|
||||
QgsDateTimeRange range = layer->dataProvider()->temporalProperties()->fixedTemporalRange();
|
||||
QgsDateTimeRange referenceRange = layer->dataProvider()->temporalProperties()->fixedReferenceTemporalRange();
|
||||
QgsDateTimeRange range = layer->dataProvider()->temporalCapabilities()->fixedTemporalRange();
|
||||
QgsDateTimeRange referenceRange = layer->dataProvider()->temporalCapabilities()->fixedReferenceTemporalRange();
|
||||
|
||||
if ( range.begin().isValid() && range.end().isValid() )
|
||||
{
|
||||
@ -102,15 +102,15 @@ void QgsTemporalLayerWidget::setDateTimeInputsLimit()
|
||||
}
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::setInputWidgetState( QString type, bool enabled )
|
||||
void QgsRasterLayerTemporalPropertiesWidget::setInputWidgetState( TemporalDimension dimension, bool enabled )
|
||||
{
|
||||
if ( type == "normal" )
|
||||
if ( dimension == TemporalDimension::NormalTemporal )
|
||||
{
|
||||
mStartTemporalDateTimeEdit->setEnabled( enabled );
|
||||
mEndTemporalDateTimeEdit->setEnabled( enabled );
|
||||
mSetEndAsStartNormalButton->setEnabled( enabled );
|
||||
}
|
||||
else if ( type == "reference" )
|
||||
else if ( dimension == TemporalDimension::BiTemporal )
|
||||
{
|
||||
mStartReferenceDateTimeEdit->setEnabled( enabled );
|
||||
mEndReferenceDateTimeEdit->setEnabled( enabled );
|
||||
@ -118,12 +118,12 @@ void QgsTemporalLayerWidget::setInputWidgetState( QString type, bool enabled )
|
||||
}
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::setMapCanvas( QgsMapCanvas *canvas )
|
||||
void QgsRasterLayerTemporalPropertiesWidget::setMapCanvas( QgsMapCanvas *canvas )
|
||||
{
|
||||
mCanvas = canvas;
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::saveTemporalProperties()
|
||||
void QgsRasterLayerTemporalPropertiesWidget::saveTemporalProperties()
|
||||
{
|
||||
if ( mLayerRadioButton->isChecked() )
|
||||
{
|
||||
@ -133,12 +133,12 @@ void QgsTemporalLayerWidget::saveTemporalProperties()
|
||||
QgsDateTimeRange normalRange = QgsDateTimeRange( mStartTemporalDateTimeEdit->dateTime(),
|
||||
mEndTemporalDateTimeEdit->dateTime() );
|
||||
QgsRasterLayer *rasterLayer = qobject_cast<QgsRasterLayer *>( mLayer );
|
||||
rasterLayer->dataProvider()->temporalProperties()->setTemporalRange( normalRange );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setTemporalRange( normalRange );
|
||||
|
||||
if ( mDisableTime->isChecked() )
|
||||
rasterLayer->dataProvider()->temporalProperties()->setEnableTime( false );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setEnableTime( false );
|
||||
else
|
||||
rasterLayer->dataProvider()->temporalProperties()->setEnableTime( true );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setEnableTime( true );
|
||||
|
||||
// Update current selection label
|
||||
// updateRangeLabel( "layer", mRangeLabel );
|
||||
@ -147,11 +147,11 @@ void QgsTemporalLayerWidget::saveTemporalProperties()
|
||||
{
|
||||
QgsDateTimeRange referenceRange = QgsDateTimeRange( mStartReferenceDateTimeEdit->dateTime(),
|
||||
mEndReferenceDateTimeEdit->dateTime() );
|
||||
rasterLayer->dataProvider()->temporalProperties()->setReferenceTemporalRange( referenceRange );
|
||||
rasterLayer->dataProvider()->temporalProperties()->setReferenceEnable( true );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setReferenceTemporalRange( referenceRange );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setReferenceEnable( true );
|
||||
}
|
||||
else
|
||||
rasterLayer->dataProvider()->temporalProperties()->setReferenceEnable( false );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setReferenceEnable( false );
|
||||
}
|
||||
|
||||
if ( mProjectRadioButton->isChecked() )
|
||||
@ -159,20 +159,19 @@ void QgsTemporalLayerWidget::saveTemporalProperties()
|
||||
if ( mLayer->type() == QgsMapLayerType::RasterLayer &&
|
||||
mLayer->providerType() == "wms" )
|
||||
{
|
||||
QgsDateTimeRange projectRange = mCanvas->mapSettings().temporalRange();
|
||||
QgsRasterLayer *rasterLayer = qobject_cast<QgsRasterLayer *> ( mLayer );
|
||||
rasterLayer->dataProvider()->temporalProperties()->setTemporalRange( projectRange );
|
||||
// rasterLayer->dataProvider()->temporalCapabilities()->setTemporalRange( projectRange );
|
||||
|
||||
if ( mReferenceCheckBox->isChecked() )
|
||||
rasterLayer->dataProvider()->temporalProperties()->setReferenceEnable( true );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setReferenceEnable( true );
|
||||
else
|
||||
rasterLayer->dataProvider()->temporalProperties()->setReferenceEnable( false );
|
||||
rasterLayer->dataProvider()->temporalCapabilities()->setReferenceEnable( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QgsTemporalLayerWidget::updateRangeLabel( QString type, QLabel *label )
|
||||
void QgsRasterLayerTemporalPropertiesWidget::updateRangeLabel( QString type, QLabel *label )
|
||||
{
|
||||
if ( type == "layer" )
|
||||
label->setText( tr( "Current selection range: %1 to %2" ).arg(
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgstemporallayerwidget.h
|
||||
qgsrasterlayertemporalpropertieswidget.h
|
||||
------------------------------
|
||||
begin : January 2020
|
||||
copyright : (C) 2020 by Samweli Mwakisambwe
|
||||
@ -15,34 +15,33 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef QGSTEMPORALLAYERWIDGET_H
|
||||
#define QGSTEMPORALLAYERWIDGET_H
|
||||
#ifndef QGSRASTERLAYERTEMPORALPROPERTIESWIDGET_H
|
||||
#define QGSRASTERLAYERTEMPORALPROPERTIESWIDGET_H
|
||||
|
||||
#include "ui_qgstemporallayerwidgetbase.h"
|
||||
#include "ui_qgsrasterlayertemporalpropertieswidgetbase.h"
|
||||
#include "qgis_gui.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgsrasterlayer.h"
|
||||
|
||||
|
||||
class QgsMapLayer;
|
||||
|
||||
/**
|
||||
* \ingroup gui
|
||||
* \class QgsTemporalLayerWidget
|
||||
* A widget for filtering temporal layer based on its available time values
|
||||
* \class QgsRasterLayerTemporalPropertiesWidget
|
||||
* A widget for configuring the temporal properties for a raster layer.
|
||||
*
|
||||
* \since QGIS 3.14
|
||||
*/
|
||||
|
||||
class GUI_EXPORT QgsTemporalLayerWidget : public QWidget, private Ui::QgsTemporalLayerWidgetBase
|
||||
class GUI_EXPORT QgsRasterLayerTemporalPropertiesWidget : public QWidget, private Ui::QgsRasterLayerTemporalPropertiesWidgetBase
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsTemporalLayerWidget.
|
||||
* Constructor for QgsRasterLayerTemporalPropertiesWidget.
|
||||
*/
|
||||
QgsTemporalLayerWidget( QWidget *parent = nullptr, QgsMapLayer *layer = nullptr );
|
||||
QgsRasterLayerTemporalPropertiesWidget( QWidget *parent = nullptr, QgsMapLayer *layer = nullptr );
|
||||
|
||||
/**
|
||||
* Sets the map canvas associtated with this temporal widget.
|
||||
@ -55,6 +54,39 @@ class GUI_EXPORT QgsTemporalLayerWidget : public QWidget, private Ui::QgsTempora
|
||||
*/
|
||||
void saveTemporalProperties();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Initialize the widget with default state.
|
||||
*/
|
||||
void init();
|
||||
|
||||
/**
|
||||
* Map canvas associtated with this temporal widget.
|
||||
*
|
||||
* This can be used to get current project map settings.
|
||||
*/
|
||||
QgsMapCanvas *mCanvas = nullptr;
|
||||
|
||||
/**
|
||||
* The corresponding map layer with temporal attributes
|
||||
*/
|
||||
QgsMapLayer *mLayer = nullptr;
|
||||
|
||||
/**
|
||||
* Mode used to determine if temporal properties dimensional status.
|
||||
*/
|
||||
enum TemporalDimension
|
||||
{
|
||||
NormalTemporal, //! When temporal properties have single temporal dimension.
|
||||
|
||||
/**
|
||||
* When temporal properties have bi-temporal dimension,
|
||||
* eg. have normal time and reference time or reference time only.
|
||||
*/
|
||||
BiTemporal
|
||||
};
|
||||
|
||||
private slots:
|
||||
|
||||
/**
|
||||
@ -86,10 +118,10 @@ class GUI_EXPORT QgsTemporalLayerWidget : public QWidget, private Ui::QgsTempora
|
||||
/**
|
||||
* Sets the input widgets enable state in this temporal widget.
|
||||
*
|
||||
* \param type widget type
|
||||
* \param dimension determine to either enable normal time or reference time.
|
||||
* \param enabled new enable status
|
||||
*/
|
||||
void setInputWidgetState( QString type, bool enabled );
|
||||
void setInputWidgetState( TemporalDimension dimension, bool enabled );
|
||||
|
||||
/**
|
||||
* Updates the range label with current set datetime range.
|
||||
@ -104,31 +136,5 @@ class GUI_EXPORT QgsTemporalLayerWidget : public QWidget, private Ui::QgsTempora
|
||||
**/
|
||||
void setDateTimeInputsLimit();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Initialize the widget with default state.
|
||||
*/
|
||||
void init();
|
||||
|
||||
/**
|
||||
* Map canvas associtated with this temporal widget.
|
||||
*
|
||||
* This can be used to get current project map settings.
|
||||
*/
|
||||
QgsMapCanvas *mCanvas = nullptr;
|
||||
|
||||
/**
|
||||
* Update temporal layer Uri
|
||||
*
|
||||
*/
|
||||
QString updateTemporalDataSource( QString sourceUri, QgsDateTimeRange sourceRange );
|
||||
|
||||
/**
|
||||
* The corresponding map layer with temporal attributes
|
||||
*/
|
||||
QgsMapLayer *mLayer = nullptr;
|
||||
|
||||
|
||||
};
|
||||
#endif // QGSTEMPORALLAYERWIDGET_H
|
||||
#endif // QGSRASTERLAYERTEMPORALPROPERTIESWIDGET_H
|
@ -273,25 +273,23 @@ QgsDateTimeRange QgsWmsSettings::parseTemporalExtent( QgsWmstDimensionExtent dim
|
||||
QgsWmstResolution QgsWmsSettings::parseWmstResolution( QString item )
|
||||
{
|
||||
QgsWmstResolution resolution;
|
||||
char datesSymbols[] = { 'Y', 'M', 'D' };
|
||||
char timesSymbols[] = { 'H', 'M', 'S' };
|
||||
|
||||
for ( int i = 0; i < 3; i++ )
|
||||
for ( char datesSymbol : { 'Y', 'M', 'D' } )
|
||||
{
|
||||
QString number = item.left( item.indexOf( datesSymbols[i] ) );
|
||||
QString number = item.left( item.indexOf( datesSymbol ) );
|
||||
int resolutionValue = number.remove( 'P' ).toInt();
|
||||
|
||||
if ( datesSymbols[i] == 'Y' && item.contains( 'Y' ) )
|
||||
if ( datesSymbol == 'Y' && item.contains( 'Y' ) )
|
||||
{
|
||||
resolution.year = resolutionValue;
|
||||
item = item.remove( number );
|
||||
}
|
||||
if ( datesSymbols[i] == 'M' && item.contains( 'M' ) )
|
||||
if ( datesSymbol == 'M' && item.contains( 'M' ) )
|
||||
{
|
||||
resolution.month = resolutionValue;
|
||||
item = item.remove( number );
|
||||
}
|
||||
if ( datesSymbols[i] == 'D' && item.contains( 'D' ) )
|
||||
if ( datesSymbol == 'D' && item.contains( 'D' ) )
|
||||
{
|
||||
resolution.day = resolutionValue;
|
||||
item = item.remove( number );
|
||||
@ -303,22 +301,22 @@ QgsWmstResolution QgsWmsSettings::parseWmstResolution( QString item )
|
||||
else
|
||||
item.remove( 'T' );
|
||||
|
||||
for ( int i = 0; i < 3; i++ )
|
||||
for ( char timeSymbol : { 'H', 'M', 'S' } )
|
||||
{
|
||||
QString number = item.left( item.indexOf( timesSymbols[i] ) );
|
||||
QString number = item.left( item.indexOf( timeSymbol ) );
|
||||
int resolutionValue = number.remove( 'P' ).toInt();
|
||||
|
||||
if ( timesSymbols[i] == 'H' && item.contains( 'H' ) )
|
||||
if ( timeSymbol == 'H' && item.contains( 'H' ) )
|
||||
{
|
||||
resolution.hour = resolutionValue;
|
||||
item = item.remove( number );
|
||||
}
|
||||
if ( timesSymbols[i] == 'M' && item.contains( 'M' ) )
|
||||
if ( timeSymbol == 'M' && item.contains( 'M' ) )
|
||||
{
|
||||
resolution.minutes = resolutionValue;
|
||||
item = item.remove( number );
|
||||
}
|
||||
if ( timesSymbols[i] == 'S' && item.contains( 'S' ) )
|
||||
if ( timeSymbol == 'S' && item.contains( 'S' ) )
|
||||
{
|
||||
resolution.seconds = resolutionValue;
|
||||
item = item.remove( number );
|
||||
|
@ -154,11 +154,11 @@ QgsWmsProvider::QgsWmsProvider( QString const &uri, const ProviderOptions &optio
|
||||
// Setup temporal properties for layers in WMS-T
|
||||
if ( mSettings.mIsTemporal )
|
||||
{
|
||||
temporalProperties()->setFixedTemporalRange( mSettings.mFixedRange );
|
||||
temporalCapabilities()->setFixedTemporalRange( mSettings.mFixedRange );
|
||||
if ( mSettings.mIsBiTemporal )
|
||||
{
|
||||
temporalProperties()->setFixedReferenceTemporalRange( mSettings.mFixedReferenceRange );
|
||||
temporalProperties()->setHasReference( true );
|
||||
temporalCapabilities()->setFixedReferenceTemporalRange( mSettings.mFixedReferenceRange );
|
||||
temporalCapabilities()->setHasReference( true );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1044,7 +1044,7 @@ QUrl QgsWmsProvider::createRequestUrlWMS( const QgsRectangle &viewExtent, int pi
|
||||
setQueryItem( query, QStringLiteral( "STYLES" ), styles );
|
||||
|
||||
// For WMS-T layers
|
||||
if ( temporalProperties()->isActive() )
|
||||
if ( temporalCapabilities()->isActive() )
|
||||
{
|
||||
addWmstParameters( query );
|
||||
}
|
||||
@ -1077,10 +1077,10 @@ QUrl QgsWmsProvider::createRequestUrlWMS( const QgsRectangle &viewExtent, int pi
|
||||
|
||||
void QgsWmsProvider::addWmstParameters( QUrlQuery &query )
|
||||
{
|
||||
QgsDateTimeRange range = temporalProperties()->temporalRange();
|
||||
QgsDateTimeRange range = temporalCapabilities()->temporalRange();
|
||||
QString format = "yyyy-MM-ddThh:mm:ssZ";
|
||||
|
||||
if ( !temporalProperties()->isTimeEnabled() )
|
||||
if ( !temporalCapabilities()->isTimeEnabled() )
|
||||
format = "yyyy-MM-dd";
|
||||
|
||||
if ( range.begin().isValid() && range.end().isValid() )
|
||||
@ -1098,10 +1098,10 @@ void QgsWmsProvider::addWmstParameters( QUrlQuery &query )
|
||||
}
|
||||
}
|
||||
// If the data provider has bi-temporal properties and they are enabled
|
||||
if ( temporalProperties()->hasReference() &&
|
||||
temporalProperties()->isReferenceEnable() )
|
||||
if ( temporalCapabilities()->hasReference() &&
|
||||
temporalCapabilities()->isReferenceEnable() )
|
||||
{
|
||||
QgsDateTimeRange referenceRange = temporalProperties()->referenceTemporalRange();
|
||||
QgsDateTimeRange referenceRange = temporalCapabilities()->referenceTemporalRange();
|
||||
|
||||
if ( referenceRange.begin() == referenceRange.end() )
|
||||
setQueryItem( query, QStringLiteral( "DIM_REFERENCE" ),
|
||||
|
@ -14,7 +14,6 @@ FILE(GLOB _3D_UIS "${CMAKE_CURRENT_SOURCE_DIR}/3d/*.ui")
|
||||
FILE(GLOB CALLOUT_UIS "${CMAKE_CURRENT_SOURCE_DIR}/callouts/*.ui")
|
||||
FILE(GLOB NUMERICFORMAT_UIS "${CMAKE_CURRENT_SOURCE_DIR}/numericformats/*.ui")
|
||||
FILE(GLOB ATTRIBUTEFORMCONFIG_UIS "${CMAKE_CURRENT_SOURCE_DIR}/attributeformconfig/*.ui")
|
||||
FILE(GLOB TEMPORALWIDGET_UIS "${CMAKE_CURRENT_SOURCE_DIR}/temporalwidgets/*.ui")
|
||||
|
||||
QT5_WRAP_UI(QGIS_UIS_H
|
||||
${QGIS_UIS}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QgsTemporalLayerWidgetBase</class>
|
||||
<widget class="QWidget" name="QgsTemporalLayerWidgetBase">
|
||||
<class>QgsRasterLayerTemporalPropertiesWidgetBase</class>
|
||||
<widget class="QWidget" name="QgsRasterLayerTemporalPropertiesWidgetBase">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@ -57,7 +57,7 @@
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}
|
||||
background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}</string>
|
||||
background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; margin-left: 20px; margin-right: 5px; left: 0px; top: 1px;}</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Temporal</string>
|
@ -1024,14 +1024,14 @@ void TestQgsRasterLayer::testTemporalProperties()
|
||||
|
||||
QCOMPARE( temporalProperties->mode(), QgsRasterLayerTemporalProperties::TemporalMode::ModeFixedTemporalRange );
|
||||
|
||||
temporalProperties->setMode( QgsRasterLayerTemporalProperties::TemporalMode::ModeTemporalRangesList );
|
||||
temporalProperties->setMode( QgsRasterLayerTemporalProperties::TemporalMode::ModeTemporalRangeFromDataProvider );
|
||||
|
||||
// Change temporal properties, save the xml
|
||||
QDomElement element = temporalProperties->writeXml( elementRoot, document, QgsReadWriteContext() );
|
||||
|
||||
// Restore
|
||||
QVERIFY( temporalProperties->readXml( element, QgsReadWriteContext() ) );
|
||||
QCOMPARE( temporalProperties->mode(), QgsRasterLayerTemporalProperties::TemporalMode::ModeTemporalRangesList );
|
||||
QCOMPARE( temporalProperties->mode(), QgsRasterLayerTemporalProperties::TemporalMode::ModeTemporalRangeFromDataProvider );
|
||||
|
||||
QCOMPARE( mTemporalRasterLayer->temporalProperties()->fixedTemporalRange().begin(), dateTimeRange.begin() );
|
||||
QCOMPARE( mTemporalRasterLayer->temporalProperties()->fixedTemporalRange().end(), dateTimeRange.end() );
|
||||
|
Loading…
x
Reference in New Issue
Block a user