diff options
Diffstat (limited to 'src/plugins/help')
-rw-r--r-- | src/plugins/help/textbrowserhelpviewer.cpp | 42 | ||||
-rw-r--r-- | src/plugins/help/textbrowserhelpviewer.h | 7 |
2 files changed, 47 insertions, 2 deletions
diff --git a/src/plugins/help/textbrowserhelpviewer.cpp b/src/plugins/help/textbrowserhelpviewer.cpp index 746f556c01..5e7f5c07a8 100644 --- a/src/plugins/help/textbrowserhelpviewer.cpp +++ b/src/plugins/help/textbrowserhelpviewer.cpp @@ -34,6 +34,7 @@ #include <coreplugin/find/findplugin.h> #include <utils/hostosinfo.h> +#include <utils/qtcassert.h> #include <QApplication> #include <QClipboard> @@ -193,6 +194,28 @@ bool TextBrowserHelpViewer::isBackwardAvailable() const return m_textBrowser->isBackwardAvailable(); } +void TextBrowserHelpViewer::addBackHistoryItems(QMenu *backMenu) +{ + for (int i = 1; i <= m_textBrowser->backwardHistoryCount(); ++i) { + QAction *action = new QAction(backMenu); + action->setText(m_textBrowser->historyTitle(-i)); + action->setData(-i); + connect(action, SIGNAL(triggered()), this, SLOT(goToHistoryItem())); + backMenu->addAction(action); + } +} + +void TextBrowserHelpViewer::addForwardHistoryItems(QMenu *forwardMenu) +{ + for (int i = 1; i <= m_textBrowser->forwardHistoryCount(); ++i) { + QAction *action = new QAction(forwardMenu); + action->setText(m_textBrowser->historyTitle(i)); + action->setData(i); + connect(action, SIGNAL(triggered()), this, SLOT(goToHistoryItem())); + forwardMenu->addAction(action); + } +} + void TextBrowserHelpViewer::setOpenInNewWindowActionVisible(bool visible) { m_textBrowser->showOpenInNewWindowAction = visible; @@ -277,6 +300,25 @@ void TextBrowserHelpViewer::print(QPrinter *printer) m_textBrowser->print(printer); } +void TextBrowserHelpViewer::goToHistoryItem() +{ + QAction *action = qobject_cast<QAction *>(sender()); + QTC_ASSERT(action, return); + bool ok = false; + int index = action->data().toInt(&ok); + QTC_ASSERT(ok, return); + // go back? + while (index < 0) { + m_textBrowser->backward(); + ++index; + } + // go forward? + while (index > 0) { + m_textBrowser->forward(); + --index; + } +} + // -- private TextBrowserHelpWidget::TextBrowserHelpWidget(int zoom, TextBrowserHelpViewer *parent) diff --git a/src/plugins/help/textbrowserhelpviewer.h b/src/plugins/help/textbrowserhelpviewer.h index f8ec7d36cc..f4a120923c 100644 --- a/src/plugins/help/textbrowserhelpviewer.h +++ b/src/plugins/help/textbrowserhelpviewer.h @@ -70,8 +70,8 @@ public: QString selectedText() const; bool isForwardAvailable() const; bool isBackwardAvailable() const; - void addBackHistoryItems(QMenu *backMenu) { Q_UNUSED(backMenu) } - void addForwardHistoryItems(QMenu *forwardMenu) { Q_UNUSED(forwardMenu) } + void addBackHistoryItems(QMenu *backMenu); + void addForwardHistoryItems(QMenu *forwardMenu); void setOpenInNewWindowActionVisible(bool visible); bool findText(const QString &text, Core::FindFlags flags, @@ -84,6 +84,9 @@ public slots: void backward(); void print(QPrinter *printer); +private slots: + void goToHistoryItem(); + private: QVariant loadResource(int type, const QUrl &name); |