Skip to content

Commit 1a73fef

Browse files
committed
In debug builds, throw a warning when transforming coordinates
and no coordinate transform context has been set.
1 parent 86d9492 commit 1a73fef

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/core/qgscoordinatetransform.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,17 @@ QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSyst
5454
QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination, const QgsCoordinateTransformContext &context )
5555
{
5656
d = new QgsCoordinateTransformPrivate( source, destination, context );
57+
#ifdef QGISDEBUG
58+
d->mHasContext = true;
59+
#endif
5760
}
5861

5962
QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination, const QgsProject *project )
6063
{
6164
d = new QgsCoordinateTransformPrivate( source, destination, project ? project->transformContext() : QgsCoordinateTransformContext() );
65+
#ifdef QGISDEBUG
66+
d->mHasContext = true;
67+
#endif
6268
}
6369

6470
QgsCoordinateTransform::QgsCoordinateTransform( const QgsCoordinateTransform &o )
@@ -93,6 +99,9 @@ void QgsCoordinateTransform::setContext( const QgsCoordinateTransformContext &co
9399
{
94100
d.detach();
95101
d->mContext = context;
102+
#ifdef QGISDEBUG
103+
d->mHasContext = true;
104+
#endif
96105
d->calculateTransforms();
97106
d->initialize();
98107
}

src/core/qgscoordinatetransform_p.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ QgsCoordinateTransformPrivate::QgsCoordinateTransformPrivate( const QgsCoordinat
6969
, mSourceCRS( other.mSourceCRS )
7070
, mDestCRS( other.mDestCRS )
7171
, mContext( other.mContext )
72+
#ifdef QGISDEBUG
73+
, mHasContext( other.mHasContext )
74+
#endif
7275
, mSourceDatumTransform( other.mSourceDatumTransform )
7376
, mDestinationDatumTransform( other.mDestinationDatumTransform )
7477
{
@@ -106,6 +109,11 @@ bool QgsCoordinateTransformPrivate::initialize()
106109

107110
mIsValid = true;
108111

112+
#ifdef QGISDEBUG
113+
if ( !mHasContext )
114+
qWarning( "No QgsCoordinateTransformContext context set for transform" );
115+
#endif
116+
109117
int sourceDatumTransform = mSourceDatumTransform;
110118
int destDatumTransform = mDestinationDatumTransform;
111119
bool useDefaultDatumTransform = ( sourceDatumTransform == - 1 && destDatumTransform == -1 );

src/core/qgscoordinatetransform_p.h

+4
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ class QgsCoordinateTransformPrivate : public QSharedData
103103
//! Transform context
104104
QgsCoordinateTransformContext mContext;
105105

106+
#ifdef QGISDEBUG
107+
bool mHasContext = false;
108+
#endif
109+
106110
QString mSourceProjString;
107111
QString mDestProjString;
108112

0 commit comments

Comments
 (0)