diff --git a/core/bookmarkmanager.cpp b/core/bookmarkmanager.cpp index 54fbb7158..c3327a9b6 100644 --- a/core/bookmarkmanager.cpp +++ b/core/bookmarkmanager.cpp @@ -150,6 +150,7 @@ KBookmark::List BookmarkManager::bookmarks( const KUrl& url ) const void BookmarkManager::save() const { d->manager->save( false ); + emit const_cast( this )->saved(); } static QHash::iterator find( QHash& files, const KUrl& url, KBookmarkManager * manager, bool doCreate ) diff --git a/core/bookmarkmanager.h b/core/bookmarkmanager.h index 6c4d67796..ada1d2132 100644 --- a/core/bookmarkmanager.h +++ b/core/bookmarkmanager.h @@ -92,6 +92,11 @@ class OKULAR_EXPORT BookmarkManager : public QObject */ void openUrl( const KUrl& url ); + /** + * This signal is emitted whenever bookmarks have been saved. + */ + void saved(); + private: class Private; Private * const d; diff --git a/part.cpp b/part.cpp index cd769a032..fff324d77 100644 --- a/part.cpp +++ b/part.cpp @@ -282,6 +282,9 @@ m_cliPresentation(false), m_generatorGuiClient(0) m_document->addObserver( m_pageSizeLabel ); m_document->addObserver( bookmarkList ); + connect( m_document->bookmarkManager(), SIGNAL( saved() ), + this, SLOT( slotRebuildBookmarkMenu() ) ); + // ACTIONS KActionCollection * ac = actionCollection(); @@ -1034,6 +1037,10 @@ void Part::enableTOC(bool enable) m_sidebar->setItemEnabled(0, enable); } +void Part::slotRebuildBookmarkMenu() +{ + rebuildBookmarkMenu(); +} void Part::slotShowFindBar() { diff --git a/part.h b/part.h index 86604c06d..abb2063cd 100644 --- a/part.h +++ b/part.h @@ -153,6 +153,7 @@ class Part : public KParts::ReadOnlyPart, public Okular::DocumentObserver, publi void updateViewActions(); void updateBookmarksActions(); void enableTOC(bool enable); + void slotRebuildBookmarkMenu(); public slots: // connected to Shell action (and browserExtension), not local one