mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
Refactorize server properties
This commit is contained in:
parent
21c3f3fcbf
commit
ee6acb0ca2
@ -0,0 +1,2 @@
|
||||
# The following has been generated automatically from src/core/qgsmaplayerserverproperties.h
|
||||
QgsServerWmsDimensionProperties.PredefinedWmsDimensionName.baseClass = QgsServerWmsDimensionProperties
|
||||
@ -1,2 +0,0 @@
|
||||
# The following has been generated automatically from src/core/vector/qgsvectorlayerserverproperties.h
|
||||
QgsVectorLayerServerProperties.PredefinedWmsDimensionName.baseClass = QgsVectorLayerServerProperties
|
||||
@ -376,24 +376,18 @@ Attribution indicates the provider of a layer or collection of layers.
|
||||
%End
|
||||
|
||||
|
||||
|
||||
virtual QgsMapLayerServerProperties *serverProperties();
|
||||
QgsMapLayerServerProperties *serverProperties();
|
||||
%Docstring
|
||||
Returns QGIS Server Properties for the map layer
|
||||
|
||||
.. versionadded:: 3.22
|
||||
%End
|
||||
|
||||
|
||||
|
||||
void setMetadataUrl( const QString &metaUrl );
|
||||
%Docstring
|
||||
Sets the metadata URL of the layer
|
||||
used by QGIS Server in GetCapabilities request.
|
||||
MetadataUrl is a a link to the detailed, standardized metadata about the data.
|
||||
Since QGIS 3.22, it edits the first metadata URL link. You should use setServerProperties.
|
||||
|
||||
.. seealso:: :py:func:`setServerProperties`
|
||||
Since QGIS 3.22, it edits the first metadata URL link.
|
||||
|
||||
.. deprecated:: QGIS 3.22
|
||||
%End
|
||||
@ -403,7 +397,7 @@ Since QGIS 3.22, it edits the first metadata URL link. You should use setServerP
|
||||
Returns the metadata URL of the layer
|
||||
used by QGIS Server in GetCapabilities request.
|
||||
MetadataUrl is a a link to the detailed, standardized metadata about the data.
|
||||
Since QGIS 3.22, it returns the first metadata URL link. You should use setServerProperties.
|
||||
Since QGIS 3.22, it returns the first metadata URL link.
|
||||
|
||||
:return: the layer metadata URL
|
||||
|
||||
@ -417,7 +411,7 @@ Since QGIS 3.22, it returns the first metadata URL link. You should use setServe
|
||||
Set the metadata type of the layer
|
||||
used by QGIS Server in GetCapabilities request
|
||||
MetadataUrlType indicates the standard to which the metadata complies.
|
||||
Since QGIS 3.22, it edits the first metadata URL type. You should use setServerProperties.
|
||||
Since QGIS 3.22, it edits the first metadata URL type.
|
||||
|
||||
:return: the layer metadata type
|
||||
|
||||
@ -431,7 +425,7 @@ Since QGIS 3.22, it edits the first metadata URL type. You should use setServerP
|
||||
Returns the metadata type of the layer
|
||||
used by QGIS Server in GetCapabilities request.
|
||||
MetadataUrlType indicates the standard to which the metadata complies.
|
||||
Since QGIS 3.22, it returns the first metadata URL type. You should use setServerProperties.
|
||||
Since QGIS 3.22, it returns the first metadata URL type.
|
||||
|
||||
:return: the layer metadata type
|
||||
|
||||
@ -445,7 +439,7 @@ Since QGIS 3.22, it returns the first metadata URL type. You should use setServe
|
||||
Sets the metadata format of the layer
|
||||
used by QGIS Server in GetCapabilities request.
|
||||
MetadataUrlType indicates how the metadata is structured.
|
||||
Since QGIS 3.22, it edits the first metadata URL format. You should use setServerProperties.
|
||||
Since QGIS 3.22, it edits the first metadata URL format.
|
||||
|
||||
.. seealso:: :py:func:`mapLayerServerProperties`
|
||||
|
||||
@ -457,7 +451,7 @@ Since QGIS 3.22, it edits the first metadata URL format. You should use setServe
|
||||
Returns the metadata format of the layer
|
||||
used by QGIS Server in GetCapabilities request.
|
||||
MetadataUrlType indicates how the metadata is structured.
|
||||
Since QGIS 3.22, it returns the first metadata URL format. You should use setServerProperties.
|
||||
Since QGIS 3.22, it returns the first metadata URL format.
|
||||
|
||||
:return: the layer metadata format
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
|
||||
|
||||
class QgsMapLayerServerProperties
|
||||
class QgsServerMetadataUrlProperties
|
||||
{
|
||||
%Docstring(signature="appended")
|
||||
Manages QGIS Server properties for a map layer
|
||||
@ -42,9 +42,172 @@ Constructor for MetadataUrl.
|
||||
QString format;
|
||||
|
||||
|
||||
bool operator==( const QgsMapLayerServerProperties::MetadataUrl &other ) const;
|
||||
bool operator==( const QgsServerMetadataUrlProperties::MetadataUrl &other ) const;
|
||||
};
|
||||
|
||||
virtual ~QgsServerMetadataUrlProperties();
|
||||
|
||||
QList<QgsServerMetadataUrlProperties::MetadataUrl> metadataUrls() const;
|
||||
%Docstring
|
||||
Returns a list of metadataUrl resources associated for the layer.
|
||||
|
||||
:return: the list of metadata URLs
|
||||
|
||||
.. seealso:: :py:func:`setMetadataUrls`
|
||||
%End
|
||||
void setMetadataUrls( const QList<QgsServerMetadataUrlProperties::MetadataUrl> &metaUrls );
|
||||
%Docstring
|
||||
Sets a the list of metadata URL for the layer
|
||||
|
||||
.. seealso:: :py:func:`metadataUrls`
|
||||
|
||||
.. seealso:: :py:func:`addMetadataUrl`
|
||||
%End
|
||||
void addMetadataUrl( const QgsServerMetadataUrlProperties::MetadataUrl &metaUrl );
|
||||
%Docstring
|
||||
Add a metadataUrl for the layer
|
||||
|
||||
.. seealso:: :py:func:`setMetadataUrls`
|
||||
%End
|
||||
virtual const QgsMapLayer *layer() const = 0;
|
||||
%Docstring
|
||||
Get parent layer
|
||||
%End
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
class QgsServerWmsDimensionProperties
|
||||
{
|
||||
%Docstring(signature="appended")
|
||||
Manages QGIS Server properties for Wms dimensions
|
||||
|
||||
.. versionadded:: 3.22
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
%End
|
||||
public:
|
||||
static const QMetaObject staticMetaObject;
|
||||
|
||||
public:
|
||||
|
||||
enum PredefinedWmsDimensionName
|
||||
{
|
||||
TIME,
|
||||
DATE,
|
||||
ELEVATION
|
||||
};
|
||||
|
||||
struct WmsDimensionInfo
|
||||
{
|
||||
|
||||
enum DefaultDisplay
|
||||
{
|
||||
AllValues,
|
||||
MinValue,
|
||||
MaxValue,
|
||||
ReferenceValue,
|
||||
};
|
||||
|
||||
explicit WmsDimensionInfo( const QString &dimName,
|
||||
const QString &dimFieldName,
|
||||
const QString &dimEndFieldName = QString(),
|
||||
const QString &dimUnits = QString(),
|
||||
const QString &dimUnitSymbol = QString(),
|
||||
const int &dimDefaultDisplayType = QgsServerWmsDimensionProperties::WmsDimensionInfo::AllValues,
|
||||
const QVariant &dimReferenceValue = QVariant() );
|
||||
%Docstring
|
||||
Constructor for WmsDimensionInfo.
|
||||
%End
|
||||
QString name;
|
||||
QString fieldName;
|
||||
QString endFieldName;
|
||||
QString units;
|
||||
QString unitSymbol;
|
||||
int defaultDisplayType;
|
||||
QVariant referenceValue;
|
||||
};
|
||||
|
||||
virtual ~QgsServerWmsDimensionProperties();
|
||||
|
||||
static QMap<int, QString> wmsDimensionDefaultDisplayLabels();
|
||||
%Docstring
|
||||
Returns WMS Dimension default display labels
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
bool addWmsDimension( const QgsServerWmsDimensionProperties::WmsDimensionInfo &wmsDimInfo );
|
||||
%Docstring
|
||||
Adds a QGIS Server WMS Dimension
|
||||
|
||||
:param wmsDimInfo: QGIS Server WMS Dimension object with, name, field, etc
|
||||
|
||||
:return: ``True`` if QGIS Server WMS Dimension has been successfully added
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
bool removeWmsDimension( const QString &wmsDimName );
|
||||
%Docstring
|
||||
Removes a QGIS Server WMS Dimension
|
||||
|
||||
:return: ``True`` if QGIS Server WMS Dimension was found and successfully removed
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
void setWmsDimensions( const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> &dimensions );
|
||||
%Docstring
|
||||
Set WMS Dimensions
|
||||
|
||||
:param the: new dimensions that replace the current ones.
|
||||
%End
|
||||
|
||||
const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> wmsDimensions() const;
|
||||
%Docstring
|
||||
Returns the QGIS Server WMS Dimension list.
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
virtual const QgsMapLayer *layer() const = 0;
|
||||
%Docstring
|
||||
Get parent layer
|
||||
%End
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
class QgsMapLayerServerProperties: QgsServerMetadataUrlProperties, QgsServerWmsDimensionProperties
|
||||
{
|
||||
%Docstring(signature="appended")
|
||||
Manages QGIS Server properties for a map layer
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
%End
|
||||
public:
|
||||
static const QMetaObject staticMetaObject;
|
||||
|
||||
public:
|
||||
|
||||
QgsMapLayerServerProperties( QgsMapLayer *layer = 0 );
|
||||
%Docstring
|
||||
Constructor - Creates a Map Layer QGIS Server Properties
|
||||
@ -52,41 +215,52 @@ Constructor - Creates a Map Layer QGIS Server Properties
|
||||
:param layer: The map layer
|
||||
%End
|
||||
|
||||
QList <QgsMapLayerServerProperties::MetadataUrl> metadataUrls() const;
|
||||
void clone( QgsMapLayerServerProperties *properties ) const;
|
||||
%Docstring
|
||||
Returns a list of metadataUrl resources associated for the layer.
|
||||
Copy properties to another instance
|
||||
|
||||
:return: the list of metadata URLs
|
||||
|
||||
.. seealso:: :py:func:`setMetadataUrls`
|
||||
:param properties: The properties to copy to
|
||||
%End
|
||||
|
||||
void setMetadataUrls( const QList<QgsMapLayerServerProperties::MetadataUrl> &metaUrls );
|
||||
%Docstring
|
||||
Sets a the list of metadata URL for the layer
|
||||
|
||||
.. seealso:: :py:func:`metadataUrls`
|
||||
|
||||
.. seealso:: :py:func:`addMetadataUrl`
|
||||
%End
|
||||
void addMetadataUrl( const MetadataUrl &metaUrl );
|
||||
%Docstring
|
||||
Add a metadataUrl for the layer
|
||||
|
||||
.. seealso:: :py:func:`setMetadataUrls`
|
||||
%End
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const;
|
||||
%Docstring
|
||||
Saves server properties to xml under the layer node
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
void readXml( const QDomNode &layer_node );
|
||||
%Docstring
|
||||
Reads server properties from project file.
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
void reset();
|
||||
%Docstring
|
||||
Reset properties to default
|
||||
|
||||
.. versionadded:: 3.22
|
||||
%End
|
||||
|
||||
virtual const QgsMapLayer *layer() const;
|
||||
%Docstring
|
||||
Get Parent layer
|
||||
%End
|
||||
};
|
||||
|
||||
class QgsVectorLayerServerProperties: QgsMapLayerServerProperties
|
||||
{
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
%End
|
||||
public:
|
||||
static const QMetaObject staticMetaObject;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
|
||||
@ -616,13 +616,6 @@ which is used by the layer, so any changes are immediately applied.
|
||||
%End
|
||||
|
||||
|
||||
QgsMapLayerServerProperties *serverProperties() const;
|
||||
%Docstring
|
||||
Returns QGIS Server Properties of the vector layer
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
int selectedFeatureCount() const;
|
||||
%Docstring
|
||||
Returns the number of features that are selected in this layer.
|
||||
|
||||
@ -1,131 +0,0 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/vector/qgsvectorlayerserverproperties.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsVectorLayerServerProperties : QgsMapLayerServerProperties
|
||||
{
|
||||
%Docstring(signature="appended")
|
||||
Manages QGIS Server properties for a vector layer
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
%End
|
||||
public:
|
||||
static const QMetaObject staticMetaObject;
|
||||
|
||||
public:
|
||||
|
||||
enum PredefinedWmsDimensionName
|
||||
{
|
||||
TIME,
|
||||
DATE,
|
||||
ELEVATION
|
||||
};
|
||||
|
||||
struct WmsDimensionInfo
|
||||
{
|
||||
|
||||
enum DefaultDisplay
|
||||
{
|
||||
AllValues,
|
||||
MinValue,
|
||||
MaxValue,
|
||||
ReferenceValue,
|
||||
};
|
||||
|
||||
explicit WmsDimensionInfo( const QString &dimName,
|
||||
const QString &dimFieldName,
|
||||
const QString &dimEndFieldName = QString(),
|
||||
const QString &dimUnits = QString(),
|
||||
const QString &dimUnitSymbol = QString(),
|
||||
const int &dimDefaultDisplayType = QgsVectorLayerServerProperties::WmsDimensionInfo::AllValues,
|
||||
const QVariant &dimReferenceValue = QVariant() );
|
||||
%Docstring
|
||||
Constructor for WmsDimensionInfo.
|
||||
%End
|
||||
QString name;
|
||||
QString fieldName;
|
||||
QString endFieldName;
|
||||
QString units;
|
||||
QString unitSymbol;
|
||||
int defaultDisplayType;
|
||||
QVariant referenceValue;
|
||||
};
|
||||
|
||||
QgsVectorLayerServerProperties( QgsVectorLayer *layer = 0 );
|
||||
%Docstring
|
||||
Constructor - Creates a Vector Layer QGIS Server Properties
|
||||
|
||||
:param layer: The vector layer
|
||||
%End
|
||||
|
||||
static QMap<int, QString> wmsDimensionDefaultDisplayLabels();
|
||||
%Docstring
|
||||
Returns WMS Dimension default display labels
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
bool addWmsDimension( const QgsVectorLayerServerProperties::WmsDimensionInfo &wmsDimInfo );
|
||||
%Docstring
|
||||
Adds a QGIS Server WMS Dimension
|
||||
|
||||
:param wmsDimInfo: QGIS Server WMS Dimension object with, name, field, etc
|
||||
|
||||
:return: ``True`` if QGIS Server WMS Dimension has been successfully added
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
bool removeWmsDimension( const QString &wmsDimName );
|
||||
%Docstring
|
||||
Removes a QGIS Server WMS Dimension
|
||||
|
||||
:return: ``True`` if QGIS Server WMS Dimension was found and successfully removed
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> wmsDimensions() const;
|
||||
%Docstring
|
||||
Returns the QGIS Server WMS Dimension list.
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const;
|
||||
%Docstring
|
||||
Saves server properties to xml under the layer node
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
void readXml( const QDomNode &layer_node );
|
||||
%Docstring
|
||||
Reads server properties from project file.
|
||||
|
||||
.. versionadded:: 3.10
|
||||
%End
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/vector/qgsvectorlayerserverproperties.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
@ -666,7 +666,6 @@
|
||||
%Include auto_generated/vector/qgsvectorlayerfeatureiterator.sip
|
||||
%Include auto_generated/vector/qgsvectorlayerjoinbuffer.sip
|
||||
%Include auto_generated/vector/qgsvectorlayerjoininfo.sip
|
||||
%Include auto_generated/vector/qgsvectorlayerserverproperties.sip
|
||||
%Include auto_generated/vector/qgsvectorlayertemporalproperties.sip
|
||||
%Include auto_generated/vector/qgsvectorlayertools.sip
|
||||
%Include auto_generated/vector/qgsvectorlayerundocommand.sip
|
||||
|
||||
@ -35,7 +35,7 @@ Parses a comma separated ``bbox`` into a (possibly empty) :py:class:`QgsRectangl
|
||||
Z values (i.e. a 6 elements bbox) are silently discarded
|
||||
%End
|
||||
|
||||
static QList< QgsVectorLayerServerProperties::WmsDimensionInfo > temporalDimensions( const QgsVectorLayer *layer );
|
||||
static QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > temporalDimensions( const QgsVectorLayer *layer );
|
||||
%Docstring
|
||||
Returns a list of temporal dimensions information for the given ``layer`` (either configured in wmsDimensions or the first date/datetime field)
|
||||
|
||||
|
||||
@ -809,7 +809,6 @@ set(QGIS_CORE_SRCS
|
||||
vector/qgsvectorlayerjoinbuffer.cpp
|
||||
vector/qgsvectorlayerjoininfo.cpp
|
||||
vector/qgsvectorlayerrenderer.cpp
|
||||
vector/qgsvectorlayerserverproperties.cpp
|
||||
vector/qgsvectorlayertemporalproperties.cpp
|
||||
vector/qgsvectorlayertools.cpp
|
||||
vector/qgsvectorlayerundocommand.cpp
|
||||
@ -1733,7 +1732,6 @@ set(QGIS_CORE_HDRS
|
||||
vector/qgsvectorlayerjoinbuffer.h
|
||||
vector/qgsvectorlayerjoininfo.h
|
||||
vector/qgsvectorlayerrenderer.h
|
||||
vector/qgsvectorlayerserverproperties.h
|
||||
vector/qgsvectorlayertemporalproperties.h
|
||||
vector/qgsvectorlayertools.h
|
||||
vector/qgsvectorlayerundocommand.h
|
||||
|
||||
@ -101,6 +101,7 @@ QgsMapLayer::~QgsMapLayer()
|
||||
delete m3DRenderer;
|
||||
delete mLegend;
|
||||
delete mStyleManager;
|
||||
delete mServerProperties;
|
||||
}
|
||||
|
||||
void QgsMapLayer::clone( QgsMapLayer *layer ) const
|
||||
@ -126,9 +127,6 @@ void QgsMapLayer::clone( QgsMapLayer *layer ) const
|
||||
layer->setDataUrlFormat( dataUrlFormat() );
|
||||
layer->setAttribution( attribution() );
|
||||
layer->setAttributionUrl( attributionUrl() );
|
||||
// layer->setMetadataUrl( metadataUrl() );
|
||||
// layer->setMetadataUrlType( metadataUrlType() );
|
||||
// layer->setMetadataUrlFormat( metadataUrlFormat() );
|
||||
layer->setLegendUrl( legendUrl() );
|
||||
layer->setLegendUrlFormat( legendUrlFormat() );
|
||||
layer->setDependencies( dependencies() );
|
||||
@ -137,8 +135,7 @@ void QgsMapLayer::clone( QgsMapLayer *layer ) const
|
||||
layer->setCustomProperties( mCustomProperties );
|
||||
layer->setOpacity( mLayerOpacity );
|
||||
layer->setMetadata( mMetadata );
|
||||
// if ( auto *lServerProperties = serverProperties() )
|
||||
// layer->setServerProperties( lServerProperties->clone( layer ) );
|
||||
layer->serverProperties()->clone( mServerProperties );
|
||||
}
|
||||
|
||||
QgsMapLayerType QgsMapLayer::type() const
|
||||
@ -201,35 +198,22 @@ QString QgsMapLayer::shortName() const
|
||||
return mShortName;
|
||||
}
|
||||
|
||||
//void QgsMapLayer::setServerProperties( QgsMapLayerServerProperties *properties )
|
||||
//{
|
||||
// mMapLayerServerProperties.reset( properties );
|
||||
//// if ( mMapLayerServerProperties )
|
||||
// // mMapLayerServerProperties->setParent( this );
|
||||
//}
|
||||
|
||||
void QgsMapLayer::setMetadataUrl( const QString &metaUrl )
|
||||
{
|
||||
QgsMessageLog::logMessage( QObject::tr( "INSERTION" ), QObject::tr( "DEBUG" ), Qgis::MessageLevel::Warning );
|
||||
QList<QgsMapLayerServerProperties::MetadataUrl> urls = mServerProperties->metadataUrls();
|
||||
QList<QgsMapLayerServerProperties::MetadataUrl> urls = serverProperties()->metadataUrls();
|
||||
if ( urls.isEmpty() )
|
||||
{
|
||||
QgsMessageLog::logMessage( QObject::tr( "INSERTION VIDE" ), QObject::tr( "DEBUG" ), Qgis::MessageLevel::Warning );
|
||||
|
||||
QgsMapLayerServerProperties::MetadataUrl newItem( metaUrl, QLatin1String(), QLatin1String() );
|
||||
urls.insert( 0, newItem );
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsMessageLog::logMessage( QObject::tr( "REMPLACEMENT" ), QObject::tr( "DEBUG" ), Qgis::MessageLevel::Warning );
|
||||
|
||||
QgsMapLayerServerProperties::MetadataUrl old = urls.takeAt( 0 );
|
||||
QgsMapLayerServerProperties::MetadataUrl newItem( metaUrl, old.type, old.format );
|
||||
|
||||
urls.insert( 0, newItem );
|
||||
}
|
||||
this->serverProperties()->setMetadataUrls( urls );
|
||||
// mServerProperties->setMetadataUrls( urls );
|
||||
serverProperties()->setMetadataUrls( urls );
|
||||
}
|
||||
|
||||
QString QgsMapLayer::metadataUrl() const
|
||||
@ -291,7 +275,7 @@ QString QgsMapLayer::metadataUrlFormat() const
|
||||
{
|
||||
if ( mServerProperties->metadataUrls().isEmpty() )
|
||||
{
|
||||
return QStringLiteral();
|
||||
return QString();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -496,7 +480,7 @@ bool QgsMapLayer::readLayerXml( const QDomElement &layerElement, QgsReadWriteCon
|
||||
QString type = metaUrlElem.attribute( QStringLiteral( "type" ), QString() );
|
||||
QString format = metaUrlElem.attribute( QStringLiteral( "format" ), QString() );
|
||||
QgsMapLayerServerProperties::MetadataUrl newItem( url, type, format );
|
||||
mServerProperties->metadataUrls().insert( 0, newItem );
|
||||
serverProperties()->metadataUrls().insert( 0, newItem );
|
||||
}
|
||||
// mMapLayerServerProperties->readXml()
|
||||
|
||||
|
||||
@ -415,32 +415,23 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
|
||||
/* Layer metadataUrl information */
|
||||
|
||||
|
||||
/**
|
||||
* Returns QGIS Server Properties for the map layer
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
virtual QgsMapLayerServerProperties *serverProperties() { return mServerProperties; }
|
||||
QgsMapLayerServerProperties *serverProperties() { return mServerProperties; };
|
||||
|
||||
/**
|
||||
* Returns QGIS Server Properties const for the map layer
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
// const QgsMapLayerServerProperties *serverProperties() { return mMapLayerServerProperties.get(); } const SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Set QGIS Server Properties for the map layer
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
// void *setServerProperties(QgsMapLayerServerProperties &mProperties) { mMapLayerServerProperties = mProperties }
|
||||
//void setServerProperties( QgsMapLayerServerProperties *properties SIP_TRANSFER = nullptr );
|
||||
const QgsMapLayerServerProperties *serverProperties() const { return mServerProperties; } SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Sets the metadata URL of the layer
|
||||
* used by QGIS Server in GetCapabilities request.
|
||||
* MetadataUrl is a a link to the detailed, standardized metadata about the data.
|
||||
* Since QGIS 3.22, it edits the first metadata URL link. You should use setServerProperties.
|
||||
* \see setServerProperties()
|
||||
* Since QGIS 3.22, it edits the first metadata URL link.
|
||||
* \deprecated since QGIS 3.22
|
||||
*/
|
||||
void setMetadataUrl( const QString &metaUrl );
|
||||
@ -449,7 +440,7 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
* Returns the metadata URL of the layer
|
||||
* used by QGIS Server in GetCapabilities request.
|
||||
* MetadataUrl is a a link to the detailed, standardized metadata about the data.
|
||||
* Since QGIS 3.22, it returns the first metadata URL link. You should use setServerProperties.
|
||||
* Since QGIS 3.22, it returns the first metadata URL link.
|
||||
* \returns the layer metadata URL
|
||||
* \see mapLayerServerProperties()
|
||||
* \deprecated since QGIS 3.22
|
||||
@ -460,7 +451,7 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
* Set the metadata type of the layer
|
||||
* used by QGIS Server in GetCapabilities request
|
||||
* MetadataUrlType indicates the standard to which the metadata complies.
|
||||
* Since QGIS 3.22, it edits the first metadata URL type. You should use setServerProperties.
|
||||
* Since QGIS 3.22, it edits the first metadata URL type.
|
||||
* \returns the layer metadata type
|
||||
* \see mapLayerServerProperties()
|
||||
* \deprecated since QGIS 3.22
|
||||
@ -471,7 +462,7 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
* Returns the metadata type of the layer
|
||||
* used by QGIS Server in GetCapabilities request.
|
||||
* MetadataUrlType indicates the standard to which the metadata complies.
|
||||
* Since QGIS 3.22, it returns the first metadata URL type. You should use setServerProperties.
|
||||
* Since QGIS 3.22, it returns the first metadata URL type.
|
||||
* \returns the layer metadata type
|
||||
* \see mapLayerServerProperties()
|
||||
* \deprecated since QGIS 3.22
|
||||
@ -482,7 +473,7 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
* Sets the metadata format of the layer
|
||||
* used by QGIS Server in GetCapabilities request.
|
||||
* MetadataUrlType indicates how the metadata is structured.
|
||||
* Since QGIS 3.22, it edits the first metadata URL format. You should use setServerProperties.
|
||||
* Since QGIS 3.22, it edits the first metadata URL format.
|
||||
* \see mapLayerServerProperties()
|
||||
* \deprecated since QGIS 3.22
|
||||
*/
|
||||
@ -492,7 +483,7 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
* Returns the metadata format of the layer
|
||||
* used by QGIS Server in GetCapabilities request.
|
||||
* MetadataUrlType indicates how the metadata is structured.
|
||||
* Since QGIS 3.22, it returns the first metadata URL format. You should use setServerProperties.
|
||||
* Since QGIS 3.22, it returns the first metadata URL format.
|
||||
* \returns the layer metadata format
|
||||
* \see mapLayerServerProperties()
|
||||
* \deprecated since QGIS 3.22
|
||||
@ -2076,10 +2067,10 @@ class CORE_EXPORT QgsMapLayer : public QObject
|
||||
//! A flag that tells us whether to use the above vars to restrict layer visibility
|
||||
bool mScaleBasedVisibility = false;
|
||||
|
||||
//! Stores information about server properties
|
||||
/**
|
||||
* Stores information about server properties
|
||||
*/
|
||||
QgsMapLayerServerProperties *mServerProperties = nullptr;
|
||||
//QgsMapLayerServerProperties *mMapLayerServerProperties = nullptr;
|
||||
//QgsMapLayerServerProperties *mMapLayerServerProperties = nullptr;
|
||||
|
||||
//! Collection of undoable operations for this layer.
|
||||
QUndoStack *mUndoStack = nullptr;
|
||||
|
||||
@ -17,28 +17,203 @@
|
||||
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgsmaplayer.h"
|
||||
#include "vector/qgsvectorlayer.h"
|
||||
|
||||
#include <QDomNode>
|
||||
|
||||
QgsMapLayerServerProperties::QgsMapLayerServerProperties( QgsMapLayer *layer )
|
||||
: mLayer( layer )
|
||||
{
|
||||
}
|
||||
// QgsServerMetadataUrlProperties
|
||||
|
||||
bool QgsMapLayerServerProperties::MetadataUrl::operator==( const QgsMapLayerServerProperties::MetadataUrl &other ) const
|
||||
bool QgsServerMetadataUrlProperties::MetadataUrl::operator==( const QgsServerMetadataUrlProperties::MetadataUrl &other ) const
|
||||
{
|
||||
return url == other.url &&
|
||||
type == other.type &&
|
||||
format == other.format;
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::readXml( const QDomNode &layer_node )
|
||||
void QgsServerMetadataUrlProperties::clone( QgsServerMetadataUrlProperties *properties ) const
|
||||
{
|
||||
properties->setMetadataUrls( metadataUrls() );
|
||||
}
|
||||
|
||||
void QgsServerMetadataUrlProperties::reset()
|
||||
{
|
||||
mMetadataUrls.clear();
|
||||
}
|
||||
|
||||
void QgsServerMetadataUrlProperties::readXml( const QDomNode &layer_node )
|
||||
{
|
||||
Q_UNUSED( layer_node );
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::writeXml( QDomNode &layer_node, QDomDocument &document ) const
|
||||
void QgsServerMetadataUrlProperties::writeXml( QDomNode &layer_node, QDomDocument &document ) const
|
||||
{
|
||||
Q_UNUSED( layer_node );
|
||||
Q_UNUSED( document );
|
||||
}
|
||||
|
||||
// QgsServerWmsDimensionProperties
|
||||
|
||||
void QgsServerWmsDimensionProperties::clone( QgsServerWmsDimensionProperties *properties ) const
|
||||
{
|
||||
properties->setWmsDimensions( wmsDimensions() );
|
||||
}
|
||||
|
||||
void QgsServerWmsDimensionProperties::reset()
|
||||
{
|
||||
mWmsDimensions.clear();
|
||||
}
|
||||
|
||||
void QgsServerWmsDimensionProperties::setWmsDimensions( const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> &dimensions )
|
||||
{
|
||||
mWmsDimensions = dimensions;
|
||||
}
|
||||
|
||||
QMap<int, QString> QgsServerWmsDimensionProperties::wmsDimensionDefaultDisplayLabels()
|
||||
{
|
||||
QMap<int, QString> labels;
|
||||
labels[QgsServerWmsDimensionProperties::WmsDimensionInfo::AllValues] = QObject::tr( "All values" );
|
||||
labels[QgsServerWmsDimensionProperties::WmsDimensionInfo::MinValue] = QObject::tr( "Min value" );
|
||||
labels[QgsServerWmsDimensionProperties::WmsDimensionInfo::MaxValue] = QObject::tr( "Max value" );
|
||||
labels[QgsServerWmsDimensionProperties::WmsDimensionInfo::ReferenceValue] = QObject::tr( "Reference value" );
|
||||
return labels;
|
||||
}
|
||||
|
||||
bool QgsServerWmsDimensionProperties::addWmsDimension( const QgsServerWmsDimensionProperties::WmsDimensionInfo &wmsDimInfo )
|
||||
{
|
||||
for ( const QgsServerWmsDimensionProperties::WmsDimensionInfo &dim : mWmsDimensions )
|
||||
{
|
||||
if ( dim.name == wmsDimInfo.name )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
mWmsDimensions.append( wmsDimInfo );
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QgsServerWmsDimensionProperties::removeWmsDimension( const QString &wmsDimName )
|
||||
{
|
||||
for ( int i = 0; i < mWmsDimensions.size(); ++i )
|
||||
{
|
||||
if ( mWmsDimensions[ i ].name == wmsDimName )
|
||||
{
|
||||
mWmsDimensions.removeAt( i );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > QgsServerWmsDimensionProperties::wmsDimensions() const
|
||||
{
|
||||
return mWmsDimensions;
|
||||
}
|
||||
|
||||
void QgsServerWmsDimensionProperties::readXml( const QDomNode &layer_node )
|
||||
{
|
||||
QgsServerWmsDimensionProperties::reset();
|
||||
|
||||
// Apply only for vector layers
|
||||
if ( layer()->type() != QgsMapLayerType::VectorLayer )
|
||||
return;
|
||||
|
||||
const QgsFields fields = static_cast<const QgsVectorLayer *>( layer() )->fields();
|
||||
// QGIS Server WMS Dimensions
|
||||
const QDomNode wmsDimsNode = layer_node.namedItem( QStringLiteral( "wmsDimensions" ) );
|
||||
if ( !wmsDimsNode.isNull() )
|
||||
{
|
||||
const QDomElement wmsDimsElem = wmsDimsNode.toElement();
|
||||
QDomNodeList wmsDimsList = wmsDimsElem.elementsByTagName( QStringLiteral( "dimension" ) );
|
||||
for ( int i = 0; i < wmsDimsList.size(); ++i )
|
||||
{
|
||||
QDomElement dimElem = wmsDimsList.at( i ).toElement();
|
||||
QString dimName = dimElem.attribute( QStringLiteral( "name" ) );
|
||||
QString dimFieldName = dimElem.attribute( QStringLiteral( "fieldName" ) );
|
||||
// check field name
|
||||
int dimFieldNameIndex = fields.indexOf( dimFieldName );
|
||||
if ( dimFieldNameIndex == -1 )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
QVariant dimRefValue;
|
||||
int dimDefaultDisplayType = dimElem.attribute( QStringLiteral( "defaultDisplayType" ) ).toInt();
|
||||
if ( dimDefaultDisplayType == QgsServerWmsDimensionProperties::WmsDimensionInfo::AllValues )
|
||||
{
|
||||
QString dimRefValueStr = dimElem.attribute( QStringLiteral( "referenceValue" ) );
|
||||
if ( !dimRefValueStr.isEmpty() )
|
||||
{
|
||||
QgsField dimField = fields.at( dimFieldNameIndex );
|
||||
dimRefValue = QVariant( dimRefValueStr );
|
||||
if ( !dimField.convertCompatible( dimRefValue ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
QgsServerWmsDimensionProperties::WmsDimensionInfo dim( dimName, dimFieldName,
|
||||
dimElem.attribute( QStringLiteral( "endFieldName" ) ),
|
||||
dimElem.attribute( QStringLiteral( "units" ) ),
|
||||
dimElem.attribute( QStringLiteral( "unitSymbol" ) ),
|
||||
dimDefaultDisplayType, dimRefValue );
|
||||
//XXX This add O(n^2) complexity !!!!
|
||||
// addWmsDimension( dim );
|
||||
// Better to trust the XML:
|
||||
mWmsDimensions.append( dim );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QgsServerWmsDimensionProperties::writeXml( QDomNode &layer_node, QDomDocument &document ) const
|
||||
{
|
||||
// save QGIS Server WMS Dimension definitions
|
||||
if ( mWmsDimensions.size() > 0 )
|
||||
{
|
||||
QDomElement wmsDimsElem = document.createElement( QStringLiteral( "wmsDimensions" ) );
|
||||
for ( const QgsServerWmsDimensionProperties::WmsDimensionInfo &dim : mWmsDimensions )
|
||||
{
|
||||
QDomElement dimElem = document.createElement( QStringLiteral( "dimension" ) );
|
||||
dimElem.setAttribute( QStringLiteral( "name" ), dim.name );
|
||||
dimElem.setAttribute( QStringLiteral( "fieldName" ), dim.fieldName );
|
||||
dimElem.setAttribute( QStringLiteral( "endFieldName" ), dim.endFieldName );
|
||||
dimElem.setAttribute( QStringLiteral( "units" ), dim.units );
|
||||
dimElem.setAttribute( QStringLiteral( "unitSymbol" ), dim.unitSymbol );
|
||||
dimElem.setAttribute( QStringLiteral( "defaultDisplayType" ), dim.defaultDisplayType );
|
||||
dimElem.setAttribute( QStringLiteral( "referenceValue" ), dim.referenceValue.toString() );
|
||||
wmsDimsElem.appendChild( dimElem );
|
||||
}
|
||||
layer_node.appendChild( wmsDimsElem );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// QgsMapLayerServerProperties
|
||||
|
||||
QgsMapLayerServerProperties::QgsMapLayerServerProperties( QgsMapLayer *layer )
|
||||
: mLayer( layer )
|
||||
{
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::clone( QgsMapLayerServerProperties *properties ) const
|
||||
{
|
||||
QgsServerMetadataUrlProperties::clone( properties );
|
||||
QgsServerWmsDimensionProperties::clone( properties );
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::reset()
|
||||
{
|
||||
QgsServerMetadataUrlProperties::reset();
|
||||
QgsServerWmsDimensionProperties::reset();
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::readXml( const QDomNode &layer_node )
|
||||
{
|
||||
QgsServerMetadataUrlProperties::readXml( layer_node );
|
||||
QgsServerWmsDimensionProperties::readXml( layer_node );
|
||||
}
|
||||
|
||||
void QgsMapLayerServerProperties::writeXml( QDomNode &layer_node, QDomDocument &document ) const
|
||||
{
|
||||
QgsServerMetadataUrlProperties::writeXml( layer_node, document );
|
||||
QgsServerWmsDimensionProperties::writeXml( layer_node, document );
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
qgsmaplayerserverproperties.h
|
||||
------------------
|
||||
------------------
|
||||
begin : June 21, 2021
|
||||
copyright : (C) 2021 by Etienne Trimaille
|
||||
email : etrimaille at 3liz dot com
|
||||
@ -35,7 +35,7 @@ class QDomDocument;
|
||||
* \brief Manages QGIS Server properties for a map layer
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
class CORE_EXPORT QgsMapLayerServerProperties
|
||||
class CORE_EXPORT QgsServerMetadataUrlProperties
|
||||
{
|
||||
Q_GADGET
|
||||
|
||||
@ -75,12 +75,206 @@ class CORE_EXPORT QgsMapLayerServerProperties
|
||||
|
||||
// TODO c++20 - replace with = default
|
||||
|
||||
/**
|
||||
* Compare two MetadataUrl structure.
|
||||
*/
|
||||
bool operator==( const QgsMapLayerServerProperties::MetadataUrl &other ) const;
|
||||
//! Compare two MetadataUrl structure.
|
||||
bool operator==( const QgsServerMetadataUrlProperties::MetadataUrl &other ) const;
|
||||
};
|
||||
|
||||
virtual ~QgsServerMetadataUrlProperties() = default;
|
||||
|
||||
/**
|
||||
* Returns a list of metadataUrl resources associated for the layer.
|
||||
* \returns the list of metadata URLs
|
||||
* \see setMetadataUrls()
|
||||
*/
|
||||
QList<QgsServerMetadataUrlProperties::MetadataUrl> metadataUrls() const { return mMetadataUrls; };
|
||||
|
||||
/**
|
||||
* Sets a the list of metadata URL for the layer
|
||||
* \see metadataUrls()
|
||||
* \see addMetadataUrl()
|
||||
*/
|
||||
void setMetadataUrls( const QList<QgsServerMetadataUrlProperties::MetadataUrl> &metaUrls ) { mMetadataUrls = metaUrls; };
|
||||
|
||||
/**
|
||||
* Add a metadataUrl for the layer
|
||||
* \see setMetadataUrls()
|
||||
*/
|
||||
void addMetadataUrl( const QgsServerMetadataUrlProperties::MetadataUrl &metaUrl ) { mMetadataUrls << metaUrl; };
|
||||
|
||||
//! Get parent layer
|
||||
virtual const QgsMapLayer *layer() const = 0;
|
||||
|
||||
protected:
|
||||
//! Saves server properties to xml under the layer node
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const SIP_SKIP;
|
||||
|
||||
//! Reads server properties from project file.
|
||||
void readXml( const QDomNode &layer_node ) SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Copy properties to another instance
|
||||
*
|
||||
* \param properties The properties to copy to
|
||||
*/
|
||||
void clone( QgsServerMetadataUrlProperties *properties ) const SIP_SKIP;
|
||||
|
||||
//! Reset properties to default
|
||||
void reset() SIP_SKIP;
|
||||
|
||||
private:
|
||||
QList<MetadataUrl> mMetadataUrls;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* \ingroup core
|
||||
* \brief Manages QGIS Server properties for Wms dimensions
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
class CORE_EXPORT QgsServerWmsDimensionProperties
|
||||
{
|
||||
Q_GADGET
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Predefined/Restricted WMS Dimension name
|
||||
*/
|
||||
enum PredefinedWmsDimensionName
|
||||
{
|
||||
TIME,
|
||||
DATE,
|
||||
ELEVATION
|
||||
};
|
||||
Q_ENUM( PredefinedWmsDimensionName )
|
||||
|
||||
/**
|
||||
* Setting to define QGIS Server WMS Dimension.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
struct CORE_EXPORT WmsDimensionInfo
|
||||
{
|
||||
|
||||
/**
|
||||
* Selection behavior for QGIS Server WMS Dimension default display
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
enum DefaultDisplay
|
||||
{
|
||||
AllValues = 0, //!< Display all values of the dimension
|
||||
MinValue = 1, //!< Add selection to current selection
|
||||
MaxValue = 2, //!< Modify current selection to include only select features which match
|
||||
ReferenceValue = 3, //!< Remove from current selection
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor for WmsDimensionInfo.
|
||||
*/
|
||||
explicit WmsDimensionInfo( const QString &dimName,
|
||||
const QString &dimFieldName,
|
||||
const QString &dimEndFieldName = QString(),
|
||||
const QString &dimUnits = QString(),
|
||||
const QString &dimUnitSymbol = QString(),
|
||||
const int &dimDefaultDisplayType = QgsServerWmsDimensionProperties::WmsDimensionInfo::AllValues,
|
||||
const QVariant &dimReferenceValue = QVariant() )
|
||||
: name( dimName )
|
||||
, fieldName( dimFieldName )
|
||||
, endFieldName( dimEndFieldName )
|
||||
, units( dimUnits )
|
||||
, unitSymbol( dimUnitSymbol )
|
||||
, defaultDisplayType( dimDefaultDisplayType )
|
||||
, referenceValue( dimReferenceValue )
|
||||
{}
|
||||
QString name;
|
||||
QString fieldName;
|
||||
QString endFieldName;
|
||||
QString units;
|
||||
QString unitSymbol;
|
||||
int defaultDisplayType;
|
||||
QVariant referenceValue;
|
||||
};
|
||||
|
||||
virtual ~QgsServerWmsDimensionProperties() = default;
|
||||
|
||||
/**
|
||||
* Returns WMS Dimension default display labels
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
static QMap<int, QString> wmsDimensionDefaultDisplayLabels();
|
||||
|
||||
/**
|
||||
* Adds a QGIS Server WMS Dimension
|
||||
* \param wmsDimInfo QGIS Server WMS Dimension object with, name, field, etc
|
||||
* \returns TRUE if QGIS Server WMS Dimension has been successfully added
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
bool addWmsDimension( const QgsServerWmsDimensionProperties::WmsDimensionInfo &wmsDimInfo );
|
||||
|
||||
/**
|
||||
* Removes a QGIS Server WMS Dimension
|
||||
* \returns TRUE if QGIS Server WMS Dimension was found and successfully removed
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
bool removeWmsDimension( const QString &wmsDimName );
|
||||
|
||||
/**
|
||||
* Set WMS Dimensions
|
||||
*
|
||||
* \param the new dimensions that replace the current ones.
|
||||
*/
|
||||
void setWmsDimensions( const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> &dimensions );
|
||||
|
||||
/**
|
||||
* Returns the QGIS Server WMS Dimension list.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> wmsDimensions() const;
|
||||
|
||||
//! Get parent layer
|
||||
virtual const QgsMapLayer *layer() const = 0;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Saves server properties to xml under the layer node
|
||||
*/
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Reads server properties from project file.
|
||||
*/
|
||||
void readXml( const QDomNode &layer_node ) SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Copy properties to another instance
|
||||
*
|
||||
* \param properties The properties to copy to
|
||||
*/
|
||||
void clone( QgsServerWmsDimensionProperties *properties ) const SIP_SKIP;
|
||||
|
||||
/**
|
||||
* Reset properties to default
|
||||
*/
|
||||
void reset() SIP_SKIP;
|
||||
|
||||
private: // Private attributes
|
||||
//!stores QGIS Server WMS Dimension definitions
|
||||
QList<WmsDimensionInfo> mWmsDimensions;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* \ingroup core
|
||||
* \brief Manages QGIS Server properties for a map layer
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
class CORE_EXPORT QgsMapLayerServerProperties: public QgsServerMetadataUrlProperties, public QgsServerWmsDimensionProperties
|
||||
{
|
||||
Q_GADGET
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor - Creates a Map Layer QGIS Server Properties
|
||||
*
|
||||
@ -89,40 +283,49 @@ class CORE_EXPORT QgsMapLayerServerProperties
|
||||
QgsMapLayerServerProperties( QgsMapLayer *layer = nullptr );
|
||||
|
||||
/**
|
||||
* Returns a list of metadataUrl resources associated for the layer.
|
||||
* \returns the list of metadata URLs
|
||||
* \see setMetadataUrls()
|
||||
* Copy properties to another instance
|
||||
*
|
||||
* \param properties The properties to copy to
|
||||
*/
|
||||
QList <QgsMapLayerServerProperties::MetadataUrl> metadataUrls() const { return mMetadataUrls; };
|
||||
|
||||
|
||||
/**
|
||||
* Sets a the list of metadata URL for the layer
|
||||
* \see metadataUrls()
|
||||
* \see addMetadataUrl()
|
||||
*/
|
||||
void setMetadataUrls( const QList<QgsMapLayerServerProperties::MetadataUrl> &metaUrls ) { mMetadataUrls = metaUrls; };
|
||||
|
||||
/**
|
||||
* Add a metadataUrl for the layer
|
||||
* \see setMetadataUrls()
|
||||
*/
|
||||
void addMetadataUrl( const MetadataUrl &metaUrl ) { mMetadataUrls << metaUrl; };
|
||||
void clone( QgsMapLayerServerProperties *properties ) const;
|
||||
|
||||
/**
|
||||
* Saves server properties to xml under the layer node
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const;
|
||||
|
||||
/**
|
||||
* Reads server properties from project file.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
void readXml( const QDomNode &layer_node );
|
||||
|
||||
/**
|
||||
* Reset properties to default
|
||||
* \since QGIS 3.22
|
||||
*/
|
||||
void reset();
|
||||
|
||||
//! Get Parent layer
|
||||
const QgsMapLayer *layer() const override { return mLayer; };
|
||||
|
||||
private:
|
||||
QgsMapLayer *mLayer = nullptr;
|
||||
QList< QgsMapLayerServerProperties::MetadataUrl > mMetadataUrls;
|
||||
};
|
||||
|
||||
/**
|
||||
* \ingroup core
|
||||
* \brief Convenient class for API compatibility
|
||||
* \deprecated since QGIS 3.22
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
// XXX How to make a proper SIP type alias ?
|
||||
//using QgsVectorLayerServerProperties = QgsMapLayerServerProperties;
|
||||
class CORE_EXPORT QgsVectorLayerServerProperties: public QgsMapLayerServerProperties
|
||||
{
|
||||
Q_GADGET
|
||||
};
|
||||
|
||||
#endif // QGSMAPLAYERSERVERPROPERTIES_H
|
||||
|
||||
|
||||
@ -157,7 +157,6 @@ QgsVectorLayer::QgsVectorLayer( const QString &vectorLayerPath,
|
||||
const QgsVectorLayer::LayerOptions &options )
|
||||
: QgsMapLayer( QgsMapLayerType::VectorLayer, baseName, vectorLayerPath )
|
||||
, mTemporalProperties( new QgsVectorLayerTemporalProperties( this ) )
|
||||
, mServerProperties( new QgsVectorLayerServerProperties( this ) )
|
||||
, mAuxiliaryLayer( nullptr )
|
||||
, mAuxiliaryLayerKey( QString() )
|
||||
, mReadExtentFromXml( options.readExtentFromXml )
|
||||
|
||||
@ -35,7 +35,6 @@
|
||||
#include "qgsfields.h"
|
||||
#include "qgsvectordataprovider.h"
|
||||
#include "qgsvectorsimplifymethod.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgseditformconfig.h"
|
||||
#include "qgsattributetableconfig.h"
|
||||
#include "qgsaggregatecalculator.h"
|
||||
@ -729,12 +728,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
|
||||
*/
|
||||
const QgsActionManager *actions() const SIP_SKIP { return mActions; }
|
||||
|
||||
/**
|
||||
* Returns QGIS Server Properties of the vector layer
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
QgsMapLayerServerProperties *serverProperties() const { return mServerProperties; }
|
||||
|
||||
/**
|
||||
* Returns the number of features that are selected in this layer.
|
||||
*
|
||||
@ -2930,9 +2923,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
|
||||
//stores information about joined layers
|
||||
QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
|
||||
|
||||
//!stores information about server properties
|
||||
QgsVectorLayerServerProperties *mServerProperties = nullptr;
|
||||
|
||||
//! stores information about expression fields on this layer
|
||||
QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
|
||||
|
||||
|
||||
@ -1,158 +0,0 @@
|
||||
/***************************************************************************
|
||||
qgsvectorlayerserverproperties.h
|
||||
------------------
|
||||
begin : August 23, 2019
|
||||
copyright : (C) 2019 by René-Luc D'Hont
|
||||
email : rldhont at 3liz 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 QGSVECTORLAYERSERVERPROPERTIES_H
|
||||
#define QGSVECTORLAYERSERVERPROPERTIES_H
|
||||
|
||||
#include "qgis_sip.h"
|
||||
#include "qgis_core.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
#include <QMetaType>
|
||||
#include <QVariant>
|
||||
|
||||
class QgsVectorLayer;
|
||||
|
||||
class QDomNode;
|
||||
class QDomDocument;
|
||||
|
||||
/**
|
||||
* \ingroup core
|
||||
* \brief Manages QGIS Server properties for a vector layer
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
class CORE_EXPORT QgsVectorLayerServerProperties : public QgsMapLayerServerProperties
|
||||
{
|
||||
Q_GADGET
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Predefined/Restricted WMS Dimension name
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
enum PredefinedWmsDimensionName
|
||||
{
|
||||
TIME,
|
||||
DATE,
|
||||
ELEVATION
|
||||
};
|
||||
Q_ENUM( PredefinedWmsDimensionName )
|
||||
|
||||
/**
|
||||
* Setting to define QGIS Server WMS Dimension.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
struct CORE_EXPORT WmsDimensionInfo
|
||||
{
|
||||
|
||||
/**
|
||||
* Selection behavior for QGIS Server WMS Dimension default display
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
enum DefaultDisplay
|
||||
{
|
||||
AllValues = 0, //!< Display all values of the dimension
|
||||
MinValue = 1, //!< Add selection to current selection
|
||||
MaxValue = 2, //!< Modify current selection to include only select features which match
|
||||
ReferenceValue = 3, //!< Remove from current selection
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor for WmsDimensionInfo.
|
||||
*/
|
||||
explicit WmsDimensionInfo( const QString &dimName,
|
||||
const QString &dimFieldName,
|
||||
const QString &dimEndFieldName = QString(),
|
||||
const QString &dimUnits = QString(),
|
||||
const QString &dimUnitSymbol = QString(),
|
||||
const int &dimDefaultDisplayType = QgsVectorLayerServerProperties::WmsDimensionInfo::AllValues,
|
||||
const QVariant &dimReferenceValue = QVariant() )
|
||||
: name( dimName )
|
||||
, fieldName( dimFieldName )
|
||||
, endFieldName( dimEndFieldName )
|
||||
, units( dimUnits )
|
||||
, unitSymbol( dimUnitSymbol )
|
||||
, defaultDisplayType( dimDefaultDisplayType )
|
||||
, referenceValue( dimReferenceValue )
|
||||
{}
|
||||
QString name;
|
||||
QString fieldName;
|
||||
QString endFieldName;
|
||||
QString units;
|
||||
QString unitSymbol;
|
||||
int defaultDisplayType;
|
||||
QVariant referenceValue;
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor - Creates a Vector Layer QGIS Server Properties
|
||||
*
|
||||
* \param layer The vector layer
|
||||
*/
|
||||
QgsVectorLayerServerProperties( QgsVectorLayer *layer = nullptr );
|
||||
|
||||
/**
|
||||
* Returns WMS Dimension default display labels
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
static QMap<int, QString> wmsDimensionDefaultDisplayLabels();
|
||||
|
||||
/**
|
||||
* Adds a QGIS Server WMS Dimension
|
||||
* \param wmsDimInfo QGIS Server WMS Dimension object with, name, field, etc
|
||||
* \returns TRUE if QGIS Server WMS Dimension has been successfully added
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
bool addWmsDimension( const QgsVectorLayerServerProperties::WmsDimensionInfo &wmsDimInfo );
|
||||
|
||||
/**
|
||||
* Removes a QGIS Server WMS Dimension
|
||||
* \returns TRUE if QGIS Server WMS Dimension was found and successfully removed
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
bool removeWmsDimension( const QString &wmsDimName );
|
||||
|
||||
/**
|
||||
* Returns the QGIS Server WMS Dimension list.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> wmsDimensions() const;
|
||||
|
||||
|
||||
/**
|
||||
* Saves server properties to xml under the layer node
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
void writeXml( QDomNode &layer_node, QDomDocument &document ) const;
|
||||
|
||||
/**
|
||||
* Reads server properties from project file.
|
||||
* \since QGIS 3.10
|
||||
*/
|
||||
void readXml( const QDomNode &layer_node );
|
||||
|
||||
private: // Private attributes
|
||||
|
||||
QgsVectorLayer *mLayer = nullptr;
|
||||
|
||||
//!stores QGIS Server WMS Dimension definitions
|
||||
QList<QgsVectorLayerServerProperties::WmsDimensionInfo> mWmsDimensions;
|
||||
};
|
||||
|
||||
#endif // QGSVECTORLAYERSERVERPROPERTIES_H
|
||||
@ -57,7 +57,6 @@
|
||||
#include "qgsstyle.h"
|
||||
#include "qgsauxiliarystorage.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgsnewauxiliarylayerdialog.h"
|
||||
#include "qgsnewauxiliaryfielddialog.h"
|
||||
#include "qgslabelinggui.h"
|
||||
@ -360,9 +359,9 @@ QgsVectorLayerProperties::QgsVectorLayerProperties(
|
||||
);
|
||||
|
||||
//insert existing dimension info
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> &wmsDims = serverProperties->wmsDimensions();
|
||||
for ( const QgsVectorLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> &wmsDims = serverProperties->wmsDimensions();
|
||||
for ( const QgsMapLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
{
|
||||
addWmsDimensionInfoToTreeWidget( dim );
|
||||
}
|
||||
@ -1657,9 +1656,9 @@ void QgsVectorLayerProperties::mButtonAddWmsDimension_clicked()
|
||||
|
||||
// get wms dimensions name
|
||||
QStringList alreadyDefinedDimensions;
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> &dims = serverProperties->wmsDimensions();
|
||||
for ( const QgsVectorLayerServerProperties::WmsDimensionInfo &dim : dims )
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> &dims = serverProperties->wmsDimensions();
|
||||
for ( const QgsMapLayerServerProperties::WmsDimensionInfo &dim : dims )
|
||||
{
|
||||
alreadyDefinedDimensions << dim.name;
|
||||
}
|
||||
@ -1667,7 +1666,7 @@ void QgsVectorLayerProperties::mButtonAddWmsDimension_clicked()
|
||||
QgsWmsDimensionDialog d( mLayer, alreadyDefinedDimensions );
|
||||
if ( d.exec() == QDialog::Accepted )
|
||||
{
|
||||
QgsVectorLayerServerProperties::WmsDimensionInfo info = d.info();
|
||||
QgsMapLayerServerProperties::WmsDimensionInfo info = d.info();
|
||||
// save dimension
|
||||
serverProperties->addWmsDimension( info );
|
||||
addWmsDimensionInfoToTreeWidget( info );
|
||||
@ -1688,8 +1687,8 @@ void QgsVectorLayerProperties::mWmsDimensionsTreeWidget_itemDoubleClicked( QTree
|
||||
}
|
||||
|
||||
QString wmsDimName = item->data( 0, Qt::UserRole ).toString();
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> &dims = serverProperties->wmsDimensions();
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( mLayer->serverProperties() );
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> &dims = serverProperties->wmsDimensions();
|
||||
QStringList alreadyDefinedDimensions;
|
||||
int j = -1;
|
||||
for ( int i = 0; i < dims.size(); ++i )
|
||||
@ -1715,10 +1714,10 @@ void QgsVectorLayerProperties::mWmsDimensionsTreeWidget_itemDoubleClicked( QTree
|
||||
|
||||
if ( d.exec() == QDialog::Accepted )
|
||||
{
|
||||
QgsVectorLayerServerProperties::WmsDimensionInfo info = d.info();
|
||||
QgsMapLayerServerProperties::WmsDimensionInfo info = d.info();
|
||||
|
||||
// remove old
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( mLayer->serverProperties() );
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( mLayer->serverProperties() );
|
||||
serverProperties->removeWmsDimension( wmsDimName );
|
||||
int idx = mWmsDimensionsTreeWidget->indexOfTopLevelItem( item );
|
||||
mWmsDimensionsTreeWidget->takeTopLevelItem( idx );
|
||||
@ -1729,7 +1728,7 @@ void QgsVectorLayerProperties::mWmsDimensionsTreeWidget_itemDoubleClicked( QTree
|
||||
}
|
||||
}
|
||||
|
||||
void QgsVectorLayerProperties::addWmsDimensionInfoToTreeWidget( const QgsVectorLayerServerProperties::WmsDimensionInfo &wmsDim, const int insertIndex )
|
||||
void QgsVectorLayerProperties::addWmsDimensionInfoToTreeWidget( const QgsMapLayerServerProperties::WmsDimensionInfo &wmsDim, const int insertIndex )
|
||||
{
|
||||
QTreeWidgetItem *wmsDimensionItem = new QTreeWidgetItem();
|
||||
wmsDimensionItem->setFlags( Qt::ItemIsEnabled );
|
||||
@ -1770,7 +1769,7 @@ void QgsVectorLayerProperties::addWmsDimensionInfoToTreeWidget( const QgsVectorL
|
||||
|
||||
QTreeWidgetItem *childWmsDimensionDefaultValue = new QTreeWidgetItem();
|
||||
childWmsDimensionDefaultValue->setText( 0, tr( "Default display" ) );
|
||||
childWmsDimensionDefaultValue->setText( 1, QgsVectorLayerServerProperties::wmsDimensionDefaultDisplayLabels()[wmsDim.defaultDisplayType] );
|
||||
childWmsDimensionDefaultValue->setText( 1, QgsMapLayerServerProperties::wmsDimensionDefaultDisplayLabels()[wmsDim.defaultDisplayType] );
|
||||
childWmsDimensionDefaultValue->setFlags( Qt::ItemIsEnabled );
|
||||
wmsDimensionItem->addChild( childWmsDimensionDefaultValue );
|
||||
|
||||
@ -1797,7 +1796,7 @@ void QgsVectorLayerProperties::mButtonRemoveWmsDimension_clicked()
|
||||
return;
|
||||
}
|
||||
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( mLayer->serverProperties() );
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( mLayer->serverProperties() );
|
||||
serverProperties->removeWmsDimension( currentWmsDimensionItem->data( 0, Qt::UserRole ).toString() );
|
||||
mWmsDimensionsTreeWidget->takeTopLevelItem( mWmsDimensionsTreeWidget->indexOfTopLevelItem( currentWmsDimensionItem ) );
|
||||
}
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
#include "qgsguiutils.h"
|
||||
#include "qgshelp.h"
|
||||
#include "qgsmaplayerstylemanager.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgsvectorlayerjoininfo.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgslayertree.h"
|
||||
#include "qgslayertreemodel.h"
|
||||
#include "qgslayertreefilterproxymodel.h"
|
||||
@ -218,7 +218,7 @@ class GUI_EXPORT QgsVectorLayerProperties : public QgsOptionsDialogBase, private
|
||||
void addJoinToTreeWidget( const QgsVectorLayerJoinInfo &join, int insertIndex = -1 );
|
||||
|
||||
//! Adds a QGIS Server WMS dimension to mWmsDimensionTreeWidget
|
||||
void addWmsDimensionInfoToTreeWidget( const QgsVectorLayerServerProperties::WmsDimensionInfo &wmsDim, int insertIndex = -1 );
|
||||
void addWmsDimensionInfoToTreeWidget( const QgsMapLayerServerProperties::WmsDimensionInfo &wmsDim, int insertIndex = -1 );
|
||||
|
||||
void updateAuxiliaryStoragePage();
|
||||
void deleteAuxiliaryField( int index );
|
||||
|
||||
@ -46,7 +46,7 @@ QgsWmsDimensionDialog::QgsWmsDimensionDialog( QgsVectorLayer *layer, QStringList
|
||||
connect( mDefaultDisplayComboBox, qOverload<int>( &QComboBox::currentIndexChanged ), this, &QgsWmsDimensionDialog::defaultDisplayChanged );
|
||||
|
||||
// Set available names
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsVectorLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsMapLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
for ( int i = 0; i < pnMetaEnum.keyCount(); i++ )
|
||||
{
|
||||
const QString name( pnMetaEnum.key( i ) );
|
||||
@ -58,21 +58,21 @@ QgsWmsDimensionDialog::QgsWmsDimensionDialog( QgsVectorLayer *layer, QStringList
|
||||
|
||||
// Set default display combobox
|
||||
mDefaultDisplayComboBox->clear();
|
||||
QMap<int, QString> defaultDisplayLabels = QgsVectorLayerServerProperties::wmsDimensionDefaultDisplayLabels();
|
||||
QMap<int, QString> defaultDisplayLabels = QgsMapLayerServerProperties::wmsDimensionDefaultDisplayLabels();
|
||||
for ( const int &k : defaultDisplayLabels.keys() )
|
||||
{
|
||||
mDefaultDisplayComboBox->addItem( defaultDisplayLabels[k], QVariant( k ) );
|
||||
}
|
||||
// Set default display to All values
|
||||
mDefaultDisplayComboBox->setCurrentIndex( mDefaultDisplayComboBox->findData( QVariant( QgsVectorLayerServerProperties::WmsDimensionInfo::AllValues ) ) );
|
||||
mDefaultDisplayComboBox->setCurrentIndex( mDefaultDisplayComboBox->findData( QVariant( QgsMapLayerServerProperties::WmsDimensionInfo::AllValues ) ) );
|
||||
|
||||
mReferenceValueLabel->setEnabled( false );
|
||||
mReferenceValueComboBox->setEnabled( false );
|
||||
}
|
||||
|
||||
void QgsWmsDimensionDialog::setInfo( const QgsVectorLayerServerProperties::WmsDimensionInfo &info )
|
||||
void QgsWmsDimensionDialog::setInfo( const QgsMapLayerServerProperties::WmsDimensionInfo &info )
|
||||
{
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsVectorLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsMapLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
const int predefinedNameValue = pnMetaEnum.keyToValue( info.name.toUpper().toStdString().c_str() );
|
||||
if ( predefinedNameValue == -1 )
|
||||
{
|
||||
@ -91,7 +91,7 @@ void QgsWmsDimensionDialog::setInfo( const QgsVectorLayerServerProperties::WmsDi
|
||||
mUnitSymbolLineEdit->setText( info.unitSymbol );
|
||||
|
||||
mDefaultDisplayComboBox->setCurrentIndex( mDefaultDisplayComboBox->findData( QVariant( info.defaultDisplayType ) ) );
|
||||
if ( info.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
if ( info.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
{
|
||||
const int referenceValueIndex = mReferenceValueComboBox->findData( info.referenceValue );
|
||||
if ( referenceValueIndex == -1 )
|
||||
@ -109,7 +109,7 @@ void QgsWmsDimensionDialog::setInfo( const QgsVectorLayerServerProperties::WmsDi
|
||||
}
|
||||
}
|
||||
|
||||
QgsVectorLayerServerProperties::WmsDimensionInfo QgsWmsDimensionDialog::info() const
|
||||
QgsMapLayerServerProperties::WmsDimensionInfo QgsWmsDimensionDialog::info() const
|
||||
{
|
||||
// Is the name a predefined value?
|
||||
QString name = mNameComboBox->currentText();
|
||||
@ -125,7 +125,7 @@ QgsVectorLayerServerProperties::WmsDimensionInfo QgsWmsDimensionDialog::info() c
|
||||
{
|
||||
refValue = mReferenceValueComboBox->currentData();
|
||||
}
|
||||
return QgsVectorLayerServerProperties::WmsDimensionInfo( name, mFieldComboBox->currentField(),
|
||||
return QgsMapLayerServerProperties::WmsDimensionInfo( name, mFieldComboBox->currentField(),
|
||||
mEndFieldComboBox->currentField(),
|
||||
mUnitsLineEdit->text(), mUnitSymbolLineEdit->text(),
|
||||
mDefaultDisplayComboBox->currentData().toInt(), refValue );
|
||||
@ -145,7 +145,7 @@ void QgsWmsDimensionDialog::nameChanged( const QString &name )
|
||||
if ( mNameComboBox->findText( name ) != -1 )
|
||||
{
|
||||
const int data = mNameComboBox->currentData().toInt();
|
||||
if ( data == QgsVectorLayerServerProperties::TIME )
|
||||
if ( data == QgsMapLayerServerProperties::TIME )
|
||||
{
|
||||
const QgsFieldProxyModel::Filters filters = QgsFieldProxyModel::String |
|
||||
QgsFieldProxyModel::Int |
|
||||
@ -160,7 +160,7 @@ void QgsWmsDimensionDialog::nameChanged( const QString &name )
|
||||
mUnitSymbolLabel->setEnabled( false );
|
||||
mUnitSymbolLineEdit->setEnabled( false );
|
||||
}
|
||||
if ( data == QgsVectorLayerServerProperties::DATE )
|
||||
if ( data == QgsMapLayerServerProperties::DATE )
|
||||
{
|
||||
mFieldComboBox->setFilters( QgsFieldProxyModel::String | QgsFieldProxyModel::Date );
|
||||
mEndFieldComboBox->setFilters( QgsFieldProxyModel::String | QgsFieldProxyModel::Date );
|
||||
@ -170,7 +170,7 @@ void QgsWmsDimensionDialog::nameChanged( const QString &name )
|
||||
mUnitSymbolLabel->setEnabled( false );
|
||||
mUnitSymbolLineEdit->setEnabled( false );
|
||||
}
|
||||
else if ( data == QgsVectorLayerServerProperties::ELEVATION )
|
||||
else if ( data == QgsMapLayerServerProperties::ELEVATION )
|
||||
{
|
||||
mFieldComboBox->setFilters( QgsFieldProxyModel::Numeric );
|
||||
mEndFieldComboBox->setFilters( QgsFieldProxyModel::Numeric );
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
#define SIP_NO_FILE
|
||||
|
||||
#include "ui_qgswmsdimensiondialogbase.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgis_gui.h"
|
||||
|
||||
class QgsVectorLayer;
|
||||
@ -44,9 +44,9 @@ class GUI_EXPORT QgsWmsDimensionDialog: public QDialog, private Ui::QgsWmsDimens
|
||||
public:
|
||||
QgsWmsDimensionDialog( QgsVectorLayer *layer, QStringList alreadyDefinedDimensions, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags() );
|
||||
|
||||
QgsVectorLayerServerProperties::WmsDimensionInfo info() const;
|
||||
QgsMapLayerServerProperties::WmsDimensionInfo info() const;
|
||||
|
||||
void setInfo( const QgsVectorLayerServerProperties::WmsDimensionInfo &info );
|
||||
void setInfo( const QgsMapLayerServerProperties::WmsDimensionInfo &info );
|
||||
|
||||
private slots:
|
||||
void nameChanged( const QString &name );
|
||||
|
||||
@ -67,15 +67,15 @@ QgsRectangle QgsServerApiUtils::parseBbox( const QString &bbox )
|
||||
return QgsRectangle();
|
||||
}
|
||||
|
||||
QList< QgsVectorLayerServerProperties::WmsDimensionInfo > QgsServerApiUtils::temporalDimensions( const QgsVectorLayer *layer )
|
||||
QList< QgsMapLayerServerProperties::WmsDimensionInfo > QgsServerApiUtils::temporalDimensions( const QgsVectorLayer *layer )
|
||||
{
|
||||
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( layer->serverProperties() );
|
||||
QList< QgsVectorLayerServerProperties::WmsDimensionInfo > dimensions { serverProperties->wmsDimensions() };
|
||||
const QgsMapLayerServerProperties *serverProperties = layer->serverProperties();
|
||||
QList< QgsMapLayerServerProperties::WmsDimensionInfo > dimensions { serverProperties->wmsDimensions() };
|
||||
// Filter only date and time
|
||||
dimensions.erase( std::remove_if( dimensions.begin(),
|
||||
dimensions.end(),
|
||||
[ ]( QgsVectorLayerServerProperties::WmsDimensionInfo & dim )
|
||||
[ ]( QgsMapLayerServerProperties::WmsDimensionInfo & dim )
|
||||
{
|
||||
return dim.name.toLower() != QStringLiteral( "time" )
|
||||
&& dim.name.toLower() != QStringLiteral( "date" ) ;
|
||||
@ -89,7 +89,7 @@ QList< QgsVectorLayerServerProperties::WmsDimensionInfo > QgsServerApiUtils::tem
|
||||
{
|
||||
if ( f.isDateOrTime() )
|
||||
{
|
||||
dimensions.append( QgsVectorLayerServerProperties::WmsDimensionInfo( f.type() == QVariant::DateTime ?
|
||||
dimensions.append( QgsMapLayerServerProperties::WmsDimensionInfo( f.type() == QVariant::DateTime ?
|
||||
QStringLiteral( "time" ) :
|
||||
QStringLiteral( "date" ), f.name() ) );
|
||||
break;
|
||||
@ -457,7 +457,7 @@ json QgsServerApiUtils::layerExtent( const QgsVectorLayer *layer )
|
||||
json QgsServerApiUtils::temporalExtent( const QgsVectorLayer *layer )
|
||||
{
|
||||
// Helper to get min/max from a dimension
|
||||
auto range = [ & ]( const QgsVectorLayerServerProperties::WmsDimensionInfo & dimInfo ) -> QgsDateTimeRange
|
||||
auto range = [ & ]( const QgsMapLayerServerProperties::WmsDimensionInfo & dimInfo ) -> QgsDateTimeRange
|
||||
{
|
||||
QgsDateTimeRange result;
|
||||
// min
|
||||
@ -497,7 +497,7 @@ json QgsServerApiUtils::temporalExtent( const QgsVectorLayer *layer )
|
||||
return { min, max };
|
||||
};
|
||||
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> dimensions { QgsServerApiUtils::temporalDimensions( layer ) };
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> dimensions { QgsServerApiUtils::temporalDimensions( layer ) };
|
||||
if ( dimensions.isEmpty() )
|
||||
{
|
||||
return nullptr;
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
#include "qgsserverprojectutils.h"
|
||||
#include "qgsserverapicontext.h"
|
||||
#include "qgsserverexception.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgsrange.h"
|
||||
#include "qgsjsonutils.h"
|
||||
|
||||
@ -66,7 +66,7 @@ class SERVER_EXPORT QgsServerApiUtils
|
||||
* Returns a list of temporal dimensions information for the given \a layer (either configured in wmsDimensions or the first date/datetime field)
|
||||
* \since QGIS 3.12
|
||||
*/
|
||||
static QList< QgsVectorLayerServerProperties::WmsDimensionInfo > temporalDimensions( const QgsVectorLayer *layer );
|
||||
static QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > temporalDimensions( const QgsVectorLayer *layer );
|
||||
|
||||
/**
|
||||
* Parses a date \a interval and returns a QgsDateRange
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
#include "qgsrasterdataprovider.h"
|
||||
#include "qgsrasterlayer.h"
|
||||
#include "qgsrasterrenderer.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
|
||||
|
||||
namespace QgsWms
|
||||
@ -1213,9 +1213,9 @@ namespace QgsWms
|
||||
if ( l->type() == QgsMapLayerType::VectorLayer )
|
||||
{
|
||||
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( l );
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( vl->serverProperties() );
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> wmsDims = serverProperties->wmsDimensions();
|
||||
for ( const QgsVectorLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( vl->serverProperties() );
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> wmsDims = serverProperties->wmsDimensions();
|
||||
for ( const QgsMapLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
{
|
||||
int fieldIndex = vl->fields().indexOf( dim.fieldName );
|
||||
// Check field index
|
||||
@ -1251,15 +1251,15 @@ namespace QgsWms
|
||||
{
|
||||
dimElem.setAttribute( QStringLiteral( "unitSymbol" ), dim.unitSymbol );
|
||||
}
|
||||
if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::MinValue )
|
||||
if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::MinValue )
|
||||
{
|
||||
dimElem.setAttribute( QStringLiteral( "default" ), values.first().toString() );
|
||||
}
|
||||
else if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::MaxValue )
|
||||
else if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::MaxValue )
|
||||
{
|
||||
dimElem.setAttribute( QStringLiteral( "default" ), values.last().toString() );
|
||||
}
|
||||
else if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
else if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
{
|
||||
dimElem.setAttribute( QStringLiteral( "default" ), dim.referenceValue.toString() );
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
#include "qgswmsparameters.h"
|
||||
#include "qgsdatasourceuri.h"
|
||||
#include "qgsvectorlayerserverproperties.h"
|
||||
#include "qgsmaplayerserverproperties.h"
|
||||
#include "qgsmessagelog.h"
|
||||
#include "qgswmsserviceexception.h"
|
||||
|
||||
@ -2103,7 +2103,7 @@ namespace QgsWms
|
||||
QMap<QString, QString> QgsWmsParameters::dimensionValues() const
|
||||
{
|
||||
QMap<QString, QString> dimValues;
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsVectorLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
const QMetaEnum pnMetaEnum( QMetaEnum::fromType<QgsMapLayerServerProperties::PredefinedWmsDimensionName>() );
|
||||
const QStringList unmanagedNames = mUnmanagedParameters.keys();
|
||||
for ( const QString &key : unmanagedNames )
|
||||
{
|
||||
|
||||
@ -3113,15 +3113,15 @@ namespace QgsWms
|
||||
{
|
||||
QStringList expList;
|
||||
// WMS Dimension filters
|
||||
QgsVectorLayerServerProperties *serverProperties = static_cast<QgsVectorLayerServerProperties *>( layer->serverProperties() );
|
||||
const QList<QgsVectorLayerServerProperties::WmsDimensionInfo> wmsDims = serverProperties->wmsDimensions();
|
||||
QgsMapLayerServerProperties *serverProperties = static_cast<QgsMapLayerServerProperties *>( layer->serverProperties() );
|
||||
const QList<QgsMapLayerServerProperties::WmsDimensionInfo> wmsDims = serverProperties->wmsDimensions();
|
||||
if ( wmsDims.isEmpty() )
|
||||
{
|
||||
return expList;
|
||||
}
|
||||
|
||||
QMap<QString, QString> dimParamValues = mContext.parameters().dimensionValues();
|
||||
for ( const QgsVectorLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
for ( const QgsMapLayerServerProperties::WmsDimensionInfo &dim : wmsDims )
|
||||
{
|
||||
// Check field index
|
||||
int fieldIndex = layer->fields().indexOf( dim.fieldName );
|
||||
@ -3144,11 +3144,11 @@ namespace QgsWms
|
||||
{
|
||||
// Default value based on type configured by user
|
||||
QVariant defValue;
|
||||
if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::AllValues )
|
||||
if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::AllValues )
|
||||
{
|
||||
continue; // no filter by default for this dimension
|
||||
}
|
||||
else if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
else if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::ReferenceValue )
|
||||
{
|
||||
defValue = dim.referenceValue;
|
||||
}
|
||||
@ -3163,11 +3163,11 @@ namespace QgsWms
|
||||
// sort unique values
|
||||
QList<QVariant> values = qgis::setToList( uniqueValues );
|
||||
std::sort( values.begin(), values.end() );
|
||||
if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::MinValue )
|
||||
if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::MinValue )
|
||||
{
|
||||
defValue = values.first();
|
||||
}
|
||||
else if ( dim.defaultDisplayType == QgsVectorLayerServerProperties::WmsDimensionInfo::MaxValue )
|
||||
else if ( dim.defaultDisplayType == QgsMapLayerServerProperties::WmsDimensionInfo::MaxValue )
|
||||
{
|
||||
defValue = values.last();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user