Skip to content

Commit 0f01359

Browse files
authored
Merge pull request #9880 from troopa81/fix_pointpick_precision
Fix point picking precision for point parameters in processing dialog
2 parents a665eac + 9cfaf10 commit 0f01359

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

src/gui/processing/qgsprocessingwidgetwrapperimpl.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -2205,7 +2205,10 @@ void QgsProcessingPointPanel::clear()
22052205

22062206
void QgsProcessingPointPanel::setValue( const QgsPointXY &point, const QgsCoordinateReferenceSystem &crs )
22072207
{
2208-
QString newText = QStringLiteral( "%1,%2" ).arg( point.x() ).arg( point.y() );
2208+
QString newText = QStringLiteral( "%1,%2" )
2209+
.arg( QString::number( point.x(), 'f' ) )
2210+
.arg( QString::number( point.y(), 'f' ) );
2211+
22092212
mCrs = crs;
22102213
if ( mCrs.isValid() )
22112214
{

tests/src/gui/testprocessinggui.cpp

+17-13
Original file line numberDiff line numberDiff line change
@@ -2834,26 +2834,30 @@ void TestProcessingGui::testPointPanel()
28342834
QSignalSpy spy( panel.get(), &QgsProcessingPointPanel::changed );
28352835

28362836
panel->setValue( QgsPointXY( 100, 150 ), QgsCoordinateReferenceSystem() );
2837-
QCOMPARE( panel->value().toString(), QStringLiteral( "100,150" ) );
2837+
QCOMPARE( panel->value().toString(), QStringLiteral( "100.000000,150.000000" ) );
28382838
QCOMPARE( spy.count(), 1 );
28392839

28402840
panel->setValue( QgsPointXY( 200, 250 ), QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:3111" ) ) );
2841-
QCOMPARE( panel->value().toString(), QStringLiteral( "200,250 [EPSG:3111]" ) );
2841+
QCOMPARE( panel->value().toString(), QStringLiteral( "200.000000,250.000000 [EPSG:3111]" ) );
28422842
QCOMPARE( spy.count(), 2 );
28432843

2844+
panel->setValue( QgsPointXY( 123456.123456789, 654321.987654321 ), QgsCoordinateReferenceSystem() );
2845+
QCOMPARE( panel->value().toString(), QStringLiteral( "123456.123457,654321.987654" ) );
2846+
QCOMPARE( spy.count(), 3 );
2847+
28442848
QVERIFY( !panel->mLineEdit->showClearButton() );
28452849
panel->setAllowNull( true );
28462850
QVERIFY( panel->mLineEdit->showClearButton() );
28472851
panel->clear();
28482852
QVERIFY( !panel->value().isValid() );
2849-
QCOMPARE( spy.count(), 3 );
2853+
QCOMPARE( spy.count(), 4 );
28502854

28512855
QgsMapCanvas canvas;
28522856
canvas.setDestinationCrs( QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:28356" ) ) );
28532857
panel->setMapCanvas( &canvas );
28542858
panel->updatePoint( QgsPointXY( 1.5, -3.5 ) );
2855-
QCOMPARE( panel->value().toString(), QStringLiteral( "1.5,-3.5 [EPSG:28356]" ) );
2856-
QCOMPARE( spy.count(), 4 );
2859+
QCOMPARE( panel->value().toString(), QStringLiteral( "1.500000,-3.500000 [EPSG:28356]" ) );
2860+
QCOMPARE( spy.count(), 5 );
28572861

28582862
panel.reset();
28592863
}
@@ -2875,8 +2879,8 @@ void TestProcessingGui::testPointWrapper()
28752879
QCOMPARE( spy.count(), 1 );
28762880
if ( type != QgsProcessingGui::Modeler )
28772881
{
2878-
QCOMPARE( wrapper.widgetValue().toString(), QStringLiteral( "1,2" ) );
2879-
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1,2" ) );
2882+
QCOMPARE( wrapper.widgetValue().toString(), QStringLiteral( "1.000000,2.000000" ) );
2883+
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1.000000,2.000000" ) );
28802884
}
28812885
else
28822886
{
@@ -2887,8 +2891,8 @@ void TestProcessingGui::testPointWrapper()
28872891
QCOMPARE( spy.count(), 2 );
28882892
if ( type != QgsProcessingGui::Modeler )
28892893
{
2890-
QCOMPARE( wrapper.widgetValue().toString(), QStringLiteral( "1,2 [EPSG:3111]" ) );
2891-
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1,2 [EPSG:3111]" ) );
2894+
QCOMPARE( wrapper.widgetValue().toString(), QStringLiteral( "1.000000,2.000000 [EPSG:3111]" ) );
2895+
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1.000000,2.000000 [EPSG:3111]" ) );
28922896
}
28932897
else
28942898
{
@@ -2935,8 +2939,8 @@ void TestProcessingGui::testPointWrapper()
29352939
QCOMPARE( spy2.count(), 1 );
29362940
if ( type != QgsProcessingGui::Modeler )
29372941
{
2938-
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper2.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1,2" ) );
2939-
QCOMPARE( wrapper2.widgetValue().toString(), QStringLiteral( "1,2" ) );
2942+
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper2.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1.000000,2.000000" ) );
2943+
QCOMPARE( wrapper2.widgetValue().toString(), QStringLiteral( "1.000000,2.000000" ) );
29402944
}
29412945
else
29422946
{
@@ -2948,8 +2952,8 @@ void TestProcessingGui::testPointWrapper()
29482952
QCOMPARE( spy2.count(), 2 );
29492953
if ( type != QgsProcessingGui::Modeler )
29502954
{
2951-
QCOMPARE( wrapper2.widgetValue().toString(), QStringLiteral( "1,2 [EPSG:3111]" ) );
2952-
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper2.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1,2 [EPSG:3111]" ) );
2955+
QCOMPARE( wrapper2.widgetValue().toString(), QStringLiteral( "1.000000,2.000000 [EPSG:3111]" ) );
2956+
QCOMPARE( static_cast< QgsProcessingPointPanel * >( wrapper2.wrappedWidget() )->mLineEdit->text(), QStringLiteral( "1.000000,2.000000 [EPSG:3111]" ) );
29532957
}
29542958
else
29552959
{

0 commit comments

Comments
 (0)