Skip to content

Commit 3f5babd

Browse files
committed
fix travis and use qgscoordinateformatter
1 parent 32836da commit 3f5babd

File tree

6 files changed

+40
-48
lines changed

6 files changed

+40
-48
lines changed

src/quickgui/plugin/qgsquickplugin.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ void QgsQuickPlugin::registerTypes( const char *uri )
6262
qRegisterMetaType< QgsPointXY >( "QgsPointXY" );
6363
qRegisterMetaType< QgsQuickFeatureLayerPair >( "QgsQuickFeatureLayerPair" );
6464
qRegisterMetaType< QgsUnitTypes::DistanceUnit >( "QgsUnitTypes::DistanceUnit" );
65+
qRegisterMetaType< QgsCoordinateFormatter::FormatFlags >( "QgsCoordinateFormatter::FormatFlags" );
66+
qRegisterMetaType< QgsCoordinateFormatter::Format >( "QgsCoordinateFormatter::Format" );
6567

6668
qmlRegisterType< QgsProject >( uri, 0, 1, "Project" );
6769
qmlRegisterType< QgsQuickFeatureHighlight >( uri, 0, 1, "FeatureHighlight" );

src/quickgui/qgsquickpositionkit.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,6 @@ class QUICK_EXPORT QgsQuickPositionKit : public QObject
121121
//! \copydoc QgsQuickPositionKit::position
122122
bool hasPosition() const;
123123

124-
//! \copydoc QgsQuickPositionKit::positionLabel
125-
QString positionLabel() const;
126-
127124
//! \copydoc QgsQuickPositionKit::position
128125
QgsPoint position() const;
129126

@@ -191,13 +188,10 @@ class QUICK_EXPORT QgsQuickPositionKit : public QObject
191188
//! \copydoc QgsQuickPositionKit::position
192189
void positionChanged();
193190

194-
//! \copydoc QgsQuickPositionKit::positionLabel
195-
QString positionLabelChanged();
196-
197191
//! \copydoc QgsQuickPositionKit::projectedPosition
198192
void projectedPositionChanged();
199193

200-
//! \copydoc QgsQuickPositionKit::screenPositionChanged
194+
//! \copydoc QgsQuickPositionKit::screenPosition
201195
void screenPositionChanged();
202196

203197
//! hasPosition changed
@@ -241,7 +235,6 @@ class QUICK_EXPORT QgsQuickPositionKit : public QObject
241235
QGeoPositionInfoSource *gpsSource();
242236
QGeoPositionInfoSource *simulatedSource( double longitude, double latitude, double radius );
243237

244-
QString mPositionLabel;
245238
QgsPoint mPosition;
246239
QgsPoint mProjectedPosition;
247240
QPointF mScreenPosition;

src/quickgui/qgsquickutils.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,16 @@ QUrl QgsQuickUtils::getThemeIcon( const QString &name )
100100
return QUrl( path );
101101
}
102102

103-
QString QgsQuickUtils::qgsPointToString( const QgsPoint &point, int decimals )
103+
QString QgsQuickUtils::formatPoint(
104+
const QgsPoint &point,
105+
QgsCoordinateFormatter::Format format,
106+
int decimals,
107+
QgsCoordinateFormatter::FormatFlags flags )
104108
{
105-
return QString( "%1, %2" ).arg( QString::number( point.x(), 'f', decimals ) ).arg( QString::number( point.y(), 'f', decimals ) );
109+
return QgsCoordinateFormatter::format( point, format, decimals, flags );
106110
}
107111

108-
QString QgsQuickUtils::distanceToString( double distance, QgsUnitTypes::DistanceUnit units, int decimals )
112+
QString QgsQuickUtils::formatDistance( double distance, QgsUnitTypes::DistanceUnit units, int decimals )
109113
{
110114
double dist = distance * QgsUnitTypes::fromUnitToUnitFactor( units, QgsUnitTypes::DistanceMeters );
111115

src/quickgui/qgsquickutils.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "qgsquickfeaturelayerpair.h"
3333
#include "qgis_quick.h"
3434
#include "qgsfeature.h"
35+
#include "qgscoordinateformatter.h"
3536

3637
class QgsVectorLayer;
3738
class QgsCoordinateReferenceSystem;
@@ -123,11 +124,12 @@ class QUICK_EXPORT QgsQuickUtils: public QObject
123124
*/
124125
Q_INVOKABLE const QUrl getThemeIcon( const QString &name );
125126

126-
/**
127-
* Converts point to string with given decimals (default decimals = 3),
128-
* e.g. -2.234521, 34.4444421 -> -2.234, 34.444
129-
*/
130-
Q_INVOKABLE static QString qgsPointToString( const QgsPoint &point, int decimals = 3 );
127+
//! \copydoc QgsCoordinateFormatter::format()
128+
Q_INVOKABLE static QString formatPoint(
129+
const QgsPoint &point,
130+
QgsCoordinateFormatter::Format format = QgsCoordinateFormatter::FormatPair,
131+
int decimals = 3,
132+
QgsCoordinateFormatter::FormatFlags flags = QgsCoordinateFormatter::FlagDegreesUseStringSuffix );
131133

132134
/**
133135
* Converts distance in meters to human readable
@@ -140,7 +142,7 @@ class QUICK_EXPORT QgsQuickUtils: public QObject
140142
* \param decimals decimal to use
141143
* \returns string represetation of dist
142144
*/
143-
Q_INVOKABLE static QString distanceToString( double distance, QgsUnitTypes::DistanceUnit units, int decimals = 1 );
145+
Q_INVOKABLE static QString formatDistance( double distance, QgsUnitTypes::DistanceUnit units, int decimals = 1 );
144146

145147
//! Returns a string with information about screen size and resolution - useful for debugging
146148
QString dumpScreenInfo() const;

tests/src/quickgui/app/main.qml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ ApplicationWindow {
103103
text: {
104104
var label = "Signal Lost"
105105
if ( positionKit.hasPosition )
106-
label = QgsQuick.Utils.qgsPointToString( positionKit.position, 3 )
106+
label = QgsQuick.Utils.formatPoint( positionKit.position )
107107
if (positionKit.accuracy > 0)
108-
label += " (" + QgsQuick.Utils.distanceToString( positionKit.accuracy, positionKit.accuracyUnits, 0 ) + ")"
108+
label += " (" + QgsQuick.Utils.formatDistance( positionKit.accuracy, positionKit.accuracyUnits, 0 ) + ")"
109109
label;
110110
}
111111
height: scaleBar.height
@@ -129,7 +129,7 @@ ApplicationWindow {
129129
id: webPositionLabel
130130
text: {
131131
if ( positionKit.hasPosition )
132-
QgsQuick.Utils.qgsPointToString( coordinateTransformer.projectedPosition, 3 ) + " (web mercator)"
132+
QgsQuick.Utils.formatPoint( coordinateTransformer.projectedPosition ) + " (web mercator)"
133133
}
134134
height: scaleBar.height
135135
x: window.width - width

tests/src/quickgui/testqgsquickutils.cpp

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class TestQgsQuickUtils: public QObject
3838
void dump_screen_info();
3939
void screenUnitsToMeters();
4040
void transformedPoint();
41-
void qgsPointToString();
42-
void distanceToString();
41+
void formatPoint();
42+
void formatDistance();
4343

4444
private:
4545
QgsQuickUtils utils;
@@ -73,12 +73,12 @@ void TestQgsQuickUtils::screenUnitsToMeters()
7373
void TestQgsQuickUtils::transformedPoint()
7474
{
7575
QgsPointXY pointXY = utils.pointXYFactory( 49.9, 16.3 );
76-
QVERIFY( pointXY.x() == 49.9 );
77-
QVERIFY( pointXY.y() == 16.3 );
76+
QGSCOMPARENEAR( pointXY.x(), 49.9, 1e-4 );
77+
QGSCOMPARENEAR( pointXY.y(), 16.3, 1e-4 );
7878

7979
QgsPoint point = utils.pointFactory( 1.0, -1.0 );
80-
QVERIFY( point.x() == 1.0 );
81-
QVERIFY( point.y() == -1.0 );
80+
QGSCOMPARENEAR( point.x(), 1.0, 1e-4 );
81+
QGSCOMPARENEAR( point.y(), -1.0, 1e-4 );
8282

8383
QgsCoordinateReferenceSystem crs3857 = QgsCoordinateReferenceSystem::fromEpsgId( 3857 );
8484
QVERIFY( crs3857.authid() == "EPSG:3857" );
@@ -90,47 +90,38 @@ void TestQgsQuickUtils::transformedPoint()
9090
crs3857,
9191
QgsCoordinateTransformContext(),
9292
pointXY );
93-
QVERIFY( fabs( transformedPoint.x() - 5554843 ) < 1.0 );
94-
QVERIFY( fabs( transformedPoint.y() - 1839491 ) < 1.0 );
93+
QGSCOMPARENEAR( transformedPoint.x(), 5554843, 1.0 );
94+
QGSCOMPARENEAR( transformedPoint.y(), 1839491, 1.0 );
9595
}
9696

97-
void TestQgsQuickUtils::qgsPointToString()
97+
void TestQgsQuickUtils::formatPoint()
9898
{
9999
QgsPoint point( -2.234521, 34.4444421 );
100-
QString point2str = utils.qgsPointToString( point, 3 );
101-
QVERIFY( point2str == "-2.235, 34.444" );
102-
103-
point2str = utils.qgsPointToString( point, 2 );
104-
QVERIFY( point2str == "-2.23, 34.44" );
105-
106-
point2str = utils.qgsPointToString( point, 1 );
107-
QVERIFY( point2str == "-2.2, 34.4" );
108-
109-
point2str = utils.qgsPointToString( point, 0 );
110-
QVERIFY( point2str == "-2, 34" );
100+
QString point2str = utils.formatPoint( point );
101+
QVERIFY( point2str == "-2.235,34.444" );
111102
}
112103

113-
void TestQgsQuickUtils::distanceToString()
104+
void TestQgsQuickUtils::formatDistance()
114105
{
115-
QString dist2str = utils.distanceToString( 1222.234, QgsUnitTypes::DistanceMeters, 2 );
106+
QString dist2str = utils.formatDistance( 1222.234, QgsUnitTypes::DistanceMeters, 2 );
116107
QVERIFY( dist2str == "1.22 km" );
117108

118-
dist2str = utils.distanceToString( 1222.234, QgsUnitTypes::DistanceMeters, 1 );
109+
dist2str = utils.formatDistance( 1222.234, QgsUnitTypes::DistanceMeters, 1 );
119110
QVERIFY( dist2str == "1.2 km" );
120111

121-
dist2str = utils.distanceToString( 1222.234, QgsUnitTypes::DistanceMeters, 0 );
112+
dist2str = utils.formatDistance( 1222.234, QgsUnitTypes::DistanceMeters, 0 );
122113
QVERIFY( dist2str == "1 km" );
123114

124-
dist2str = utils.distanceToString( 700.22, QgsUnitTypes::DistanceMeters, 1 );
115+
dist2str = utils.formatDistance( 700.22, QgsUnitTypes::DistanceMeters, 1 );
125116
QVERIFY( dist2str == "700.2 m" );
126117

127-
dist2str = utils.distanceToString( 0.22, QgsUnitTypes::DistanceMeters, 0 );
118+
dist2str = utils.formatDistance( 0.22, QgsUnitTypes::DistanceMeters, 0 );
128119
QVERIFY( dist2str == "220 mm" );
129120

130-
dist2str = utils.distanceToString( -0.22, QgsUnitTypes::DistanceMeters, 0 );
121+
dist2str = utils.formatDistance( -0.22, QgsUnitTypes::DistanceMeters, 0 );
131122
QVERIFY( dist2str == "0 m" );
132123

133-
dist2str = utils.distanceToString( 1.222234, QgsUnitTypes::DistanceKilometers, 2 );
124+
dist2str = utils.formatDistance( 1.222234, QgsUnitTypes::DistanceKilometers, 2 );
134125
QVERIFY( dist2str == "1.22 km" );
135126
}
136127

0 commit comments

Comments
 (0)