diff options
author | kh1 <qt-info@nokia.com> | 2010-09-21 17:00:41 +0200 |
---|---|---|
committer | kh1 <qt-info@nokia.com> | 2010-09-21 17:01:36 +0200 |
commit | 55fe83c291b8f351ffd7caed0391972c3872c3dc (patch) | |
tree | bf2bf142592f763d5b4202056fd419265f1f9184 /src/plugins/help/openpagesmanager.cpp | |
parent | 718433d27e5fba28e2998dffca08aae72bebf715 (diff) | |
download | qt-creator-55fe83c291b8f351ffd7caed0391972c3872c3dc.tar.gz |
Make it possible to return editor mode if the last help page was closed.
Diffstat (limited to 'src/plugins/help/openpagesmanager.cpp')
-rw-r--r-- | src/plugins/help/openpagesmanager.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp index 98ee8d3c29..7d6efefed1 100644 --- a/src/plugins/help/openpagesmanager.cpp +++ b/src/plugins/help/openpagesmanager.cpp @@ -45,6 +45,10 @@ #include <QtHelp/QHelpEngine> +#include <coreplugin/coreconstants.h> +#include <coreplugin/helpmanager.h> +#include <coreplugin/modemanager.h> + using namespace Help::Internal; OpenPagesManager *OpenPagesManager::m_instance = 0; @@ -226,11 +230,22 @@ void OpenPagesManager::closeCurrentPage() { if (!m_openPagesWidget) return; + QModelIndexList indexes = m_openPagesWidget->selectionModel()->selectedRows(); if (indexes.isEmpty()) return; - Q_ASSERT(indexes.count() == 1); - removePage(indexes.first().row()); + + Core::HelpManager *manager = Core::HelpManager::instance(); + const bool closeOnReturn = manager->customValue(QLatin1String("ReturnOnClose"), + false).toBool(); + + if (m_model->rowCount() == 1 && closeOnReturn) { + Core::ModeManager *modeManager = Core::ModeManager::instance(); + modeManager->activateMode(Core::Constants::MODE_EDIT); + } else { + Q_ASSERT(indexes.count() == 1); + removePage(indexes.first().row()); + } } void OpenPagesManager::closePage(const QModelIndex &index) |