From 1d1aa515de8dde1210ba6f191e6f6f4e4668d181 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Thu, 10 Nov 2016 21:48:57 -0500 Subject: [PATCH] Remove Bookmark functional --- src/BookmarkMgr.cpp | 11 +++++++++++ src/BookmarkMgr.h | 1 + src/forms/Bookmark/BookmarkView.cpp | 20 +++++++++++++------- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/BookmarkMgr.cpp b/src/BookmarkMgr.cpp index 77eddb8..f5cb324 100644 --- a/src/BookmarkMgr.cpp +++ b/src/BookmarkMgr.cpp @@ -39,6 +39,17 @@ void BookmarkMgr::removeBookmark(std::string group, BookmarkEntry *be) { bmData[group].erase(be); } +void BookmarkMgr::removeBookmark(BookmarkEntry *be) { + std::lock_guard < std::mutex > lockData(busy_lock); + std::lock_guard < std::mutex > lockEnt(be->busy_lock); + + for (auto &bmd_i : bmData) { + if (bmd_i.second.find(be) != bmd_i.second.end()) { + bmd_i.second.erase(be); + } + } + +} BookmarkList BookmarkMgr::getBookmarks(std::string group) { std::lock_guard < std::mutex > lock(busy_lock); diff --git a/src/BookmarkMgr.h b/src/BookmarkMgr.h index 9faca51..5444405 100644 --- a/src/BookmarkMgr.h +++ b/src/BookmarkMgr.h @@ -42,6 +42,7 @@ public: void addBookmark(std::string group, DemodulatorInstance *demod); void addBookmark(std::string group, BookmarkEntry *be); void removeBookmark(std::string group, BookmarkEntry *be); + void removeBookmark(BookmarkEntry *be); BookmarkList getBookmarks(std::string group); diff --git a/src/forms/Bookmark/BookmarkView.cpp b/src/forms/Bookmark/BookmarkView.cpp index b8b6150..9bf1f4b 100644 --- a/src/forms/Bookmark/BookmarkView.cpp +++ b/src/forms/Bookmark/BookmarkView.cpp @@ -470,11 +470,11 @@ void BookmarkView::onTreeSelect( wxTreeEvent& event ) { if (!tvi) { if (itm == bookmarkBranch) { - + bookmarkBranchSelection(); } else if (itm == activeBranch) { - + activeBranchSelection(); } else if (itm == recentBranch) { - + recentBranchSelection(); } else { m_propPanel->Hide(); hideProps(); @@ -539,9 +539,11 @@ void BookmarkView::onBookmarkActive( wxCommandEvent& event ) { } void BookmarkView::onBookmarkRecent( wxCommandEvent& event ) { - if (bookmarkSel) { - wxGetApp().getBookmarkMgr().removeRecent(bookmarkSel); - wxGetApp().getBookmarkMgr().addBookmark("Ungrouped", bookmarkSel); + if (recentSel) { + wxGetApp().getBookmarkMgr().removeRecent(recentSel); + wxGetApp().getBookmarkMgr().addBookmark("Ungrouped", recentSel); + wxGetApp().getBookmarkMgr().updateBookmarks(); + wxGetApp().getBookmarkMgr().updateActiveList(); } } @@ -557,7 +559,11 @@ void BookmarkView::onRemoveActive( wxCommandEvent& event ) { void BookmarkView::onRemoveBookmark( wxCommandEvent& event ) { - // todo + if (bookmarkSel) { + wxGetApp().getBookmarkMgr().removeBookmark(bookmarkSel); + bookmarkSel = nullptr; + wxGetApp().getBookmarkMgr().updateBookmarks(); + } }