[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [marble] src/lib/marble: Move placemarkLayoutOrderCompare to GeoDataPlacemark
From: Dennis_Nienhüser <nienhueser () kde ! org>
Date: 2015-10-31 18:58:46
Message-ID: E1ZsbMU-0006my-8S () scm ! kde ! org
[Download RAW message or body]
Git commit 1082ea5d1640e9da12b4d82d4dcaa920fd213c7a by Dennis Nienhüser.
Committed on 31/10/2015 at 18:15.
Pushed by nienhueser into branch 'master'.
Move placemarkLayoutOrderCompare to GeoDataPlacemark
Replaced getter function calls with direct private member access to
avoid the function call overhead during sorting
M +1 -15 src/lib/marble/PlacemarkLayout.cpp
M +13 -0 src/lib/marble/geodata/data/GeoDataPlacemark.cpp
M +2 -0 src/lib/marble/geodata/data/GeoDataPlacemark.h
http://commits.kde.org/marble/1082ea5d1640e9da12b4d82d4dcaa920fd213c7a
diff --git a/src/lib/marble/PlacemarkLayout.cpp b/src/lib/marble/PlacemarkLayout.cpp
index 0862f94..a6a7e6c 100644
--- a/src/lib/marble/PlacemarkLayout.cpp
+++ b/src/lib/marble/PlacemarkLayout.cpp
@@ -40,20 +40,6 @@
#include "MathHelper.h"
namespace
-{
- bool placemarkLayoutOrderCompare(const Marble::GeoDataPlacemark *left, const \
Marble::GeoDataPlacemark *right)
- {
- if (left->zoomLevel() != right->zoomLevel())
- return (left->zoomLevel() < right->zoomLevel()); //lower zoom level \
comes first
-
- if (left->popularity() != right->popularity())
- return left->popularity() > right->popularity(); //higher popularity \
comes first
-
- return left < right; //lower pointer value comes first
- }
-}
-
-namespace
{ //Helper function that checks for available room for the label
bool hasRoomFor(const QVector<Marble::VisiblePlacemark*> & placemarks, const \
QRectF &labelRect) {
@@ -481,7 +467,7 @@ QVector<VisiblePlacemark *> PlacemarkLayout::generateLayout( \
const ViewportParam foreach ( const TileId &tileId, tileIdList ) {
placemarkList += m_placemarkCache.value( tileId );
}
- qSort(placemarkList.begin(), placemarkList.end(), placemarkLayoutOrderCompare);
+ qSort(placemarkList.begin(), placemarkList.end(), \
GeoDataPlacemark::placemarkLayoutOrderCompare);
foreach ( const GeoDataPlacemark *placemark, placemarkList ) {
const GeoDataCoordinates coordinates = placemarkIconCoordinates( placemark \
);
diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp \
b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp index 9edaa84..f7f57b3 100644
--- a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp
+++ b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp
@@ -212,6 +212,19 @@ GeoDataLookAt *GeoDataPlacemark::lookAt()
return dynamic_cast<GeoDataLookAt*>( abstractView() );
}
+bool GeoDataPlacemark::placemarkLayoutOrderCompare(const GeoDataPlacemark *left, \
const GeoDataPlacemark *right) +{
+ if (left->d->m_zoomLevel != right->d->m_zoomLevel) {
+ return (left->d->m_zoomLevel < right->d->m_zoomLevel); // lower zoom level \
comes first + }
+
+ if (left->d->m_popularity != right->d->m_popularity) {
+ return left->d->m_popularity > right->d->m_popularity; // higher popularity \
comes first + }
+
+ return left < right; // lower pointer value comes first
+}
+
GeoDataCoordinates GeoDataPlacemark::coordinate( const QDateTime &dateTime, bool \
*iconAtCoordinates ) const {
bool hasIcon = false;
diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.h \
b/src/lib/marble/geodata/data/GeoDataPlacemark.h index ad9f434..1de60d9 100644
--- a/src/lib/marble/geodata/data/GeoDataPlacemark.h
+++ b/src/lib/marble/geodata/data/GeoDataPlacemark.h
@@ -234,6 +234,8 @@ class GEODATA_EXPORT GeoDataPlacemark: public GeoDataFeature
const GeoDataLookAt *lookAt() const;
GeoDataLookAt *lookAt();
+ static bool placemarkLayoutOrderCompare(const GeoDataPlacemark *a, const \
GeoDataPlacemark* b); +
private:
GeoDataPlacemarkPrivate *p();
const GeoDataPlacemarkPrivate *p() const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic