From 0fb6e31c20813e564126dc27c0ed434f2f372daf Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 22 Oct 2014 14:47:04 +0200 Subject: [PATCH] Help: Save home page in Qt Creator settings instead of help collection And do not save the default page anywhere at all. This simplifies the logic, and makes the setting independent of help engine initialization. Change-Id: I264903229e274a0bf25c18b33734d36432aa525f Task-number: QTCREATORBUG-13198 Reviewed-by: Robert Loehning Reviewed-by: Eike Ziller --- src/plugins/help/generalsettingspage.cpp | 12 +++-------- src/plugins/help/helpviewer.cpp | 11 +--------- src/plugins/help/localhelpmanager.cpp | 26 ++++++++++++++++++++---- src/plugins/help/localhelpmanager.h | 4 ++++ src/plugins/help/openpagesmanager.cpp | 6 ++---- 5 files changed, 32 insertions(+), 27 deletions(-) diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp index 7c82aa10f74..184360e54b8 100644 --- a/src/plugins/help/generalsettingspage.cpp +++ b/src/plugins/help/generalsettingspage.cpp @@ -91,12 +91,7 @@ QWidget *GeneralSettingsPage::widget() updateFontStyle(); updateFontFamily(); - m_homePage = HelpManager::customValue(QLatin1String("HomePage"), QString()) - .toString(); - if (m_homePage.isEmpty()) { - m_homePage = HelpManager::customValue(QLatin1String("DefaultHomePage"), - Help::Constants::AboutBlank).toString(); - } + m_homePage = LocalHelpManager::homePage(); m_ui->homePageLineEdit->setText(m_homePage); m_startOption = HelpManager::customValue(QLatin1String("StartOption"), @@ -168,7 +163,7 @@ void GeneralSettingsPage::apply() m_ui->homePageLineEdit->setText(homePage); if (m_homePage != homePage) { m_homePage = homePage; - HelpManager::setCustomValue(QLatin1String("HomePage"), homePage); + LocalHelpManager::setHomePage(homePage); } const int startOption = m_ui->helpStartComboBox->currentIndex(); @@ -210,8 +205,7 @@ void GeneralSettingsPage::setBlankPage() void GeneralSettingsPage::setDefaultPage() { - m_ui->homePageLineEdit->setText( - HelpManager::customValue(QLatin1String("DefaultHomePage"), QString()).toString()); + m_ui->homePageLineEdit->setText(LocalHelpManager::defaultHomePage()); } void GeneralSettingsPage::importBookmarks() diff --git a/src/plugins/help/helpviewer.cpp b/src/plugins/help/helpviewer.cpp index 8032048b7a9..0c814f46020 100644 --- a/src/plugins/help/helpviewer.cpp +++ b/src/plugins/help/helpviewer.cpp @@ -144,16 +144,7 @@ bool HelpViewer::launchWithExternalApp(const QUrl &url) void HelpViewer::home() { - const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); - QString homepage = engine.customValue(QLatin1String("HomePage"), - QLatin1String("")).toString(); - - if (homepage.isEmpty()) { - homepage = engine.customValue(QLatin1String("DefaultHomePage"), - Help::Constants::AboutBlank).toString(); - } - - setSource(homepage); + setSource(LocalHelpManager::homePage()); } void HelpViewer::slotLoadStarted() diff --git a/src/plugins/help/localhelpmanager.cpp b/src/plugins/help/localhelpmanager.cpp index 38107951f41..9bbe007456f 100644 --- a/src/plugins/help/localhelpmanager.cpp +++ b/src/plugins/help/localhelpmanager.cpp @@ -35,6 +35,7 @@ #include "helpviewer.h" #include +#include #include #include @@ -56,6 +57,8 @@ QStandardItemModel *LocalHelpManager::m_filterModel = 0; QString LocalHelpManager::m_currentFilter = QString(); int LocalHelpManager::m_currentFilterIndex = -1; +static char kHelpHomePageKey[] = "Help/HomePage"; + LocalHelpManager::LocalHelpManager(QObject *parent) : QObject(parent) , m_guiNeedsSetup(true) @@ -83,6 +86,25 @@ LocalHelpManager *LocalHelpManager::instance() return m_instance; } +QString LocalHelpManager::defaultHomePage() +{ + static const QString url = QString::fromLatin1("qthelp://org.qt-project.qtcreator." + "%1%2%3/doc/index.html").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR) + .arg(IDE_VERSION_RELEASE); + return url; +} + +QString LocalHelpManager::homePage() +{ + return Core::ICore::settings()->value(QLatin1String(kHelpHomePageKey), + defaultHomePage()).toString(); +} + +void LocalHelpManager::setHomePage(const QString &page) +{ + Core::ICore::settings()->setValue(QLatin1String(kHelpHomePageKey), page); +} + void LocalHelpManager::setupGuiHelpEngine() { if (m_needsCollectionFile) { @@ -120,10 +142,6 @@ BookmarkManager& LocalHelpManager::bookmarkManager() if (!m_bookmarkManager) { m_bookmarkManager = new BookmarkManager; m_bookmarkManager->setupBookmarkModels(); - const QString &url = QString::fromLatin1("qthelp://org.qt-project.qtcreator." - "%1%2%3/doc/index.html").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR) - .arg(IDE_VERSION_RELEASE); - helpEngine().setCustomValue(QLatin1String("DefaultHomePage"), url); } } return *m_bookmarkManager; diff --git a/src/plugins/help/localhelpmanager.h b/src/plugins/help/localhelpmanager.h index f7f75d6cf95..4ca40675054 100644 --- a/src/plugins/help/localhelpmanager.h +++ b/src/plugins/help/localhelpmanager.h @@ -60,6 +60,10 @@ public: static LocalHelpManager *instance(); + static QString defaultHomePage(); + static QString homePage(); + static void setHomePage(const QString &page); + void setupGuiHelpEngine(); void setEngineNeedsUpdate(); diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp index a5e0767e6ff..1d4f98aa885 100644 --- a/src/plugins/help/openpagesmanager.cpp +++ b/src/plugins/help/openpagesmanager.cpp @@ -129,14 +129,12 @@ void OpenPagesManager::setupInitialPages() const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); const int option = engine.customValue(QLatin1String("StartOption"), Help::Constants::ShowLastPages).toInt(); - QString homePage = engine.customValue(QLatin1String("DefaultHomePage"), - Help::Constants::AboutBlank).toString(); + QString homePage = LocalHelpManager::homePage(); int initialPage = 0; switch (option) { case Help::Constants::ShowHomePage: { - m_model->addPage(engine.customValue(QLatin1String("HomePage"), - homePage).toString()); + m_model->addPage(homePage); } break; case Help::Constants::ShowBlankPage: {