diff --git a/part.h b/part.h --- a/part.h +++ b/part.h @@ -189,6 +189,7 @@ void slotHistoryNext(); void slotAddBookmark(); void slotRenameBookmarkFromMenu(); + void slotRemoveBookmarkFromMenu(); void slotRenameCurrentViewportBookmark(); void slotPreviousBookmark(); void slotNextBookmark(); @@ -256,6 +257,7 @@ void updateAboutBackendAction(); void unsetDummyMode(); void slotRenameBookmark( const DocumentViewport &viewport ); + void slotRemoveBookmark( const DocumentViewport &viewport ); void resetStartArguments(); static int numberOfParts; diff --git a/part.cpp b/part.cpp --- a/part.cpp +++ b/part.cpp @@ -2166,6 +2166,26 @@ } } +void Part::slotRemoveBookmarkFromMenu() +{ + QAction *action = dynamic_cast(sender()); + Q_ASSERT( action ); + if ( action ) + { + DocumentViewport vp ( action->data().toString() ); + slotRemoveBookmark( vp ); + } +} + +void Part::slotRemoveBookmark(const DocumentViewport &viewport) +{ + Q_ASSERT(m_document->bookmarkManager()->isBookmarked( viewport )); + if ( m_document->bookmarkManager()->isBookmarked( viewport ) ) + { + m_document->bookmarkManager()->removeBookmark( viewport ); + } +} + void Part::slotRenameCurrentViewportBookmark() { slotRenameBookmark( m_document->viewport() ); @@ -2181,6 +2201,9 @@ QAction *renameAction = contextMenu->addAction( QIcon::fromTheme( QStringLiteral("edit-rename") ), i18n( "Rename this Bookmark" ), this, SLOT(slotRenameBookmarkFromMenu()) ); renameAction->setData(ba->property("htmlRef").toString()); renameAction->setObjectName(QStringLiteral("OkularPrivateRenameBookmarkActions")); + QAction *deleteAction = contextMenu->addAction( QIcon::fromTheme( QStringLiteral("list-remove") ), i18n("Remove this Bookmark"), this, SLOT(slotRemoveBookmarkFromMenu())); + deleteAction->setData(ba->property("htmlRef").toString()); + deleteAction->setObjectName(QStringLiteral("OkularPrivateRenameBookmarkActions")); } return ba; }