From b43a4337af47d1b1871dd5a8ff1a62de972cc167 Mon Sep 17 00:00:00 2001 From: Mailson Menezes Date: Sun, 29 Dec 2013 19:09:50 +0100 Subject: [PATCH] Fix adding and removing bookmarks in the thumbnail panel Fix adding and removing bookmarks in the thumbnail panel Add and removal of bookmarks via the thumbnail context menu was acting on the current viewport instead of the clicked page. This patch checks whether it should act on the viewport or in the right clicked page. BUGS: 323267 FIXED-IN: 4.11.5 --- part.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/part.cpp b/part.cpp index 71c3d0f5d..744be47ab 100644 --- a/part.cpp +++ b/part.cpp @@ -2264,6 +2264,8 @@ void Part::slotShowMenu(const Okular::Page *page, const QPoint &point) return; bool reallyShow = false; + const bool currentPage = page && page->number() == m_document->viewport().pageNumber; + if (!m_actionsSearched) { // the quest for options_show_menubar @@ -2296,7 +2298,8 @@ void Part::slotShowMenu(const Okular::Page *page, const QPoint &point) if (page) { popup->addTitle( i18n( "Page %1", page->number() + 1 ) ); - if ( m_document->bookmarkManager()->isBookmarked( m_document->viewport() ) ) + if ( ( !currentPage && m_document->bookmarkManager()->isBookmarked( page->number() ) ) || + ( currentPage && m_document->bookmarkManager()->isBookmarked( m_document->viewport() ) ) ) removeBookmark = popup->addAction( KIcon("edit-delete-bookmark"), i18n("Remove Bookmark") ); else addBookmark = popup->addAction( KIcon("bookmark-new"), i18n("Add Bookmark") ); @@ -2328,9 +2331,24 @@ void Part::slotShowMenu(const Okular::Page *page, const QPoint &point) QAction *res = popup->exec(point); if (res) { - if (res == addBookmark) m_document->bookmarkManager()->addBookmark( m_document->viewport() ); - else if (res == removeBookmark) m_document->bookmarkManager()->removeBookmark( m_document->viewport() ); - else if (res == fitPageWidth) m_pageView->fitPageWidth( page->number() ); + if (res == addBookmark) + { + if (currentPage) + m_document->bookmarkManager()->addBookmark( m_document->viewport() ); + else + m_document->bookmarkManager()->addBookmark( page->number() ); + } + else if (res == removeBookmark) + { + if (currentPage) + m_document->bookmarkManager()->removeBookmark( m_document->viewport() ); + else + m_document->bookmarkManager()->removeBookmark( page->number() ); + } + else if (res == fitPageWidth) + { + m_pageView->fitPageWidth( page->number() ); + } } } delete popup;