From f112716093994d2885d48659093b5d23be106324 Mon Sep 17 00:00:00 2001 From: ExMix Date: Mon, 6 Oct 2014 19:16:22 +0300 Subject: [PATCH] [core] rotate map on north on routing close --- map/location_state.cpp | 11 +++++++++-- map/location_state.hpp | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/map/location_state.cpp b/map/location_state.cpp index 0a5a1b17ad..d84715d77d 100644 --- a/map/location_state.cpp +++ b/map/location_state.cpp @@ -306,7 +306,9 @@ void State::StartRouteFollow() void State::StopRoutingMode() { - SetModeInfo(ExcludeModeBit(m_modeInfo, RoutingSessionBit)); + SetModeInfo(ChangeMode(ExcludeModeBit(m_modeInfo, RoutingSessionBit), Follow)); + RotateOnNorth(); + AnimateFollow(); } void State::TurnOff() @@ -783,7 +785,7 @@ void State::AnimateStateTransition(Mode oldMode, Mode newMode) } else if (oldMode == RotateAndFollow && newMode == UnknownPosition) { - m_framework->GetAnimator().RotateScreen(GetModelView().GetAngle(), 0.0); + RotateOnNorth(); } AnimateFollow(); @@ -801,6 +803,11 @@ void State::AnimateFollow() } } +void State::RotateOnNorth() +{ + m_framework->GetAnimator().RotateScreen(GetModelView().GetAngle(), 0.0); +} + void State::Assign(location::GpsInfo const & info) { m2::RectD rect = MercatorBounds::MetresToXY(info.m_longitude, diff --git a/map/location_state.hpp b/map/location_state.hpp index c57f75d653..3d2ec853f2 100644 --- a/map/location_state.hpp +++ b/map/location_state.hpp @@ -115,6 +115,8 @@ namespace location void AnimateStateTransition(Mode oldMode, Mode newMode); void AnimateFollow(); + void RotateOnNorth(); + void CallPositionChangedListeners(m2::PointD const & pt); void CallStateModeListeners();