Skip to content

Commit

Permalink
Don't always reset custom crs format to wkt when it was originally
Browse files Browse the repository at this point in the history
defined using a proj string
  • Loading branch information
nyalldawson committed Jan 13, 2022
1 parent 370bdfd commit 7a7fb28
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 5 deletions.
9 changes: 8 additions & 1 deletion python/gui/auto_generated/qgscrsdefinitionwidget.sip.in
Expand Up @@ -36,7 +36,14 @@ An invalid CRS may be returned if no CRS is defined in the widget.
.. seealso:: :py:func:`setCrs`
%End

void setCrs( const QgsCoordinateReferenceSystem &crs, Qgis::CrsDefinitionFormat nativeFormat = Qgis::CrsDefinitionFormat::Wkt );
void setCrs( const QgsCoordinateReferenceSystem &crs );
%Docstring
Sets the current ``crs`` to display in the widget.

.. seealso:: :py:func:`crs`
%End

void setCrs( const QgsCoordinateReferenceSystem &crs, Qgis::CrsDefinitionFormat nativeFormat );
%Docstring
Sets the current ``crs`` to display in the widget.

Expand Down
16 changes: 13 additions & 3 deletions src/gui/qgscrsdefinitionwidget.cpp
Expand Up @@ -41,15 +41,25 @@ QgsCrsDefinitionWidget::QgsCrsDefinitionWidget( QWidget *parent )

QgsCoordinateReferenceSystem QgsCrsDefinitionWidget::crs() const
{
QgsCoordinateReferenceSystem crs;
switch ( static_cast< Qgis::CrsDefinitionFormat >( mFormatComboBox->currentData().toInt() ) )
{
case Qgis::CrsDefinitionFormat::Wkt:
return QgsCoordinateReferenceSystem::fromWkt( mTextEditParameters->toPlainText() );
crs = QgsCoordinateReferenceSystem::fromWkt( mTextEditParameters->toPlainText() );
break;

case Qgis::CrsDefinitionFormat::Proj:
return QgsCoordinateReferenceSystem::fromProj( mTextEditParameters->toPlainText() );
crs = QgsCoordinateReferenceSystem::fromProj( mTextEditParameters->toPlainText() );
break;
}
BUILTIN_UNREACHABLE

crs.setNativeFormat( format() );
return crs;
}

void QgsCrsDefinitionWidget::setCrs( const QgsCoordinateReferenceSystem &crs )
{
setCrs( crs, crs.nativeFormat() );
}

void QgsCrsDefinitionWidget::setCrs( const QgsCoordinateReferenceSystem &crs, Qgis::CrsDefinitionFormat nativeFormat )
Expand Down
9 changes: 8 additions & 1 deletion src/gui/qgscrsdefinitionwidget.h
Expand Up @@ -47,6 +47,13 @@ class GUI_EXPORT QgsCrsDefinitionWidget : public QWidget, private Ui::QgsCrsDefi
*/
QgsCoordinateReferenceSystem crs() const;

/**
* Sets the current \a crs to display in the widget.
*
* \see crs()
*/
void setCrs( const QgsCoordinateReferenceSystem &crs );

/**
* Sets the current \a crs to display in the widget.
*
Expand All @@ -55,7 +62,7 @@ class GUI_EXPORT QgsCrsDefinitionWidget : public QWidget, private Ui::QgsCrsDefi
*
* \see crs()
*/
void setCrs( const QgsCoordinateReferenceSystem &crs, Qgis::CrsDefinitionFormat nativeFormat = Qgis::CrsDefinitionFormat::Wkt );
void setCrs( const QgsCoordinateReferenceSystem &crs, Qgis::CrsDefinitionFormat nativeFormat );

/**
* Returns the selected CRS format.
Expand Down

0 comments on commit 7a7fb28

Please sign in to comment.