summaryrefslogtreecommitdiff
path: root/src/plugins/help/openpagesmanager.cpp
diff options
context:
space:
mode:
authorkh1 <qt-info@nokia.com>2010-09-21 17:00:41 +0200
committerkh1 <qt-info@nokia.com>2010-09-21 17:01:36 +0200
commit55fe83c291b8f351ffd7caed0391972c3872c3dc (patch)
treebf2bf142592f763d5b4202056fd419265f1f9184 /src/plugins/help/openpagesmanager.cpp
parent718433d27e5fba28e2998dffca08aae72bebf715 (diff)
downloadqt-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.cpp19
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)