forked from organicmaps/organicmaps
[guides on map] Close gallery on map moving.
This commit is contained in:
parent
ba86a3f0d8
commit
fb7c4fdaf4
3 changed files with 31 additions and 2 deletions
|
@ -382,6 +382,11 @@ Framework::Framework(FrameworkParams const & params)
|
|||
bind(&Framework::GetMwmsByRect, this, _1, false /* rough */))
|
||||
, m_isolinesManager(m_featuresFetcher.GetDataSource(),
|
||||
bind(&Framework::GetMwmsByRect, this, _1, false /* rough */))
|
||||
, m_guidesManager([this]()
|
||||
{
|
||||
if (m_currentPlacePageInfo && m_currentPlacePageInfo->IsGuide())
|
||||
DeactivateMapSelection(true /* notifyUI */);
|
||||
})
|
||||
, m_routingManager(
|
||||
RoutingManager::Callbacks(
|
||||
[this]() -> DataSource & { return m_featuresFetcher.GetDataSource(); },
|
||||
|
|
|
@ -24,6 +24,12 @@ auto constexpr kRequestAttemptsCount = 3;
|
|||
auto constexpr kScaleEps = 0.1115;
|
||||
} // namespace
|
||||
|
||||
GuidesManager::GuidesManager(CloseGalleryFn && closeGalleryFn)
|
||||
: m_closeGallery(std::move(closeGalleryFn))
|
||||
{
|
||||
CHECK(m_closeGallery != nullptr, ());
|
||||
}
|
||||
|
||||
GuidesManager::GuidesState GuidesManager::GetState() const
|
||||
{
|
||||
return m_state;
|
||||
|
@ -71,6 +77,8 @@ void GuidesManager::UpdateViewport(ScreenBase const & screen)
|
|||
}
|
||||
}
|
||||
|
||||
m_closeGallery();
|
||||
|
||||
m_screen = screen;
|
||||
m_zoom = zoom;
|
||||
|
||||
|
@ -143,8 +151,15 @@ void GuidesManager::RequestGuides()
|
|||
|
||||
UpdateGuidesMarks();
|
||||
|
||||
if (m_onGalleryChanged)
|
||||
m_onGalleryChanged(true /* reload */);
|
||||
if (m_activeGuide.empty())
|
||||
{
|
||||
m_closeGallery();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_onGalleryChanged)
|
||||
m_onGalleryChanged(true /* reload */);
|
||||
}
|
||||
},
|
||||
[this, requestNumber]() mutable {
|
||||
if (m_state == GuidesState::Disabled || m_state == GuidesState::FatalNetworkError)
|
||||
|
@ -173,6 +188,7 @@ void GuidesManager::Clear()
|
|||
m_errorRequestsCount = 0;
|
||||
|
||||
UpdateGuidesMarks();
|
||||
m_closeGallery();
|
||||
}
|
||||
|
||||
GuidesManager::GuidesGallery GuidesManager::GetGallery() const
|
||||
|
@ -295,6 +311,9 @@ void GuidesManager::OnClusterSelected(GuidesClusterMark const & mark, ScreenBase
|
|||
|
||||
void GuidesManager::OnGuideSelected(GuideMark const & mark)
|
||||
{
|
||||
if (mark.GetGuideId() == m_activeGuide)
|
||||
return;
|
||||
|
||||
auto es = m_bmManager->GetEditSession();
|
||||
es.ClearGroup(UserMark::Type::GUIDE_SELECTION);
|
||||
es.CreateUserMark<GuideSelectionMark>(mark.GetPivot());
|
||||
|
|
|
@ -77,6 +77,9 @@ public:
|
|||
std::vector<Item> m_items;
|
||||
};
|
||||
|
||||
using CloseGalleryFn = std::function<void()>;
|
||||
explicit GuidesManager(CloseGalleryFn && closeGalleryFn);
|
||||
|
||||
GuidesState GetState() const;
|
||||
|
||||
using GuidesStateChangedFn = std::function<void(GuidesState state)>;
|
||||
|
@ -117,6 +120,8 @@ private:
|
|||
|
||||
bool IsRequestParamsInitialized() const;
|
||||
|
||||
CloseGalleryFn m_closeGallery;
|
||||
|
||||
GuidesState m_state = GuidesState::Disabled;
|
||||
GuidesStateChangedFn m_onStateChanged;
|
||||
GuidesGalleryChangedFn m_onGalleryChanged;
|
||||
|
|
Loading…
Add table
Reference in a new issue