diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 9c211bfeb1..3e66b8e21d 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -130,6 +130,10 @@ void BookmarkManager::DrawCategory(BookmarkCategory const * cat, PaintOverlayEve { #ifndef USE_DRAPE /// TODO cutomize draw in UserMarkContainer for user Draw method + ASSERT(cat, ()); + if (!cat->IsVisible()) + return; + Navigator const & navigator = m_framework.GetNavigator(); ScreenBase const & screen = navigator.Screen(); @@ -275,14 +279,15 @@ void BookmarkManager::DrawItems(shared_ptr const & e) const auto dlUpdateFn = [&trackUpdateFn] (BookmarkCategory const * cat) { - if (cat->IsVisible()) + bool const isVisible = cat->IsVisible(); + for (size_t j = 0; j < cat->GetTracksCount(); ++j) { - for (size_t j = 0; j < cat->GetTracksCount(); ++j) - { - Track const * track = cat->GetTrack(j); - ASSERT(track, ()); + Track const * track = cat->GetTrack(j); + ASSERT(track, ()); + if (isVisible) trackUpdateFn(track); - } + else + track->CleanUp(); } }; diff --git a/map/track.cpp b/map/track.cpp index 2426f06f19..07de1b4ea6 100644 --- a/map/track.cpp +++ b/map/track.cpp @@ -117,7 +117,6 @@ double Track::GetLengthMeters() const void Track::Swap(Track & rhs) { - swap(m_isVisible, rhs.m_isVisible); swap(m_rect, rhs.m_rect); swap(m_outlines, rhs.m_outlines); m_name.swap(rhs.m_name); diff --git a/map/track.hpp b/map/track.hpp index aa31ab638a..74594cf0fe 100644 --- a/map/track.hpp +++ b/map/track.hpp @@ -42,8 +42,7 @@ public: virtual ~Track(); explicit Track(PolylineD const & polyline) - : m_isVisible(true), - m_polyline(polyline) + : m_polyline(polyline) { ASSERT_GREATER(polyline.GetSize(), 1, ()); @@ -63,8 +62,6 @@ public: /// @name Simple Getters-Setter //@{ - bool IsVisible() const { return m_isVisible; } - void SetVisible(bool visible) { m_isVisible = visible; } struct TrackOutline { @@ -90,7 +87,6 @@ protected: void DeleteDisplayList() const; private: - bool m_isVisible = false; string m_name; vector m_outlines;