QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsmaplayerserverproperties.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaplayerserverproperties.h
3 ------------------
4 begin : June 21, 2021
5 copyright : (C) 2021 by Etienne Trimaille
6 email : etrimaille at 3liz dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSMAPLAYERSERVERPROPERTIES_H
19#define QGSMAPLAYERSERVERPROPERTIES_H
20
21#include "qgis_core.h"
22#include "qgis_sip.h"
23
24#include <QMap>
25#include <QMetaType>
26#include <QString>
27#include <QVariant>
28
29class QgsMapLayer;
30
31class QDomNode;
32class QDomDocument;
33
40{
41 Q_GADGET
42
43 public:
44
50 struct CORE_EXPORT MetadataUrl
51 {
52
56 MetadataUrl( const QString &url = QString(), const QString &type = QString(), const QString &format = QString() )
57 : url( url )
58 , type( type )
59 , format( format )
60 {}
61
65 QString url;
66
70 QString type;
71
75 QString format;
76
77 // TODO c++20 - replace with = default
78
81 };
82
84
90 QList<QgsServerMetadataUrlProperties::MetadataUrl> metadataUrls() const { return mMetadataUrls; };
91
97 void setMetadataUrls( const QList<QgsServerMetadataUrlProperties::MetadataUrl> &metaUrls ) { mMetadataUrls = metaUrls; };
98
103 void addMetadataUrl( const QgsServerMetadataUrlProperties::MetadataUrl &metaUrl ) { mMetadataUrls << metaUrl; };
104
106 virtual const QgsMapLayer *layer() const = 0;
107
108 // TODO c++20 - replace with = default
109
110 bool operator==( const QgsServerMetadataUrlProperties &other ) const;
111 bool operator!=( const QgsServerMetadataUrlProperties &other ) const;
112
113 protected:
115 void writeXml( QDomNode &layerNode, QDomDocument &document ) const SIP_SKIP;
116
118 void readXml( const QDomNode &layerNode ) SIP_SKIP;
119
125 void copyTo( QgsServerMetadataUrlProperties *properties ) const SIP_SKIP;
126
128 void reset() SIP_SKIP;
129
130 private:
131 QList<MetadataUrl> mMetadataUrls;
132
133};
134
135
142{
143 Q_GADGET
144
145 public:
146
156 Q_ENUM( PredefinedWmsDimensionName )
157
158
162 struct CORE_EXPORT WmsDimensionInfo
163 {
164
176
180 explicit WmsDimensionInfo( const QString &dimName,
181 const QString &dimFieldName,
182 const QString &dimEndFieldName = QString(),
183 const QString &dimUnits = QString(),
184 const QString &dimUnitSymbol = QString(),
185 const int &dimDefaultDisplayType = QgsServerWmsDimensionProperties::WmsDimensionInfo::AllValues,
186 const QVariant &dimReferenceValue = QVariant() )
187 : name( dimName )
188 , fieldName( dimFieldName )
189 , endFieldName( dimEndFieldName )
190 , units( dimUnits )
191 , unitSymbol( dimUnitSymbol )
192 , defaultDisplayType( dimDefaultDisplayType )
193 , referenceValue( dimReferenceValue )
194 {}
195
196 bool operator==( const WmsDimensionInfo &other ) const;
197 bool operator!=( const WmsDimensionInfo &other ) const;
198
199 QString name;
200 QString fieldName;
202 QString units;
203 QString unitSymbol;
206 };
207
209
210 // TODO c++20 - replace with = default
211
212 bool operator==( const QgsServerWmsDimensionProperties &other ) const;
213 bool operator!=( const QgsServerWmsDimensionProperties &other ) const;
214
219 static QMap<int, QString> wmsDimensionDefaultDisplayLabels();
220
228
234 bool removeWmsDimension( const QString &wmsDimName );
235
241 void setWmsDimensions( const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> &dimensions );
242
247 const QList<QgsServerWmsDimensionProperties::WmsDimensionInfo> wmsDimensions() const;
248
250 virtual const QgsMapLayer *layer() const = 0;
251
252 protected:
253
257 void writeXml( QDomNode &layer_node, QDomDocument &document ) const SIP_SKIP;
258
262 void readXml( const QDomNode &layer_node ) SIP_SKIP;
263
269 void copyTo( QgsServerWmsDimensionProperties *properties ) const SIP_SKIP;
270
274 void reset() SIP_SKIP;
275
276 private: // Private attributes
278 QList<WmsDimensionInfo> mWmsDimensions;
279};
280
281
288{
289 Q_GADGET
290
291 public:
292
299
300 // TODO c++20 - replace with = default
301
302 bool operator==( const QgsMapLayerServerProperties &other ) const;
303 bool operator!=( const QgsMapLayerServerProperties &other ) const;
304
310 void copyTo( QgsMapLayerServerProperties *properties ) const;
311
316 void writeXml( QDomNode &layer_node, QDomDocument &document ) const; // cppcheck-suppress duplInheritedMember
317
322 void readXml( const QDomNode &layer_node ); // cppcheck-suppress duplInheritedMember
323
328 void reset(); // cppcheck-suppress duplInheritedMember
329
337 void setShortName( const QString &name ) { mShortName = name; }
338
346 QString shortName() const { return mShortName; }
347
352 QString wfsTypeName() const;
353
361 void setTitle( const QString &title ) { mTitle = title; }
362
370 void setWfsTitle( const QString &title ) { mWfsTitle = title; }
371
379 QString title() const { return mTitle; }
380
389 QString wfsTitle() const { return mWfsTitle.isEmpty() ? mTitle : mWfsTitle; }
390
398 void setAbstract( const QString &abstract ) { mAbstract = abstract; }
399
407 QString abstract() const { return mAbstract; }
408
416 void setKeywordList( const QString &keywords ) { mKeywordList = keywords; }
417
425 QString keywordList() const { return mKeywordList; }
426
436 void setDataUrl( const QString &dataUrl ) { mDataUrl = dataUrl; }
437
447 QString dataUrl() const { return mDataUrl; }
448
458 void setDataUrlFormat( const QString &dataUrlFormat ) { mDataUrlFormat = dataUrlFormat; }
459
469 QString dataUrlFormat() const { return mDataUrlFormat; }
470
480 void setAttribution( const QString &attrib ) { mAttribution = attrib; }
481
491 QString attribution() const { return mAttribution; }
492
502 void setAttributionUrl( const QString &url ) { mAttributionUrl = url; }
503
513 QString attributionUrl() const { return mAttributionUrl; }
514
520 void setLegendUrl( const QString &legendUrl ) { mLegendUrl = legendUrl; }
521
527 QString legendUrl() const { return mLegendUrl; }
528
534 void setLegendUrlFormat( const QString &legendUrlFormat ) { mLegendUrlFormat = legendUrlFormat; }
535
541 QString legendUrlFormat() const { return mLegendUrlFormat; }
542
544 const QgsMapLayer *layer() const override { return mLayer; };
545
546 private:
547 QgsMapLayer *mLayer = nullptr;
548
549 QString mShortName;
550 QString mTitle;
551 QString mWfsTitle; // optional WFS title
552
553 QString mAttribution;
554 QString mAttributionUrl;
555
556 QString mDataUrl;
557 QString mDataUrlFormat;
558
559 QString mAbstract;
560 QString mKeywordList;
561
563 QString mLegendUrl;
564 QString mLegendUrlFormat;
565};
566
567// XXX How to make a proper SIP type alias ?
568//using QgsVectorLayerServerProperties = QgsMapLayerServerProperties;
569
577{
578 Q_GADGET
579};
580
581#endif // QGSMAPLAYERSERVERPROPERTIES_H
void setLegendUrl(const QString &legendUrl)
Sets the URL for the layer's legend.
void readXml(const QDomNode &layer_node)
Reads server properties from project file.
void setDataUrl(const QString &dataUrl)
Sets the DataUrl of the layer used by QGIS Server in GetCapabilities request.
void setAbstract(const QString &abstract)
Sets the abstract of the layer used by QGIS Server in GetCapabilities request.
void setDataUrlFormat(const QString &dataUrlFormat)
Sets the DataUrl format of the layerused by QGIS Server in GetCapabilities request.
QString attribution() const
Returns the attribution of the layer used by QGIS Server in GetCapabilities request.
void setAttributionUrl(const QString &url)
Sets the attribution url of the layer used by QGIS Server in GetCapabilities request.
QString dataUrlFormat() const
Returns the DataUrl format of the layer used by QGIS Server in GetCapabilities request.
void setAttribution(const QString &attrib)
Sets the attribution of the layer used by QGIS Server in GetCapabilities request.
void setShortName(const QString &name)
Sets the short name of the layer used by QGIS Server to identify the layer.
QString title() const
Returns the title of the layer used by QGIS Server in GetCapabilities request.
void setLegendUrlFormat(const QString &legendUrlFormat)
Sets the format for a URL based layer legend.
QString legendUrlFormat() const
Returns the format for a URL based layer legend.
void copyTo(QgsMapLayerServerProperties *properties) const
Copy properties to another instance.
QString dataUrl() const
Returns the DataUrl of the layer used by QGIS Server in GetCapabilities request.
QgsMapLayerServerProperties(QgsMapLayer *layer=nullptr)
Constructor - Creates a Map Layer QGIS Server Properties.
QString keywordList() const
Returns the keyword list of the layerused by QGIS Server in GetCapabilities request.
QString wfsTitle() const
Returns the optional WFS title if set or the title of the layer used by QGIS WFS in GetCapabilities r...
QString shortName() const
Returns the short name of the layer used by QGIS Server to identify the layer.
const QgsMapLayer * layer() const override
Gets the parent layer.
void writeXml(QDomNode &layer_node, QDomDocument &document) const
Saves server properties to xml under the layer node.
void setTitle(const QString &title)
Sets the title of the layer used by QGIS Server in GetCapabilities request.
void setKeywordList(const QString &keywords)
Sets the keywords list of the layerused by QGIS Server in GetCapabilities request.
QString attributionUrl() const
Returns the attribution URL of the layer used by QGIS Server in GetCapabilities request.
void reset()
Reset properties to default.
void setWfsTitle(const QString &title)
Sets the title of the layer used by QGIS Server in WFS GetCapabilities request.
QString legendUrl() const
Returns the URL for the layer's legend.
QString abstract() const
Returns the abstract of the layerused by QGIS Server in GetCapabilities request.
Base class for all map layer types.
Definition qgsmaplayer.h:80
Manages QGIS Server properties for a map layer.
virtual ~QgsServerMetadataUrlProperties()=default
virtual const QgsMapLayer * layer() const =0
Gets the parent layer.
void addMetadataUrl(const QgsServerMetadataUrlProperties::MetadataUrl &metaUrl)
Add a metadataUrl for the layer.
void writeXml(QDomNode &layerNode, QDomDocument &document) const
Saves server properties to xml under the layer node.
void reset()
Reset properties to default.
void setMetadataUrls(const QList< QgsServerMetadataUrlProperties::MetadataUrl > &metaUrls)
Sets a the list of metadata URL for the layer.
QList< QgsServerMetadataUrlProperties::MetadataUrl > metadataUrls() const
Returns a list of metadataUrl resources associated for the layer.
void copyTo(QgsServerMetadataUrlProperties *properties) const
Copy properties to another instance.
void readXml(const QDomNode &layerNode)
Reads server properties from project file.
Manages QGIS Server properties for WMS dimensions.
void readXml(const QDomNode &layer_node)
Reads server properties from project file.
PredefinedWmsDimensionName
Predefined/Restricted WMS Dimension name.
static QMap< int, QString > wmsDimensionDefaultDisplayLabels()
Returns WMS Dimension default display labels.
void writeXml(QDomNode &layer_node, QDomDocument &document) const
Saves server properties to xml under the layer node.
void reset()
Reset properties to default.
bool addWmsDimension(const QgsServerWmsDimensionProperties::WmsDimensionInfo &wmsDimInfo)
Adds a QGIS Server WMS Dimension.
virtual const QgsMapLayer * layer() const =0
Gets the parent layer.
void copyTo(QgsServerWmsDimensionProperties *properties) const
Copy properties to another instance.
virtual ~QgsServerWmsDimensionProperties()=default
bool removeWmsDimension(const QString &wmsDimName)
Removes a QGIS Server WMS Dimension.
const QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > wmsDimensions() const
Returns the QGIS Server WMS Dimension list.
void setWmsDimensions(const QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > &dimensions)
Set WMS Dimensions.
Convenient class for API compatibility.
#define SIP_SKIP
Definition qgis_sip.h:134
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
MetadataUrl(const QString &url=QString(), const QString &type=QString(), const QString &format=QString())
Constructor for MetadataUrl.
QString format
Format specification of online resource.
Setting to define QGIS Server WMS Dimension.
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())
Constructor for WmsDimensionInfo.
DefaultDisplay
Selection behavior for QGIS Server WMS Dimension default display.
@ MaxValue
Modify current selection to include only select features which match.