diff --git a/src/gui/qgsextentgroupbox.cpp b/src/gui/qgsextentgroupbox.cpp index d5d77db6a04a..1a39ccc34d68 100644 --- a/src/gui/qgsextentgroupbox.cpp +++ b/src/gui/qgsextentgroupbox.cpp @@ -78,6 +78,7 @@ void QgsExtentGroupBox::setOutputCrs( const QgsCoordinateReferenceSystem &output { if ( mOutputCrs != outputCrs ) { + bool prevExtentEnabled = isChecked(); switch ( mExtentState ) { case CurrentExtent: @@ -116,6 +117,8 @@ void QgsExtentGroupBox::setOutputCrs( const QgsCoordinateReferenceSystem &output break; } + if ( !prevExtentEnabled ) + setChecked( false ); } } diff --git a/tests/src/python/test_qgsextentgroupbox.py b/tests/src/python/test_qgsextentgroupbox.py index c786093a7dbc..49627e62e60a 100644 --- a/tests/src/python/test_qgsextentgroupbox.py +++ b/tests/src/python/test_qgsextentgroupbox.py @@ -86,6 +86,15 @@ def test_SettingExtent(self): def testSetOutputCrs(self): w = qgis.gui.QgsExtentGroupBox() + w.setCheckable(True) + + # ensure setting output crs doesn't change state of group box + w.setChecked(False) + w.setOutputCrs(QgsCoordinateReferenceSystem('epsg:4326')) + self.assertFalse(w.isChecked()) + w.setChecked(True) + w.setOutputCrs(QgsCoordinateReferenceSystem('epsg:4326')) + self.assertTrue(w.isChecked()) w.setOutputCrs(QgsCoordinateReferenceSystem('epsg:4326')) w.setCurrentExtent(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('epsg:4326'))