diff --git a/python/gui/auto_generated/qgsmapcanvas.sip.in b/python/gui/auto_generated/qgsmapcanvas.sip.in index cfb9866bc56..c149ba438ce 100644 --- a/python/gui/auto_generated/qgsmapcanvas.sip.in +++ b/python/gui/auto_generated/qgsmapcanvas.sip.in @@ -40,6 +40,7 @@ Map canvas is a class for displaying all GIS data types on a canvas. Constructor %End + ~QgsMapCanvas(); double magnificationFactor() const; @@ -1019,6 +1020,8 @@ called when panning is in action, reset indicates end of panning called on resize or changed extent to notify canvas items to change their rectangle %End + private: + QgsMapCanvas( QgsMapCanvas const & ); }; // class QgsMapCanvas diff --git a/src/3d/terrain/qgsdemterraintilegeometry_p.cpp b/src/3d/terrain/qgsdemterraintilegeometry_p.cpp index f61218ad517..737fc0e3a04 100644 --- a/src/3d/terrain/qgsdemterraintilegeometry_p.cpp +++ b/src/3d/terrain/qgsdemterraintilegeometry_p.cpp @@ -294,8 +294,8 @@ void DemTerrainTileGeometry::init() // Each primitive has 3 vertives mIndexAttribute->setCount( faces * 3 ); - mVertexBuffer->setDataGenerator( QSharedPointer::create( mResolution, mSkirtHeight, mHeightMap ) ); - mIndexBuffer->setDataGenerator( QSharedPointer::create( mResolution, mHeightMap ) ); + mVertexBuffer->setDataGenerator( QSharedPointer::create( mResolution, mSkirtHeight, mHeightMap ) ); // skip-keyword-check + mIndexBuffer->setDataGenerator( QSharedPointer::create( mResolution, mHeightMap ) ); // skip-keyword-check addAttribute( mPositionAttribute ); addAttribute( mTexCoordAttribute ); diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index 8ec6f17158e..7cf622337d7 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -239,14 +239,9 @@ QgsMapCanvas::~QgsMapCanvas() mScene->deleteLater(); // crashes in python tests on windows - // mCanvasProperties auto-deleted via QScopedPointer - // CanvasProperties struct has its own dtor for freeing resources - delete mCache; - delete mLabelingResults; - -} // dtor +} void QgsMapCanvas::setMagnificationFactor( double factor ) { diff --git a/src/gui/qgsmapcanvas.h b/src/gui/qgsmapcanvas.h index 7bacd41600e..cf2a14a20ba 100644 --- a/src/gui/qgsmapcanvas.h +++ b/src/gui/qgsmapcanvas.h @@ -92,6 +92,11 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView //! Constructor QgsMapCanvas( QWidget *parent SIP_TRANSFERTHIS = nullptr ); + //! QgsMapCanvas cannot be copied + QgsMapCanvas( const QgsMapCanvas &other ) = delete; + //! QgsMapCanvas cannot be copied + QgsMapCanvas &operator=( const QgsMapCanvas &other ) = delete; + ~QgsMapCanvas() override; /** @@ -902,13 +907,9 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView private: /// this class is non-copyable - /** - \note - - Otherwise QScopedPointer would pass the object responsibility on to the - copy like a hot potato leaving the copyer in a weird state. - */ +#ifdef SIP_RUN QgsMapCanvas( QgsMapCanvas const & ); +#endif //! encompases all map settings necessary for map rendering QgsMapSettings mSettings; diff --git a/src/server/services/wms/qgswmsrenderer.cpp b/src/server/services/wms/qgswmsrenderer.cpp index 2c01a723cc0..aeeb03ba4cb 100644 --- a/src/server/services/wms/qgswmsrenderer.cpp +++ b/src/server/services/wms/qgswmsrenderer.cpp @@ -2798,7 +2798,7 @@ namespace QgsWms QStringLiteral( "error message: %1. The XML string was: %2" ).arg( errorMsg, filter ) ); } QDomElement filterElem = filterXml.firstChildElement(); - QScopedPointer expression( QgsOgcUtils::expressionFromOgcFilter( filterElem, filteredLayer ) ); + std::unique_ptr expression( QgsOgcUtils::expressionFromOgcFilter( filterElem, filteredLayer ) ); mFeatureFilter.setFilter( filteredLayer, *expression ); } else diff --git a/tests/code_layout/test_banned_keywords.sh b/tests/code_layout/test_banned_keywords.sh index b982b100bc5..31513cd7976 100755 --- a/tests/code_layout/test_banned_keywords.sh +++ b/tests/code_layout/test_banned_keywords.sh @@ -98,6 +98,12 @@ HINTS[24]="Use std::swap instead" KEYWORDS[25]="\bqUpperBound(" HINTS[25]="Use std::upper_bound instead" +KEYWORDS[26]="QScopedPointer" +HINTS[26]="Use std::unique_ptr instead" + +KEYWORDS[27]="QSharedPointer" +HINTS[27]="Use std::shared_ptr instead" + RES= DIR=$(git rev-parse --show-toplevel) @@ -105,11 +111,12 @@ pushd "${DIR}" > /dev/null || exit for i in "${!KEYWORDS[@]}" do - FOUND=$(git grep "${KEYWORDS[$i]}" -- 'src/*.h' 'src/*.cpp' -- ':!*qtermwidget*') + FOUND=$(git grep "${KEYWORDS[$i]}" -- 'src/*.h' 'src/*.cpp' -- ':!*qtermwidget*' | grep --invert-match skip-keyword-check) if [[ ${FOUND} ]]; then echo "Found source files with banned keyword: ${KEYWORDS[$i]}!" echo " -> ${HINTS[$i]}" + echo " or mark with // skip-keyword-check" echo echo "${FOUND}" echo