diff options
Diffstat (limited to 'examples/pdfwidgets/pdfviewer/mainwindow.cpp')
-rw-r--r-- | examples/pdfwidgets/pdfviewer/mainwindow.cpp | 18 |
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)"); |