aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/help/textbrowserhelpviewer.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2016-03-01 11:43:10 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2016-03-03 15:10:57 +0000
commit727b9187730a1848e582847669cf765692a2cc5b (patch)
treef2c42849ab34ccd20a7358dfddef97b0ce727815 /src/plugins/help/textbrowserhelpviewer.cpp
parent9bde1227644a825767db4d5213b1a59224b2217d (diff)
Help: Fix issues with scrolling to right position
The different viewer backends have different issues with scrolling to the right position if the URL contains an anchor. In all combinations of "viewer was visible/invisible when help was requested" and "viewer last showed the same/a different page then the requested URL". Move the special logic from help plugin to the viewer backends. Task-number: QTCREATORBUG-15548 Change-Id: I962c90695ceaee48800a3590676e1d28343cf790 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com> Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/help/textbrowserhelpviewer.cpp')
-rw-r--r--src/plugins/help/textbrowserhelpviewer.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/help/textbrowserhelpviewer.cpp b/src/plugins/help/textbrowserhelpviewer.cpp
index 882beccc289..531cfa5c454 100644
--- a/src/plugins/help/textbrowserhelpviewer.cpp
+++ b/src/plugins/help/textbrowserhelpviewer.cpp
@@ -38,6 +38,8 @@
#include <QHelpEngine>
#include <QKeyEvent>
#include <QMenu>
+#include <QScrollBar>
+#include <QTimer>
#include <QToolTip>
#include <QVBoxLayout>
@@ -145,12 +147,13 @@ void TextBrowserHelpViewer::setSource(const QUrl &url)
slotLoadStarted();
m_textBrowser->setSource(url);
- slotLoadFinished();
-}
-
-void TextBrowserHelpViewer::scrollToAnchor(const QString &anchor)
-{
- m_textBrowser->scrollToAnchor(anchor);
+ QTimer::singleShot(0, this, [this, url]() {
+ if (!url.fragment().isEmpty())
+ m_textBrowser->scrollToAnchor(url.fragment());
+ if (QScrollBar *hScrollBar = m_textBrowser->horizontalScrollBar())
+ hScrollBar->setValue(0);
+ slotLoadFinished();
+ });
}
void TextBrowserHelpViewer::setHtml(const QString &html)