From 0a94c5036b347a5be84bca8f0cdcd35ad9ee011e Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Wed, 1 Mar 2017 07:38:43 +0200 Subject: [PATCH] Fix label rotation. --HG-- branch : feature --- src/libs/vwidgets/vgrainlineitem.cpp | 6 ++++++ src/libs/vwidgets/vgrainlineitem.h | 2 ++ src/libs/vwidgets/vpieceitem.cpp | 2 +- src/libs/vwidgets/vpieceitem.h | 4 ++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libs/vwidgets/vgrainlineitem.cpp b/src/libs/vwidgets/vgrainlineitem.cpp index 5efa644c9..ec76be497 100644 --- a/src/libs/vwidgets/vgrainlineitem.cpp +++ b/src/libs/vwidgets/vgrainlineitem.cpp @@ -541,6 +541,12 @@ void VGrainlineItem::UpdateRectangle() prepareGeometryChange(); } +//--------------------------------------------------------------------------------------------------------------------- +double VGrainlineItem::GetAngle(const QPointF &pt) const +{ + return -VPieceItem::GetAngle(pt); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief VGrainlineItem::Rotate rotates point pt around ptCenter by angle dAng [rad] diff --git a/src/libs/vwidgets/vgrainlineitem.h b/src/libs/vwidgets/vgrainlineitem.h index 0c59896c9..e0fd31fe2 100644 --- a/src/libs/vwidgets/vgrainlineitem.h +++ b/src/libs/vwidgets/vgrainlineitem.h @@ -59,6 +59,8 @@ protected: virtual void Update() Q_DECL_OVERRIDE; void UpdateRectangle(); + virtual double GetAngle(const QPointF &pt) const Q_DECL_OVERRIDE; + QPointF Rotate(const QPointF& pt, const QPointF& ptCenter, qreal dAng) const; QPointF GetInsideCorner(int i, qreal dDist) const; diff --git a/src/libs/vwidgets/vpieceitem.cpp b/src/libs/vwidgets/vpieceitem.cpp index f11b87d77..5117b8c8c 100644 --- a/src/libs/vwidgets/vpieceitem.cpp +++ b/src/libs/vwidgets/vpieceitem.cpp @@ -103,7 +103,7 @@ double VPieceItem::GetAngle(const QPointF &pt) const } else { - return -qAtan2(dY, dX); + return qAtan2(dY, dX); } } diff --git a/src/libs/vwidgets/vpieceitem.h b/src/libs/vwidgets/vpieceitem.h index a1cb1c4bc..b97a95fb3 100644 --- a/src/libs/vwidgets/vpieceitem.h +++ b/src/libs/vwidgets/vpieceitem.h @@ -48,8 +48,6 @@ public: void Reset(); bool IsIdle() const; - double GetAngle(const QPointF &pt) const; - MoveType GetMoveType() const; void SetMoveType(const MoveType &moveType); @@ -72,6 +70,8 @@ protected: qreal m_inactiveZ; + virtual double GetAngle(const QPointF &pt) const; + private: Q_DISABLE_COPY(VPieceItem) };