diff --git a/src/core/layout/qgspagesizeregistry.cpp b/src/core/layout/qgspagesizeregistry.cpp index d4fd76bf7d2..745a62e1e69 100644 --- a/src/core/layout/qgspagesizeregistry.cpp +++ b/src/core/layout/qgspagesizeregistry.cpp @@ -97,8 +97,8 @@ QString QgsPageSizeRegistry::find( const QgsLayoutSize &size ) const QgsLayoutSize xSize = converter.convert( size, pageSize.size.units() ); //consider width and height values may be exchanged - if ( ( qgsDoubleNear( xSize.width(), pageSize.size.width() ) && qgsDoubleNear( xSize.height(), pageSize.size.height() ) ) - || ( qgsDoubleNear( xSize.height(), pageSize.size.width() ) && qgsDoubleNear( xSize.width(), pageSize.size.height() ) ) ) + if ( ( qgsDoubleNear( xSize.width(), pageSize.size.width(), 0.01 ) && qgsDoubleNear( xSize.height(), pageSize.size.height(), 0.01 ) ) + || ( qgsDoubleNear( xSize.height(), pageSize.size.width(), 0.01 ) && qgsDoubleNear( xSize.width(), pageSize.size.height(), 0.01 ) ) ) { return pageSize.name; } diff --git a/tests/src/core/testqgspagesizeregistry.cpp b/tests/src/core/testqgspagesizeregistry.cpp index 2d127f65d45..046d57d5f17 100644 --- a/tests/src/core/testqgspagesizeregistry.cpp +++ b/tests/src/core/testqgspagesizeregistry.cpp @@ -131,7 +131,8 @@ void TestQgsPageSizeRegistry::findBySize() QCOMPARE( registry->find( QgsLayoutSize( 297, 210 ) ), QStringLiteral( "A4" ) ); QCOMPARE( registry->find( QgsLayoutSize( 125, 176 ) ), QStringLiteral( "B6" ) ); QCOMPARE( registry->find( QgsLayoutSize( 21, 29.7, QgsUnitTypes::LayoutCentimeters ) ), QStringLiteral( "A4" ) ); - + // must have allowance of 0.01 units - because we round to this precision in all page size widgets + QCOMPARE( registry->find( QgsLayoutSize( 125.009, 175.991 ) ), QStringLiteral( "B6" ) ); } void TestQgsPageSizeRegistry::decodePageSize()