[core] notify if active bookmark of bookmark category deleted

This commit is contained in:
ExMix 2014-10-21 18:54:52 +03:00 committed by Alex Zolotarev
parent 4886b1d86f
commit 3b8f933575
5 changed files with 24 additions and 4 deletions

View file

@ -128,6 +128,13 @@ void BookmarkCategory::DeleteBookmark(size_t index)
ASSERT_LESS(index, c.GetUserMarkCount(), ());
UserMark const * markForDelete = c.GetUserMark(index);
if (m_framework.GetBookmarkManager().IsUserMarkActive(markForDelete))
{
PinClickManager & clickManager = m_framework.GetBalloonManager();
clickManager.RemovePin();
clickManager.Dismiss();
}
int animIndex = -1;
for (size_t i = 0; i < m_anims.size(); ++i)
{

View file

@ -287,9 +287,13 @@ void BookmarkManager::DrawItems(shared_ptr<PaintEvent> const & e) const
void BookmarkManager::DeleteBmCategory(CategoryIter i)
{
m_selection.ActivateMark(0, false);
BookmarkCategory * cat = *i;
if (m_selection.m_container == cat)
{
PinClickManager & clikManager = m_framework.GetBalloonManager();
clikManager.RemovePin();
clikManager.Dismiss();
}
FileWriter::DeleteFileX(cat->GetFileName());
@ -319,6 +323,15 @@ bool BookmarkManager::UserMarkHasActive() const
return m_selection.IsActive();
}
bool BookmarkManager::IsUserMarkActive(UserMark const * mark) const
{
if (mark == nullptr)
return false;
return (m_selection.m_container == mark->GetContainer() &&
m_selection.m_ptOrg.EqualDxDy(mark->GetOrg(), 1.0E-4));
}
namespace
{
class BestUserMarkFinder

View file

@ -7,7 +7,6 @@ class Framework;
class PaintEvent;
namespace graphics { class Screen; }
class BookmarkManager : private noncopyable
{
vector<BookmarkCategory *> m_categories;
@ -62,6 +61,7 @@ public:
void ActivateMark(UserMark const * mark, bool needAnim);
bool UserMarkHasActive() const;
bool IsUserMarkActive(UserMark const * container) const;
class TouchRectHolder
{
public:

View file

@ -333,7 +333,6 @@ bool SelectionContainer::IsActive() const
return m_container != NULL;
}
void SelectionContainer::StartActivationAnim()
{
m_animTask.reset(new PinAnimation(m_fm));

View file

@ -153,6 +153,7 @@ private:
shared_ptr<anim::Task> m_animTask;
private:
friend class BookmarkManager;
UserMarkContainer const * m_container;
m2::PointD m_ptOrg;
Framework & m_fm;