summaryrefslogtreecommitdiff
path: root/src/plugins/help
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/help')
-rw-r--r--src/plugins/help/textbrowserhelpviewer.cpp42
-rw-r--r--src/plugins/help/textbrowserhelpviewer.h7
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);