From 69e0dea5de987d5b6e684b721b322b0495921981 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Wed, 14 Sep 2022 15:26:46 +0200 Subject: Cleanup: de-virtualize QGeoRouteSegmentPrivate The possibility to override this type in plugins is not used anywhere, and overcomplicates the code. There isn't even a way to create a QGeoRouteSegment with a reimplementation of the private. So remove this; if this is really needed for anything, then we can bring it back later. Change-Id: I34ad55d0ddf29cafc53e90e2a987c3faf904b437 Reviewed-by: Alex Blasche --- src/location/maps/qgeoroutesegment.cpp | 159 +++++---------------------------- src/location/maps/qgeoroutesegment_p.h | 79 +++++----------- 2 files changed, 40 insertions(+), 198 deletions(-) (limited to 'src') diff --git a/src/location/maps/qgeoroutesegment.cpp b/src/location/maps/qgeoroutesegment.cpp index e967183d..6f3ab581 100644 --- a/src/location/maps/qgeoroutesegment.cpp +++ b/src/location/maps/qgeoroutesegment.cpp @@ -45,12 +45,6 @@ QT_BEGIN_NAMESPACE -template<> -QGeoRouteSegmentPrivate *QExplicitlySharedDataPointer::clone() -{ - return d->clone(); -} - QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QGeoRouteSegmentPrivate) /*! @@ -108,7 +102,7 @@ QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QGeoRouteSegmentPrivate) setTravelTime(), setDistance(), setPath() or setManeuver() is called. */ QGeoRouteSegment::QGeoRouteSegment() - : d_ptr(new QGeoRouteSegmentPrivateDefault()) {} + : d_ptr(new QGeoRouteSegmentPrivate()) {} /*! Constructs a route segment object from the contents of \a other. @@ -318,88 +312,75 @@ QGeoManeuver QGeoRouteSegment::maneuver() const /******************************************************************************* *******************************************************************************/ -QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate() {} - -QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate(const QGeoRouteSegmentPrivate &other) - : QSharedData(other), m_nextSegment(other.m_nextSegment) {} - -QGeoRouteSegmentPrivate::~QGeoRouteSegmentPrivate() -{ - m_nextSegment.reset(); -} - -bool QGeoRouteSegmentPrivate::operator ==(const QGeoRouteSegmentPrivate &other) const -{ - return equals(other); -} +QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate() = default; -bool QGeoRouteSegmentPrivate::equals(const QGeoRouteSegmentPrivate &other) const +bool operator==(const QGeoRouteSegmentPrivate &lhs, const QGeoRouteSegmentPrivate &rhs) { - return ((valid() == other.valid()) - && (travelTime() == other.travelTime()) - && (distance() == other.distance()) - && (path() == other.path()) - && (maneuver() == other.maneuver())); + return lhs.m_valid == rhs.m_valid + && lhs.m_travelTime == rhs.m_travelTime + && lhs.m_distance == rhs.m_distance + && lhs.m_path == rhs.m_path + && lhs.m_maneuver == rhs.m_maneuver; } bool QGeoRouteSegmentPrivate::valid() const { - return false; + return m_valid; } void QGeoRouteSegmentPrivate::setValid(bool valid) { - Q_UNUSED(valid); + m_valid = valid; } bool QGeoRouteSegmentPrivate::isLegLastSegment() const { - return false; + return m_legLastSegment; } void QGeoRouteSegmentPrivate::setLegLastSegment(bool lastSegment) { - Q_UNUSED(lastSegment); + m_legLastSegment = lastSegment; } int QGeoRouteSegmentPrivate::travelTime() const { - return 0; + return m_travelTime; } void QGeoRouteSegmentPrivate::setTravelTime(int travelTime) { - Q_UNUSED(travelTime); + m_travelTime = travelTime; } qreal QGeoRouteSegmentPrivate::distance() const { - return 0; + return m_distance; } void QGeoRouteSegmentPrivate::setDistance(qreal distance) { - Q_UNUSED(distance); + m_distance = distance; } QList QGeoRouteSegmentPrivate::path() const { - return QList(); + return m_path; } void QGeoRouteSegmentPrivate::setPath(const QList &path) { - Q_UNUSED(path); + m_path = path; } QGeoManeuver QGeoRouteSegmentPrivate::maneuver() const { - return QGeoManeuver(); + return m_maneuver; } void QGeoRouteSegmentPrivate::setManeuver(const QGeoManeuver &maneuver) { - Q_UNUSED(maneuver); + m_maneuver = maneuver; } QExplicitlySharedDataPointer QGeoRouteSegmentPrivate::nextRouteSegment() const @@ -417,106 +398,6 @@ QGeoRouteSegmentPrivate *QGeoRouteSegmentPrivate::get(QGeoRouteSegment &segment) return segment.d_ptr.data(); } -/******************************************************************************* -*******************************************************************************/ - -QGeoRouteSegmentPrivateDefault::QGeoRouteSegmentPrivateDefault() - : m_valid(false), - m_travelTime(0), - m_distance(0.0) -{ - -} - -QGeoRouteSegmentPrivateDefault::QGeoRouteSegmentPrivateDefault(const QGeoRouteSegmentPrivateDefault &other) - : QGeoRouteSegmentPrivate(other), - m_valid(other.m_valid), - m_travelTime(other.m_travelTime), - m_distance(other.m_distance), - m_path(other.m_path), - m_maneuver(other.m_maneuver) -{ - -} - -QGeoRouteSegmentPrivateDefault::~QGeoRouteSegmentPrivateDefault() -{ - -} - -QGeoRouteSegmentPrivate *QGeoRouteSegmentPrivateDefault::clone() -{ - return new QGeoRouteSegmentPrivateDefault(*this); -} - -bool QGeoRouteSegmentPrivateDefault::operator ==(const QGeoRouteSegmentPrivateDefault &other) const -{ - return QGeoRouteSegmentPrivate::operator ==(other); -} - -bool QGeoRouteSegmentPrivateDefault::valid() const -{ - return m_valid; -} - -void QGeoRouteSegmentPrivateDefault::setValid(bool valid) -{ - m_valid = valid; -} - -bool QGeoRouteSegmentPrivateDefault::isLegLastSegment() const -{ - return m_legLastSegment; -} - -void QGeoRouteSegmentPrivateDefault::setLegLastSegment(bool lastSegment) -{ - m_legLastSegment = lastSegment; -} - -int QGeoRouteSegmentPrivateDefault::travelTime() const -{ - return m_travelTime; -} - -void QGeoRouteSegmentPrivateDefault::setTravelTime(int travelTime) -{ - m_travelTime = travelTime; -} - -qreal QGeoRouteSegmentPrivateDefault::distance() const -{ - return m_distance; -} - -void QGeoRouteSegmentPrivateDefault::setDistance(qreal distance) -{ - m_distance = distance; -} - -QList QGeoRouteSegmentPrivateDefault::path() const -{ - return m_path; -} - -void QGeoRouteSegmentPrivateDefault::setPath(const QList &path) -{ - m_path = path; -} - -QGeoManeuver QGeoRouteSegmentPrivateDefault::maneuver() const -{ - return m_maneuver; -} - -void QGeoRouteSegmentPrivateDefault::setManeuver(const QGeoManeuver &maneuver) -{ - m_maneuver = maneuver; -} - -/******************************************************************************* -*******************************************************************************/ - QT_END_NAMESPACE #include "moc_qgeoroutesegment.cpp" diff --git a/src/location/maps/qgeoroutesegment_p.h b/src/location/maps/qgeoroutesegment_p.h index 3807d4b8..42cc428c 100644 --- a/src/location/maps/qgeoroutesegment_p.h +++ b/src/location/maps/qgeoroutesegment_p.h @@ -68,77 +68,38 @@ class Q_LOCATION_PRIVATE_EXPORT QGeoRouteSegmentPrivate : public QSharedData { public: QGeoRouteSegmentPrivate(); - QGeoRouteSegmentPrivate(const QGeoRouteSegmentPrivate &other); - virtual ~QGeoRouteSegmentPrivate(); - virtual QGeoRouteSegmentPrivate *clone() = 0; - - bool operator ==(const QGeoRouteSegmentPrivate &other) const; - - virtual bool valid() const; - virtual void setValid(bool valid); - - virtual bool isLegLastSegment() const; - virtual void setLegLastSegment(bool lastSegment); - - virtual int travelTime() const; - virtual void setTravelTime(int travelTime); - - virtual qreal distance() const; - virtual void setDistance(qreal distance); - - virtual QList path() const; - virtual void setPath(const QList &path); - - virtual QGeoManeuver maneuver() const; - virtual void setManeuver(const QGeoManeuver &maneuver); - - virtual QExplicitlySharedDataPointer nextRouteSegment() const; - virtual void setNextRouteSegment(const QExplicitlySharedDataPointer &next); - - QExplicitlySharedDataPointer m_nextSegment; static QGeoRouteSegmentPrivate *get(QGeoRouteSegment &segment); -protected: - virtual bool equals(const QGeoRouteSegmentPrivate &other) const; -}; - - - -class Q_LOCATION_PRIVATE_EXPORT QGeoRouteSegmentPrivateDefault : public QGeoRouteSegmentPrivate -{ -public: - QGeoRouteSegmentPrivateDefault(); - QGeoRouteSegmentPrivateDefault(const QGeoRouteSegmentPrivateDefault &other); - ~QGeoRouteSegmentPrivateDefault(); - QGeoRouteSegmentPrivate *clone() override; - - bool operator ==(const QGeoRouteSegmentPrivateDefault &other) const; - - bool valid() const override; - void setValid(bool valid) override; + bool valid() const; + void setValid(bool valid); - bool isLegLastSegment() const override; - void setLegLastSegment(bool lastSegment) override; + bool isLegLastSegment() const; + void setLegLastSegment(bool lastSegment); - int travelTime() const override; - void setTravelTime(int travelTime) override; + int travelTime() const; + void setTravelTime(int travelTime); - qreal distance() const override; - void setDistance(qreal distance) override; + qreal distance() const; + void setDistance(qreal distance); - QList path() const override; - void setPath(const QList &path) override; + QList path() const; + void setPath(const QList &path); - QGeoManeuver maneuver() const override; - void setManeuver(const QGeoManeuver &maneuver) override; + QGeoManeuver maneuver() const; + void setManeuver(const QGeoManeuver &maneuver); + QExplicitlySharedDataPointer nextRouteSegment() const; + void setNextRouteSegment(const QExplicitlySharedDataPointer &next); - bool m_valid; + QExplicitlySharedDataPointer m_nextSegment; + bool m_valid = false; bool m_legLastSegment = false; - int m_travelTime; - qreal m_distance; + int m_travelTime = 0; + qreal m_distance = 0.0; QList m_path; QGeoManeuver m_maneuver; + + friend bool operator==(const QGeoRouteSegmentPrivate &lhs, const QGeoRouteSegmentPrivate &rhs); }; QT_END_NAMESPACE -- cgit v1.2.1