Skip to content

Commit

Permalink
move catch block to QgsQuickUtils::transformPoint since it can be inv…
Browse files Browse the repository at this point in the history
…oced from qml
  • Loading branch information
PeterPetrik authored and nyalldawson committed Jan 13, 2021
1 parent 1ed818e commit 8d240ec
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 19 deletions.
2 changes: 0 additions & 2 deletions src/quickgui/attributes/qgsquickattributeformmodelbase.cpp
Expand Up @@ -19,8 +19,6 @@
#include "qgsquickattributeformmodelbase.h"
#include "qgsquickattributeformmodel.h"
#include <qgsvectorlayerutils.h>
#include "qgsattributeeditorcontainer.h"
#include "qgsattributeeditorfield.h"

/// @cond PRIVATE

Expand Down
1 change: 0 additions & 1 deletion src/quickgui/attributes/qgsquickattributeformmodelbase.h
Expand Up @@ -32,7 +32,6 @@

#include "qgseditformconfig.h"
#include "qgsexpressioncontext.h"
#include "qgsattributeeditorcontainer.h"

#include "qgis_quick.h"
#include "qgsquickattributemodel.h"
Expand Down
19 changes: 6 additions & 13 deletions src/quickgui/qgsquickpositionkit.cpp
Expand Up @@ -139,19 +139,12 @@ void QgsQuickPositionKit::updateProjectedPosition()
return;

QgsPointXY srcPoint = QgsPointXY( mPosition.x(), mPosition.y() );
QgsPointXY projectedPositionXY = srcPoint;
try
{
projectedPositionXY = QgsQuickUtils::transformPoint(
positionCRS(),
mMapSettings->destinationCrs(),
mMapSettings->transformContext(),
srcPoint );
}
catch ( const QgsCsException & )
{
QgsDebugMsg( QStringLiteral( "Failed to transform GPS position: " ) + srcPoint.toString() );
}
QgsPointXY projectedPositionXY = QgsQuickUtils::transformPoint(
positionCRS(),
mMapSettings->destinationCrs(),
mMapSettings->transformContext(),
srcPoint
);

QgsPoint projectedPosition( projectedPositionXY );
projectedPosition.addZValue( mPosition.z() );
Expand Down
17 changes: 14 additions & 3 deletions src/quickgui/qgsquickutils.cpp
Expand Up @@ -68,9 +68,20 @@ QgsPointXY QgsQuickUtils::transformPoint( const QgsCoordinateReferenceSystem &sr
const QgsCoordinateTransformContext &context,
const QgsPointXY &srcPoint )
{
QgsCoordinateTransform mTransform( srcCrs, destCrs, context );
QgsPointXY pt = mTransform.transform( srcPoint );
return pt;
try
{
QgsCoordinateTransform ct( srcCrs, destCrs, context );
if ( ct.isValid() )
{
const QgsPointXY pt = ct.transform( srcPoint );
return pt;
}
}
catch ( QgsCsException &cse )
{
Q_UNUSED( cse )
}
return srcPoint;
}

double QgsQuickUtils::screenUnitsToMeters( QgsQuickMapSettings *mapSettings, int baseLengthPixels )
Expand Down

0 comments on commit 8d240ec

Please sign in to comment.