summaryrefslogtreecommitdiffstats
path: root/examples/pdfwidgets/pdfviewer/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/pdfwidgets/pdfviewer/mainwindow.cpp')
-rw-r--r--examples/pdfwidgets/pdfviewer/mainwindow.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/examples/pdfwidgets/pdfviewer/mainwindow.cpp b/examples/pdfwidgets/pdfviewer/mainwindow.cpp
index 8ef7a075e..fd2656305 100644
--- a/examples/pdfwidgets/pdfviewer/mainwindow.cpp
+++ b/examples/pdfwidgets/pdfviewer/mainwindow.cpp
@@ -42,6 +42,7 @@
#include <QFileDialog>
#include <QLineEdit>
#include <QMessageBox>
+#include <QPdfBookmarkModel>
#include <QPdfDocument>
#include <QScroller>
#include <QtMath>
@@ -75,6 +76,14 @@ MainWindow::MainWindow(QWidget *parent)
QScroller::grabGesture(ui->scrollArea);
+ QPdfBookmarkModel *bookmarkModel = new QPdfBookmarkModel(this);
+ bookmarkModel->setDocument(m_document);
+
+ ui->bookmarkView->setModel(bookmarkModel);
+ connect(ui->bookmarkView, SIGNAL(activated(QModelIndex)), this, SLOT(bookmarkSelected(QModelIndex)));
+
+ ui->tabWidget->setTabEnabled(1, false); // disable 'Pages' tab for now
+
m_pageWidget->setDocument(m_document);
}
@@ -120,6 +129,15 @@ void MainWindow::zoomEdited()
m_pageWidget->setZoom(factor / 100.);
}
+void MainWindow::bookmarkSelected(const QModelIndex &index)
+{
+ if (!index.isValid())
+ return;
+
+ const int page = index.data(QPdfBookmarkModel::PageNumberRole).toInt();
+ ui->scrollArea->ensureVisible(0, m_pageWidget->yForPage(page));
+}
+
void MainWindow::on_actionOpen_triggered()
{
QUrl toOpen = QFileDialog::getOpenFileUrl(this, tr("Choose a PDF"), QUrl(), "Portable Documents (*.pdf)");