From 21cc2bbf52aabfd127c99b783593f21306ef4ef4 Mon Sep 17 00:00:00 2001 From: Kiryl Kaveryn Date: Fri, 20 Jun 2025 17:07:39 +0400 Subject: [PATCH] [map] Show track's place page screen on save route automatically It will help the user to save the track to the right place, set color and name without searching for the track in the bookmarks screen. Signed-off-by: Kiryl Kaveryn --- map/framework.cpp | 3 ++- map/routing_manager.cpp | 4 ++-- map/routing_manager.hpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index ff4362e8c..0804db02a 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1775,7 +1775,8 @@ bool Framework::IsTrackRecordingEnabled() const void Framework::SaveRoute() { - m_routingManager.SaveRoute(); + auto const trackId = m_routingManager.SaveRoute(); + ShowTrack(trackId); } void Framework::OnUpdateGpsTrackPointsCallback(vector> && toAdd, diff --git a/map/routing_manager.cpp b/map/routing_manager.cpp index 5bd704ad1..5620f376f 100644 --- a/map/routing_manager.cpp +++ b/map/routing_manager.cpp @@ -1098,7 +1098,7 @@ static std::string GetNameFromPoint(RouteMarkData const & rmd) return rmd.m_title; } -void RoutingManager::SaveRoute() +kml::TrackId RoutingManager::SaveRoute() { auto points = GetRoutePolyline().GetPolyline().GetPoints(); auto const routePoints = GetRoutePoints(); @@ -1109,7 +1109,7 @@ void RoutingManager::SaveRoute() std::unique(points.begin(), points.end(), [](const m2::PointD & p1, const m2::PointD & p2) { return AlmostEqualAbs(p1, p2, kMwmPointAccuracy); }), points.end()); - m_bmManager->SaveRoute(points, from, to); + return m_bmManager->SaveRoute(points, from, to); } bool RoutingManager::DisableFollowMode() diff --git a/map/routing_manager.hpp b/map/routing_manager.hpp index b38ef542b..5e51dfee2 100644 --- a/map/routing_manager.hpp +++ b/map/routing_manager.hpp @@ -142,7 +142,7 @@ public: // This method was added because we do not want to break the behaviour that is familiar to our // users. bool DisableFollowMode(); - void SaveRoute(); + kml::TrackId SaveRoute(); void SetRouteBuildingListener(RouteBuildingCallback const & buildingCallback) {