diff --git a/part/part.cpp b/part/part.cpp index ae6ea5eb2..7f514dbd9 100644 --- a/part/part.cpp +++ b/part/part.cpp @@ -2975,6 +2975,8 @@ void Part::showMenu(const Okular::Page *page, const QPoint point, const QString QAction *fitPageWidth = nullptr; if (page) { popup->addAction(new OKMenuTitle(popup, i18n("Page %1", page->number() + 1))); + if (m_thumbnailList->isVisible() && !Okular::Settings::syncThumbnailsViewport()) + popup->addAction(QIcon::fromTheme(QStringLiteral("action-synchronize")), i18n("Sync Thumbnail with Page"), m_thumbnailList.data(), &ThumbnailList::syncThumbnail); if ((!currentPage && m_document->bookmarkManager()->isBookmarked(page->number())) || (currentPage && m_document->bookmarkManager()->isBookmarked(m_document->viewport()))) removeBookmark = popup->addAction(QIcon::fromTheme(QStringLiteral("bookmark-remove"), QIcon::fromTheme(QStringLiteral("edit-delete-bookmark"))), i18n("Remove Bookmark")); else diff --git a/part/thumbnaillist.cpp b/part/thumbnaillist.cpp index 0adc60d72..a8660f6ae 100644 --- a/part/thumbnaillist.cpp +++ b/part/thumbnaillist.cpp @@ -372,8 +372,7 @@ void ThumbnailList::notifyCurrentPageChanged(int previousPage, int currentPage) d->m_selected = *tIt; d->m_selected->setSelected(true); if (Okular::Settings::syncThumbnailsViewport()) { - int yOffset = qMax(viewport()->height() / 4, d->m_selected->height() / 2); - ensureVisible(0, d->m_selected->pos().y() + d->m_selected->height() / 2, 0, yOffset); + syncThumbnail(); } break; } @@ -381,6 +380,12 @@ void ThumbnailList::notifyCurrentPageChanged(int previousPage, int currentPage) } } +void ThumbnailList::syncThumbnail() +{ + int yOffset = qMax(viewport()->height() / 4, d->m_selected->height() / 2); + ensureVisible(0, d->m_selected->pos().y() + d->m_selected->height() / 2, 0, yOffset); +} + void ThumbnailList::notifyPageChanged(int pageNumber, int changedFlags) { static const int interestingFlags = DocumentObserver::Pixmap | DocumentObserver::Bookmark | DocumentObserver::Highlights | DocumentObserver::Annotations; diff --git a/part/thumbnaillist.h b/part/thumbnaillist.h index 1e6f8546f..5f4b9a384 100644 --- a/part/thumbnaillist.h +++ b/part/thumbnaillist.h @@ -47,6 +47,9 @@ public: // redraw visible widgets (useful for refreshing contents...) void updateWidgets(); + // show current page in Thumbnails view + void syncThumbnail(); + public Q_SLOTS: // these are connected to ThumbnailController buttons void slotFilterBookmarks(bool filterOn);