summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-08-23 12:43:08 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-03 08:43:00 +0000
commitea1bd382ae450c2f05861e00e120e5b995f2e618 (patch)
tree7c5d025dcec13bb162f12ab737f4a12ffc2da0b1
parent7ccc122d77165470af873dcb50331442f3d877c2 (diff)
Show Assistant Quick Guide page on first run
Fixes: QTBUG-95125 Change-Id: I8a2344af7c0d1d2bd409fdd1d06f1e30fd7e049b Reviewed-by: Robert Löhning <robert.loehning@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 187dee78347500ee9c3a0915f88e42793690f461) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/assistant/assistant/helpviewer.cpp41
-rw-r--r--src/assistant/assistant/helpviewer.h2
-rw-r--r--src/assistant/assistant/helpviewerimpl.cpp5
-rw-r--r--src/assistant/assistant/mainwindow.cpp1
-rw-r--r--src/assistant/assistant/openpagesmanager.cpp8
-rw-r--r--src/assistant/assistant/openpagesmanager.h5
-rw-r--r--src/assistant/assistant/openpagesmodel.cpp3
-rw-r--r--src/assistant/assistant/openpagesmodel.h2
8 files changed, 46 insertions, 21 deletions
diff --git a/src/assistant/assistant/helpviewer.cpp b/src/assistant/assistant/helpviewer.cpp
index d30ab58a4..a81a253ae 100644
--- a/src/assistant/assistant/helpviewer.cpp
+++ b/src/assistant/assistant/helpviewer.cpp
@@ -104,15 +104,12 @@ static QByteArray getData(const QUrl &url)
actualUrl.setPath(path);
}
- bool helpOrAbout = (actualUrl.toString() == QLatin1String("help"));
- const QUrl resolvedUrl = (helpOrAbout ? HelpViewerImpl::LocalHelpFile
- : HelpEngineWrapper::instance().findFile(actualUrl));
- if (resolvedUrl.isValid())
- return HelpEngineWrapper::instance().fileData(resolvedUrl);
+ if (actualUrl.isValid())
+ return HelpEngineWrapper::instance().fileData(actualUrl);
- helpOrAbout = (actualUrl.toString() == QLatin1String("about:blank"));
- return helpOrAbout ? HelpViewerImpl::AboutBlank.toUtf8()
- : HelpViewerImpl::PageNotFoundMessage.arg(url.toString()).toUtf8();
+ const bool isAbout = (actualUrl.toString() == QLatin1String("about:blank"));
+ return isAbout ? HelpViewerImpl::AboutBlank.toUtf8()
+ : HelpViewerImpl::PageNotFoundMessage.arg(url.toString()).toUtf8();
}
class HelpViewerPrivate
@@ -125,7 +122,7 @@ public:
int vscroll;
};
HistoryItem currentHistoryItem() const;
- void setSourceInternal(const QUrl &url, int *vscroll = nullptr);
+ void setSourceInternal(const QUrl &url, int *vscroll = nullptr, bool reload = false);
void incrementZoom(int steps);
void applyZoom(int percentage);
@@ -141,21 +138,26 @@ HelpViewerPrivate::HistoryItem HelpViewerPrivate::currentHistoryItem() const
return { m_viewer->url(), m_viewer->title(), m_viewer->verticalScrollBar()->value() };
}
-void HelpViewerPrivate::setSourceInternal(const QUrl &url, int *vscroll)
+void HelpViewerPrivate::setSourceInternal(const QUrl &url, int *vscroll, bool reload)
{
QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ const bool isHelp = (url.toString() == QLatin1String("help"));
+ const QUrl resolvedUrl = (isHelp ? HelpViewerImpl::LocalHelpFile
+ : HelpEngineWrapper::instance().findFile(url));
+
QUrl currentUrlWithoutFragment = m_viewer->url();
currentUrlWithoutFragment.setFragment({});
- QUrl newUrlWithoutFragment = url;
+ QUrl newUrlWithoutFragment = resolvedUrl;
newUrlWithoutFragment.setFragment({});
- m_viewer->setUrl(url);
- if (currentUrlWithoutFragment != newUrlWithoutFragment)
- m_viewer->setHtml(QString::fromUtf8(getData(url)));
+
+ m_viewer->setUrl(resolvedUrl);
+ if (currentUrlWithoutFragment != newUrlWithoutFragment || reload)
+ m_viewer->setHtml(QString::fromUtf8(getData(resolvedUrl)));
if (vscroll)
m_viewer->verticalScrollBar()->setValue(*vscroll);
else
- m_viewer->scrollToAnchor(url.fragment(QUrl::FullyEncoded));
+ m_viewer->scrollToAnchor(resolvedUrl.fragment(QUrl::FullyEncoded));
QGuiApplication::restoreOverrideCursor();
@@ -248,11 +250,16 @@ QUrl HelpViewer::source() const
void HelpViewer::reload()
{
- setSource(source());
+ doSetSource(source(), true);
}
void HelpViewer::setSource(const QUrl &url)
{
+ doSetSource(url, false);
+}
+
+void HelpViewer::doSetSource(const QUrl &url, bool reload)
+{
if (launchWithExternalApp(url))
return;
@@ -265,7 +272,7 @@ void HelpViewer::setSource(const QUrl &url)
emit backwardAvailable(true);
}
- d->setSourceInternal(url);
+ d->setSourceInternal(url, nullptr, reload);
}
void HelpViewer::print(QPagedPaintDevice *printer)
diff --git a/src/assistant/assistant/helpviewer.h b/src/assistant/assistant/helpviewer.h
index 4c57cab20..7cb2c187d 100644
--- a/src/assistant/assistant/helpviewer.h
+++ b/src/assistant/assistant/helpviewer.h
@@ -104,6 +104,8 @@ signals:
void printRequested();
void loadFinished();
private:
+ void doSetSource(const QUrl &url, bool reload);
+
HelpViewerPrivate *d;
};
diff --git a/src/assistant/assistant/helpviewerimpl.cpp b/src/assistant/assistant/helpviewerimpl.cpp
index 41ee47573..459009002 100644
--- a/src/assistant/assistant/helpviewerimpl.cpp
+++ b/src/assistant/assistant/helpviewerimpl.cpp
@@ -42,7 +42,10 @@ const QString HelpViewerImpl::AboutBlank =
QCoreApplication::translate("HelpViewer", "<title>about:blank</title>");
const QString HelpViewerImpl::LocalHelpFile = QLatin1String("qthelp://"
- "org.qt-project.assistantinternal-1.0.0/assistant/assistant-quick-guide.html");
+ "org.qt-project.qtassistant.%1%2%3/qtassistant/assistant-quick-guide.html")
+ .arg(QString::number(QT_VERSION_MAJOR),
+ QString::number(QT_VERSION_MINOR),
+ QString::number(QT_VERSION_PATCH));
const QString HelpViewerImpl::PageNotFoundMessage =
QCoreApplication::translate("HelpViewer", "<title>Error 404...</title><div "
diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp
index dbc1debc0..e9b2f758e 100644
--- a/src/assistant/assistant/mainwindow.cpp
+++ b/src/assistant/assistant/mainwindow.cpp
@@ -431,6 +431,7 @@ void MainWindow::lookForNewQtDocumentation()
void MainWindow::qtDocumentationInstalled()
{
TRACE_OBJ
+ OpenPagesManager::instance()->resetHelpPage();
statusBar()->clearMessage();
checkInitState();
}
diff --git a/src/assistant/assistant/openpagesmanager.cpp b/src/assistant/assistant/openpagesmanager.cpp
index f3acb4656..8e9d4913c 100644
--- a/src/assistant/assistant/openpagesmanager.cpp
+++ b/src/assistant/assistant/openpagesmanager.cpp
@@ -120,7 +120,7 @@ void OpenPagesManager::setupInitialPages(bool defaultCollection,
const int pageCount = lastShownPageList.count();
if (pageCount == 0) {
if (defaultCollection)
- m_model->addPage(QUrl(QLatin1String("help")));
+ m_helpPageViewer = m_model->addPage(QUrl(QLatin1String("help")));
else
m_model->addPage(QUrl(QLatin1String("about:blank")));
} else {
@@ -268,6 +268,12 @@ void OpenPagesManager::setCurrentPage(int index)
setCurrentPage(m_model->pageAt(index));
}
+void OpenPagesManager::resetHelpPage()
+{
+ if (m_helpPageViewer)
+ m_helpPageViewer->reload();
+}
+
void OpenPagesManager::setCurrentPage(HelpViewer *page)
{
TRACE_OBJ
diff --git a/src/assistant/assistant/openpagesmanager.h b/src/assistant/assistant/openpagesmanager.h
index 10f97f1bb..efb638e52 100644
--- a/src/assistant/assistant/openpagesmanager.h
+++ b/src/assistant/assistant/openpagesmanager.h
@@ -30,6 +30,7 @@
#define OPENPAGESMANAGER_H
#include <QtCore/QObject>
+#include <QtCore/QPointer>
QT_BEGIN_NAMESPACE
@@ -59,6 +60,8 @@ public:
int pageCount() const;
void setCurrentPage(int index);
+ void resetHelpPage();
+
public slots:
HelpViewer *createPage(const QUrl &url, bool fromSearch = false);
HelpViewer *createNewPageFromSearch(const QUrl &url);
@@ -101,6 +104,8 @@ private:
OpenPagesWidget *m_openPagesWidget = nullptr;
OpenPagesSwitcher *m_openPagesSwitcher = nullptr;
+ QPointer<HelpViewer> m_helpPageViewer;
+
static OpenPagesManager *m_instance;
};
diff --git a/src/assistant/assistant/openpagesmodel.cpp b/src/assistant/assistant/openpagesmodel.cpp
index 41a4504e7..6efc46bcb 100644
--- a/src/assistant/assistant/openpagesmodel.cpp
+++ b/src/assistant/assistant/openpagesmodel.cpp
@@ -64,7 +64,7 @@ QVariant OpenPagesModel::data(const QModelIndex &index, int role) const
return title.isEmpty() ? QLatin1String("(Untitled)") : title;
}
-void OpenPagesModel::addPage(const QUrl &url, qreal zoom)
+HelpViewer *OpenPagesModel::addPage(const QUrl &url, qreal zoom)
{
TRACE_OBJ
beginInsertRows(QModelIndex(), rowCount(), rowCount());
@@ -74,6 +74,7 @@ void OpenPagesModel::addPage(const QUrl &url, qreal zoom)
m_pages << page;
endInsertRows();
page->setSource(url);
+ return page;
}
void OpenPagesModel::removePage(int index)
diff --git a/src/assistant/assistant/openpagesmodel.h b/src/assistant/assistant/openpagesmodel.h
index 781a65127..36f45c4fc 100644
--- a/src/assistant/assistant/openpagesmodel.h
+++ b/src/assistant/assistant/openpagesmodel.h
@@ -48,7 +48,7 @@ public:
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
- void addPage(const QUrl &url, qreal zoom = 0);
+ HelpViewer *addPage(const QUrl &url, qreal zoom = 0);
void removePage(int index);
HelpViewer *pageAt(int index) const;