From 2948651fa90a9acf6f0293251a92e8fe3c504f05 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <daniel.molkentin@nokia.com> Date: Thu, 6 Aug 2009 15:47:31 +0200 Subject: [PATCH] Show tutorials in context help pane by default, but honor context help settings. Reviewed-by: kh --- src/plugins/help/helpplugin.cpp | 89 +++++++++++-------- src/plugins/help/helpplugin.h | 3 +- .../gettingstartedwelcomepagewidget.cpp | 10 +-- 3 files changed, 57 insertions(+), 45 deletions(-) diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 2ff11c8072c..29a3f42c523 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -76,6 +76,7 @@ #include <QtGui/QToolBar> #include <QtGui/QComboBox> #include <QtGui/QDesktopServices> +#include <QtGui/QMessageBox> #include <QtHelp/QHelpEngine> #ifndef QT_NO_WEBKIT @@ -118,7 +119,7 @@ void HelpManager::registerDocumentation(const QStringList &fileNames) void HelpManager::openHelpPage(const QString& url) { - m_plugin->openHelpPage(url); + m_plugin->handleHelpRequest(url); } void HelpManager::openContextHelpPage(const QString& url) @@ -405,7 +406,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) createRightPaneSideBar(); - QDesktopServices::setUrlHandler("qthelp", this, "openHelpPage"); + QDesktopServices::setUrlHandler("qthelp", this, "handleHelpRequest"); if (Core::ActionContainer *advancedMenu = am->actionContainer(Core::Constants::M_EDIT_ADVANCED)) { @@ -674,12 +675,6 @@ void HelpPlugin::modeChanged(Core::IMode *mode) } } -void HelpPlugin::openContextHelpPage(const QString &url) -{ - Core::RightPaneWidget::instance()->setShown(true); - m_helpViewerForSideBar->setSource(QUrl(url)); -} - void HelpPlugin::updateSideBarSource() { const QUrl &url = m_centralWidget->currentSource(); @@ -713,35 +708,9 @@ void HelpPlugin::fontChanged() #endif } -void HelpPlugin::activateContext() +HelpViewer* HelpPlugin::viewerForContextMode() { - Core::RightPanePlaceHolder* placeHolder = Core::RightPanePlaceHolder::current(); - if (placeHolder && Core::RightPaneWidget::instance()->hasFocus()) { - switchToHelpMode(); - return; - } else if (m_core->modeManager()->currentMode() == m_mode) - return; - - QString id; - QMap<QString, QUrl> links; - - // Find out what to show - if (Core::IContext *context = m_core->currentContextObject()) { - if (!m_contextHelpEngine) { - m_contextHelpEngine = - new QHelpEngineCore(m_helpEngine->collectionFile(), this); - m_contextHelpEngine->setupData(); - m_contextHelpEngine->setCurrentFilter(tr("Unfiltered")); - } - - id = context->contextHelpId(); - links = m_contextHelpEngine->linksForIdentifier(id); - } - HelpViewer *viewer = 0; - - - bool showSideBySide = false; switch (m_helpEngine->customValue(QLatin1String("ContextHelpOption"), 0).toInt()) @@ -761,7 +730,8 @@ void HelpPlugin::activateContext() break; } - if (placeHolder && showSideBySide && !Core::RightPaneWidget::instance()->hasFocus()) { + Core::RightPanePlaceHolder* placeHolder = Core::RightPanePlaceHolder::current(); + if (placeHolder && showSideBySide) { Core::RightPaneWidget::instance()->setShown(true); viewer = m_helpViewerForSideBar; } else { @@ -770,6 +740,37 @@ void HelpPlugin::activateContext() viewer = m_centralWidget->currentHelpViewer(); } + return viewer; +} + +void HelpPlugin::activateContext() +{ + Core::RightPanePlaceHolder* placeHolder = Core::RightPanePlaceHolder::current(); + if (placeHolder && m_helpViewerForSideBar->hasFocus()) { + switchToHelpMode(); + return; + } else if (m_core->modeManager()->currentMode() == m_mode) + return; + + QString id; + QMap<QString, QUrl> links; + + // Find out what to show + if (Core::IContext *context = m_core->currentContextObject()) { + if (!m_contextHelpEngine) { + m_contextHelpEngine = + new QHelpEngineCore(m_helpEngine->collectionFile(), this); + m_contextHelpEngine->setupData(); + m_contextHelpEngine->setCurrentFilter(tr("Unfiltered")); + } + + id = context->contextHelpId(); + links = m_contextHelpEngine->linksForIdentifier(id); + } + QMessageBox::warning(0, "id", id); + + HelpViewer* viewer = viewerForContextMode(); + if (viewer) { if (links.isEmpty()) { // No link found or no context object @@ -876,9 +877,12 @@ void HelpPlugin::addNewBookmark(const QString &title, const QString &url) m_bookmarkManager->showBookmarkDialog(m_centralWidget, title, url); } -void HelpPlugin::openHelpPage(const QUrl& url) +void HelpPlugin::handleHelpRequest(const QUrl& url) { - openHelpPage(url.toString()); + if (url.queryItemValue("view") == QLatin1String("split")) + openContextHelpPage(url.toString()); + else + openHelpPage(url.toString()); } void HelpPlugin::openHelpPage(const QString& url) @@ -899,4 +903,13 @@ void HelpPlugin::openHelpPage(const QString& url) } } +void HelpPlugin::openContextHelpPage(const QString &url) +{ + Core::ModeManager *modeManager = Core::ICore::instance()->modeManager(); + if (modeManager->currentMode() == modeManager->mode(Core::Constants::MODE_WELCOME)) + modeManager->activateMode(Core::Constants::MODE_EDIT); + 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 10cf1fdf2ff..90e9c270abd 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -111,7 +111,7 @@ public: void setIndexFilter(const QString &filter); QString indexFilter() const; - void openHelpPage(const QUrl& url); + void handleHelpRequest(const QUrl& url); void openHelpPage(const QString& url); void openContextHelpPage(const QString &url); @@ -146,6 +146,7 @@ private: QToolBar *createToolBar(); void createRightPaneSideBar(); void activateHelpMode(); + HelpViewer* viewerForContextMode(); Core::ICore *m_core; QHelpEngine *m_helpEngine; diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp index a771c194331..fc4d4e7e754 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp @@ -48,8 +48,6 @@ namespace Qt4ProjectManager { namespace Internal { -// TODO: remove - GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent) : QWidget(parent), ui(new Ui::GettingStartedWelcomePageWidget) @@ -67,13 +65,13 @@ GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent ui->tutorialTreeWidget->addItem(tr("<b>Qt Creator - A quick tour</b>"), QString("qthelp://com.nokia.qtcreator.%1%2/doc/index.html").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR)); ui->tutorialTreeWidget->addItem(tr("Creating an address book"), - QLatin1String("qthelp://com.nokia.qtcreator/doc/tutorials-addressbook-sdk.html")); + QLatin1String("qthelp://com.nokia.qtcreator/doc/tutorials-addressbook-sdk.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Understanding widgets"), - QLatin1String("qthelp://com.trolltech.qt/qdoc/widgets-tutorial.html")); + QLatin1String("qthelp://com.trolltech.qt/qdoc/widgets-tutorial.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Building with qmake"), - QLatin1String("qthelp://com.trolltech.qmake/qdoc/qmake-tutorial.html")); + QLatin1String("qthelp://com.trolltech.qmake/qdoc/qmake-tutorial.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Writing test cases"), - QLatin1String("qthelp://com.trolltech.qt/qdoc/qtestlib-tutorial.html")); + QLatin1String("qthelp://com.trolltech.qt/qdoc/qtestlib-tutorial.html?view=split")); srand(QDateTime::currentDateTime().toTime_t()); QStringList tips = tipsOfTheDay(); -- GitLab