From 0d84ca74c533280aca0d0b4d433e8695ca480681 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 11 Jul 2016 11:57:06 +1000 Subject: [PATCH] Make QgsMapLayer::metadata() const --- doc/api_break.dox | 2 +- python/core/qgsmaplayer.sip | 2 +- python/core/qgsvectorlayer.sip | 2 +- python/core/raster/qgsrasterlayer.sip | 4 ++-- src/core/qgsmaplayer.cpp | 2 +- src/core/qgsmaplayer.h | 2 +- src/core/qgsvectorlayer.cpp | 2 +- src/core/qgsvectorlayer.h | 2 +- src/core/raster/qgsrasterlayer.cpp | 9 +++++---- src/core/raster/qgsrasterlayer.h | 4 ++-- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/doc/api_break.dox b/doc/api_break.dox index 939c5a7ec775..b93795ca2e59 100644 --- a/doc/api_break.dox +++ b/doc/api_break.dox @@ -56,7 +56,7 @@ only affects third party c++ providers, and does not affect PyQGIS scripts.
  • toggleScaleBasedVisibility() was replaced by setScaleBasedVisibility()
  • lastErrorTitle(), lastError(), cacheImage(), onCacheImageDelete(), clearCacheImage() and the signals drawingProgress(), screenUpdateRequested() were removed. These members have had no effect for a number of QGIS 2.x releases.
  • -
  • extent(), styleURI(), exportNamedStyle(), exportSldStyle(), writeXml() were made const. This has no effect on PyQGIS code, but c++ code implementing derived layer classes will need to update the signatures of these methods to match.
  • +
  • extent(), styleURI(), exportNamedStyle(), exportSldStyle(), writeXml(), metadata() were made const. This has no effect on PyQGIS code, but c++ code implementing derived layer classes will need to update the signatures of these methods to match.
  • The lyrname parameter in the QgsMapLayer constructor was renamed to 'name'.
  • The vis parameter in setSubLayerVisibility was renamed to 'visible'.
  • theResultFlag parameter in loadDefaultStyle and saveDefaultStyle were renamed to resultFlag.
  • diff --git a/python/core/qgsmaplayer.sip b/python/core/qgsmaplayer.sip index ad43d52bf464..85c3d86d5739 100644 --- a/python/core/qgsmaplayer.sip +++ b/python/core/qgsmaplayer.sip @@ -650,7 +650,7 @@ class QgsMapLayer : QObject void triggerRepaint(); /** \brief Obtain Metadata for this layer */ - virtual QString metadata(); + virtual QString metadata() const; /** Time stamp of data source in the moment when data/metadata were loaded by provider */ virtual QDateTime timestamp() const; diff --git a/python/core/qgsvectorlayer.sip b/python/core/qgsvectorlayer.sip index 6a87535982e0..5695996c6224 100644 --- a/python/core/qgsvectorlayer.sip +++ b/python/core/qgsvectorlayer.sip @@ -1379,7 +1379,7 @@ class QgsVectorLayer : QgsMapLayer /** Returns the current transparency for the vector layer */ int layerTransparency() const; - QString metadata(); + QString metadata() const; /** @note not available in python bindings */ // inline QgsGeometryCache* cache(); diff --git a/python/core/raster/qgsrasterlayer.sip b/python/core/raster/qgsrasterlayer.sip index 8fae6b3ef74c..2d064c96c4ec 100644 --- a/python/core/raster/qgsrasterlayer.sip +++ b/python/core/raster/qgsrasterlayer.sip @@ -115,7 +115,7 @@ class QgsRasterLayer : QgsMapLayer int bandCount() const; /** \brief Get the name of a band given its number */ - const QString bandName( int theBandNoInt ); + QString bandName( int theBandNoInt ) const; /** Returns the data provider */ QgsRasterDataProvider* dataProvider(); @@ -147,7 +147,7 @@ class QgsRasterLayer : QgsMapLayer virtual bool isSpatial() const; /** \brief Obtain GDAL Metadata for this layer */ - QString metadata(); + QString metadata() const; /** \brief Get an 100x100 pixmap of the color palette. If the layer has no palette a white pixmap will be returned */ QPixmap paletteAsPixmap( int theBandNumber = 1 ); diff --git a/src/core/qgsmaplayer.cpp b/src/core/qgsmaplayer.cpp index f11d48cc7bf4..1c2617239ac3 100644 --- a/src/core/qgsmaplayer.cpp +++ b/src/core/qgsmaplayer.cpp @@ -1672,7 +1672,7 @@ void QgsMapLayer::triggerRepaint() emit repaintRequested(); } -QString QgsMapLayer::metadata() +QString QgsMapLayer::metadata() const { return QString(); } diff --git a/src/core/qgsmaplayer.h b/src/core/qgsmaplayer.h index 184e121ad947..9f5dbcf9e17b 100644 --- a/src/core/qgsmaplayer.h +++ b/src/core/qgsmaplayer.h @@ -673,7 +673,7 @@ class CORE_EXPORT QgsMapLayer : public QObject void triggerRepaint(); /** \brief Obtain Metadata for this layer */ - virtual QString metadata(); + virtual QString metadata() const; /** Time stamp of data source in the moment when data/metadata were loaded by provider */ virtual QDateTime timestamp() const { return QDateTime() ; } diff --git a/src/core/qgsvectorlayer.cpp b/src/core/qgsvectorlayer.cpp index e17425249734..a024de77b712 100644 --- a/src/core/qgsvectorlayer.cpp +++ b/src/core/qgsvectorlayer.cpp @@ -3760,7 +3760,7 @@ void QgsVectorLayer::setDiagramLayerSettings( const QgsDiagramLayerSettings& s ) *mDiagramLayerSettings = s; } -QString QgsVectorLayer::metadata() +QString QgsVectorLayer::metadata() const { QString myMetadata = ""; diff --git a/src/core/qgsvectorlayer.h b/src/core/qgsvectorlayer.h index d8bf1bd76b8b..1f3a0bc828bd 100644 --- a/src/core/qgsvectorlayer.h +++ b/src/core/qgsvectorlayer.h @@ -1772,7 +1772,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer /** Returns the current transparency for the vector layer */ int layerTransparency() const; - QString metadata() override; + QString metadata() const override; /** @note not available in python bindings */ inline QgsGeometryCache* cache() { return mCache; } diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp index e7fa5f60580b..d7e16b690aad 100644 --- a/src/core/raster/qgsrasterlayer.cpp +++ b/src/core/raster/qgsrasterlayer.cpp @@ -219,7 +219,7 @@ int QgsRasterLayer::bandCount() const return mDataProvider->bandCount(); } -const QString QgsRasterLayer::bandName( int theBandNo ) +QString QgsRasterLayer::bandName( int theBandNo ) const { return dataProvider()->generateBandName( theBandNo ); } @@ -316,8 +316,9 @@ QgsLegendColorList QgsRasterLayer::legendSymbologyItems() const return symbolList; } -QString QgsRasterLayer::metadata() +QString QgsRasterLayer::metadata() const { + QgsRasterDataProvider* provider = const_cast< QgsRasterDataProvider* >( mDataProvider ); QString myMetadata; myMetadata += "

    " + tr( "Driver" ) + "

    \n"; myMetadata += "

    "; @@ -442,7 +443,7 @@ QString QgsRasterLayer::metadata() myMetadata += "

    \n"; //check if full stats for this layer have already been collected - if ( !dataProvider()->hasStatistics( myIteratorInt ) ) //not collected + if ( !provider->hasStatistics( myIteratorInt ) ) //not collected { QgsDebugMsgLevel( ".....no", 4 ); @@ -457,7 +458,7 @@ QString QgsRasterLayer::metadata() { QgsDebugMsgLevel( ".....yes", 4 ); - QgsRasterBandStats myRasterBandStats = dataProvider()->bandStatistics( myIteratorInt ); + QgsRasterBandStats myRasterBandStats = provider->bandStatistics( myIteratorInt ); //Min Val myMetadata += "

    "; myMetadata += tr( "Min Val" ); diff --git a/src/core/raster/qgsrasterlayer.h b/src/core/raster/qgsrasterlayer.h index 72548744023f..c61eee2e2da2 100644 --- a/src/core/raster/qgsrasterlayer.h +++ b/src/core/raster/qgsrasterlayer.h @@ -251,7 +251,7 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer int bandCount() const; /** \brief Get the name of a band given its number */ - const QString bandName( int theBandNoInt ); + QString bandName( int theBandNoInt ) const; /** Returns the data provider */ QgsRasterDataProvider* dataProvider(); @@ -283,7 +283,7 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer virtual bool isSpatial() const override { return true; } /** \brief Obtain GDAL Metadata for this layer */ - QString metadata() override; + QString metadata() const override; /** \brief Get an 100x100 pixmap of the color palette. If the layer has no palette a white pixmap will be returned */ QPixmap paletteAsPixmap( int theBandNumber = 1 );