Skip to content

Commit

Permalink
fix using deprecated method for settings exclude fields from WMS/WFS (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Dec 15, 2020
1 parent f059703 commit 90c0faf
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 10 deletions.
48 changes: 48 additions & 0 deletions src/core/qgsvectorlayer.cpp
Expand Up @@ -3151,6 +3151,54 @@ QgsStringMap QgsVectorLayer::attributeAliases() const
return mAttributeAliasMap;
}

QSet<QString> QgsVectorLayer::excludeAttributesWms() const
{
QSet<QString> excludeList;
QMap< QString, QgsField::ConfigurationFlags >::const_iterator flagsIt = mFieldConfigurationFlags.constBegin();
for ( ; flagsIt != mFieldConfigurationFlags.constEnd(); ++flagsIt )
{
if ( flagsIt->testFlag( QgsField::ConfigurationFlag::HideFromWms ) )
{
excludeList << flagsIt.key();
}
}
return excludeList;
}

void QgsVectorLayer::setExcludeAttributesWms( const QSet<QString> &att )
{
QMap< QString, QgsField::ConfigurationFlags >::iterator flagsIt = mFieldConfigurationFlags.begin();
for ( ; flagsIt != mFieldConfigurationFlags.end(); ++flagsIt )
{
flagsIt->setFlag( QgsField::ConfigurationFlag::HideFromWms, att.contains( flagsIt.key() ) );
}
updateFields();
}

QSet<QString> QgsVectorLayer::excludeAttributesWfs() const
{
QSet<QString> excludeList;
QMap< QString, QgsField::ConfigurationFlags >::const_iterator flagsIt = mFieldConfigurationFlags.constBegin();
for ( ; flagsIt != mFieldConfigurationFlags.constEnd(); ++flagsIt )
{
if ( flagsIt->testFlag( QgsField::ConfigurationFlag::HideFromWfs ) )
{
excludeList << flagsIt.key();
}
}
return excludeList;
}

void QgsVectorLayer::setExcludeAttributesWfs( const QSet<QString> &att )
{
QMap< QString, QgsField::ConfigurationFlags >::iterator flagsIt = mFieldConfigurationFlags.begin();
for ( ; flagsIt != mFieldConfigurationFlags.end(); ++flagsIt )
{
flagsIt->setFlag( QgsField::ConfigurationFlag::HideFromWfs, att.contains( flagsIt.key() ) );
}
updateFields();
}

bool QgsVectorLayer::deleteAttribute( int index )
{
if ( index < 0 || index >= fields().count() )
Expand Down
14 changes: 4 additions & 10 deletions src/core/qgsvectorlayer.h
Expand Up @@ -1875,25 +1875,25 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
* A set of attributes that are not advertised in WMS requests with QGIS server.
* \deprecated since QGIS 3.16, use fields().configurationFlags() instead
*/
Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED { return mExcludeAttributesWMS; }
Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;

/**
* A set of attributes that are not advertised in WMS requests with QGIS server.
* \deprecated since QGIS 3.16, use setFieldConfigurationFlag instead
*/
Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED { mExcludeAttributesWMS = att; }
Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;

/**
* A set of attributes that are not advertised in WFS requests with QGIS server.
* \deprecated since QGIS 3.16, use fields().configurationFlags() instead
*/
Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED { return mExcludeAttributesWFS; }
Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;

/**
* A set of attributes that are not advertised in WFS requests with QGIS server.
* \deprecated since QGIS 3.16, use setFieldConfigurationFlag instead
*/
Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED { mExcludeAttributesWFS = att; }
Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;

/**
* Deletes an attribute field (but does not commit it).
Expand Down Expand Up @@ -2898,12 +2898,6 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
//! Holds the configuration for the edit form
QgsEditFormConfig mEditFormConfig;

//! Attributes which are not published in WMS
QSet<QString> mExcludeAttributesWMS;

//! Attributes which are not published in WFS
QSet<QString> mExcludeAttributesWFS;

//! Geometry type as defined in enum WkbType (qgis.h)
QgsWkbTypes::Type mWkbType = QgsWkbTypes::Unknown;

Expand Down

0 comments on commit 90c0faf

Please sign in to comment.