summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkh1 <qt-info@nokia.com>2010-03-10 18:24:13 +0100
committerkh1 <qt-info@nokia.com>2010-03-10 18:42:12 +0100
commit4e7bbbdaaf4b3630b2808df1da8df75a3c884c58 (patch)
tree0d9ca8e97008f2b493fe50fd0d983816c9294a25 /src
parent51c0913a73b1317ced04469cd0e9b113685a46af (diff)
downloadqt-creator-4e7bbbdaaf4b3630b2808df1da8df75a3c884c58.tar.gz
Fix broken behavior for welcome page links if no docs are installed.
In case of split mode we did not check if the actual requested doc exists and thus did fail to open the browser if it could not be found. Reviewed-by: Daniel Molkentin
Diffstat (limited to 'src')
-rw-r--r--src/plugins/help/helpmanager.cpp7
-rw-r--r--src/plugins/help/helpmanager.h5
-rw-r--r--src/plugins/help/helpplugin.cpp42
-rw-r--r--src/plugins/help/helpplugin.h5
-rw-r--r--src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp4
5 files changed, 23 insertions, 40 deletions
diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index 7c75e82921..68edd0306e 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -41,16 +41,11 @@ HelpManager::HelpManager(HelpPlugin* plugin)
{
}
-void HelpManager::openHelpPage(const QString& url)
+void HelpManager::handleHelpRequest(const QString &url)
{
m_plugin->handleHelpRequest(url);
}
-void HelpManager::openContextHelpPage(const QString& url)
-{
- m_plugin->openContextHelpPage(url);
-}
-
void HelpManager::registerDocumentation(const QStringList &fileNames)
{
if (m_plugin) {
diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h
index a7d4cfc8d9..66371468c5 100644
--- a/src/plugins/help/helpmanager.h
+++ b/src/plugins/help/helpmanager.h
@@ -47,12 +47,11 @@ class HELP_EXPORT HelpManager : public QObject
public:
HelpManager(Internal::HelpPlugin*);
- void openHelpPage(const QString& url);
- void openContextHelpPage(const QString &url);
+ void handleHelpRequest(const QString &url);
void registerDocumentation(const QStringList &fileNames);
signals:
- void helpPluginUpdateDocumentation();
+ void registerDocumentation();
private:
Internal::HelpPlugin *m_plugin;
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index 15b81c1a94..762ae385ba 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -998,43 +998,35 @@ void HelpPlugin::addNewBookmark(const QString &title, const QString &url)
m_bookmarkManager->showBookmarkDialog(m_centralWidget, title, url);
}
-void HelpPlugin::handleHelpRequest(const QUrl& url)
+void HelpPlugin::handleHelpRequest(const QString &address)
{
- if (url.queryItemValue(QLatin1String("view")) == QLatin1String("split"))
- openContextHelpPage(url.toString());
- else
- openHelpPage(url.toString());
-}
+ if (m_helpEngine->findFile(address).isValid()) {
+ const QUrl url(address);
+ if (url.queryItemValue(QLatin1String("view")) == QLatin1String("split")) {
+ using namespace Core::Constants;
-void HelpPlugin::openHelpPage(const QString& url)
-{
- if (m_helpEngine->findFile(url).isValid()) {
- activateHelpMode();
- m_centralWidget->setSource(url);
+ Core::ModeManager *modeManager = Core::ICore::instance()->modeManager();
+ if (modeManager->currentMode() == modeManager->mode(MODE_WELCOME))
+ modeManager->activateMode(MODE_EDIT);
+
+ if (HelpViewer* viewer = viewerForContextMode())
+ viewer->setSource(url);
+ } else {
+ activateHelpMode();
+ m_centralWidget->setSource(url);
+ }
} else {
// local help not installed, resort to external web help
QString urlPrefix;
- if (url.startsWith(QLatin1String("qthelp://com.nokia.qtcreator"))) {
+ if (address.startsWith(QLatin1String("qthelp://com.nokia.qtcreator"))) {
urlPrefix = QString::fromLatin1("http://doc.trolltech.com/qtcreator"
"-%1.%2/").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR);
} else {
urlPrefix = QLatin1String("http://doc.trolltech.com/latest/");
}
- QDesktopServices::openUrl(QUrl(urlPrefix + url.mid(url
+ QDesktopServices::openUrl(QUrl(urlPrefix + address.mid(address
.lastIndexOf(QLatin1Char('/')) + 1)));
}
}
-void HelpPlugin::openContextHelpPage(const QString &url)
-{
- using namespace Core::Constants;
-
- Core::ModeManager *modeManager = Core::ICore::instance()->modeManager();
- if (modeManager->currentMode() == modeManager->mode(MODE_WELCOME))
- modeManager->activateMode(MODE_EDIT);
-
- if (HelpViewer* viewer = viewerForContextMode())
- viewer->setSource(QUrl(url));
-}
-
Q_EXPORT_PLUGIN(HelpPlugin)
diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h
index ac84679461..335cf185d9 100644
--- a/src/plugins/help/helpplugin.h
+++ b/src/plugins/help/helpplugin.h
@@ -91,16 +91,13 @@ public:
void setIndexFilter(const QString &filter);
QString indexFilter() const;
- void openHelpPage(const QString& url);
- void openContextHelpPage(const QString &url);
-
QHelpEngine* helpEngine() const;
void setFilesToRegister(const QStringList &files);
public slots:
void pluginUpdateDocumentation();
- void handleHelpRequest(const QUrl &url);
+ void handleHelpRequest(const QString &url);
private slots:
void modeChanged(Core::IMode *mode);
diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
index 2419032a2c..98233b6ca8 100644
--- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
+++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
@@ -265,14 +265,14 @@ void GettingStartedWelcomePageWidget::slotOpenHelpPage(const QString& url)
Help::HelpManager *helpManager
= ExtensionSystem::PluginManager::instance()->getObject<Help::HelpManager>();
Q_ASSERT(helpManager);
- helpManager->openHelpPage(url);
+ helpManager->handleHelpRequest(url);
}
void GettingStartedWelcomePageWidget::slotOpenContextHelpPage(const QString& url)
{
Help::HelpManager *helpManager
= ExtensionSystem::PluginManager::instance()->getObject<Help::HelpManager>();
Q_ASSERT(helpManager);
- helpManager->openContextHelpPage(url);
+ helpManager->handleHelpRequest(url);
}
void GettingStartedWelcomePageWidget::slotNextTip()