summaryrefslogtreecommitdiff
path: root/src
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
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')
-rw-r--r--src/plugins/help/generalsettingspage.cpp12
-rw-r--r--src/plugins/help/generalsettingspage.h3
-rw-r--r--src/plugins/help/generalsettingspage.ui23
-rw-r--r--src/plugins/help/helpplugin.cpp8
-rw-r--r--src/plugins/help/openpagesmanager.cpp19
5 files changed, 60 insertions, 5 deletions
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 85d6caef94..04eccbc02b 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -137,6 +137,11 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent)
<< ' ' << m_ui.bookmarkGroupBox->title();
m_searchKeywords.remove(QLatin1Char('&'));
}
+
+ m_returnOnClose = manager->customValue(QLatin1String("ReturnOnClose"),
+ false).toBool();
+ m_ui.m_returnOnClose->setChecked(m_returnOnClose);
+
return widget;
}
@@ -195,6 +200,13 @@ void GeneralSettingsPage::apply()
emit contextHelpOptionChanged();
}
+
+ const bool close = m_ui.m_returnOnClose->isChecked();
+ if (m_returnOnClose != close) {
+ m_returnOnClose = close;
+ manager->setCustomValue(QLatin1String("ReturnOnClose"), close);
+ emit returnOnCloseChanged();
+ }
}
void GeneralSettingsPage::setCurrentPage()
diff --git a/src/plugins/help/generalsettingspage.h b/src/plugins/help/generalsettingspage.h
index c35c350e5f..87a93b5b13 100644
--- a/src/plugins/help/generalsettingspage.h
+++ b/src/plugins/help/generalsettingspage.h
@@ -59,6 +59,7 @@ public:
signals:
void fontChanged();
void startOptionChanged();
+ void returnOnCloseChanged();
void contextHelpOptionChanged();
private slots:
@@ -81,6 +82,8 @@ private:
QString m_homePage;
int m_contextOption;
+ bool m_returnOnClose;
+
QString m_searchKeywords;
Ui::GeneralSettingsPage m_ui;
};
diff --git a/src/plugins/help/generalsettingspage.ui b/src/plugins/help/generalsettingspage.ui
index 40c9c70703..e317495c0d 100644
--- a/src/plugins/help/generalsettingspage.ui
+++ b/src/plugins/help/generalsettingspage.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>498</width>
- <height>304</height>
+ <width>491</width>
+ <height>360</height>
</rect>
</property>
<property name="windowTitle">
@@ -357,6 +357,25 @@
</widget>
</item>
<item>
+ <widget class="QGroupBox" name="behaviourGroupBox">
+ <property name="title">
+ <string>Behaviour</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <widget class="QCheckBox" name="m_returnOnClose">
+ <property name="toolTip">
+ <string>Switch to editor context after last help page is closed.</string>
+ </property>
+ <property name="text">
+ <string>Return to editor on close last page</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index 902885b2b0..ca218cc68e 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -164,6 +164,8 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
SLOT(fontChanged()));
connect(m_generalSettingsPage, SIGNAL(contextHelpOptionChanged()), this,
SLOT(contextHelpOptionChanged()));
+ connect(m_generalSettingsPage, SIGNAL(returnOnCloseChanged()), this,
+ SLOT(updateCloseButton()));
connect(Core::HelpManager::instance(), SIGNAL(helpRequested(QUrl)), this,
SLOT(handleHelpRequest(QUrl)));
@@ -670,7 +672,11 @@ void HelpPlugin::updateSideBarSource(const QUrl &newUrl)
void HelpPlugin::updateCloseButton()
{
- m_closeButton->setEnabled(OpenPagesManager::instance().pageCount() > 1);
+ Core::HelpManager *manager = Core::HelpManager::instance();
+ const bool closeOnReturn = manager->customValue(QLatin1String("ReturnOnClose"),
+ false).toBool();
+ m_closeButton->setEnabled((OpenPagesManager::instance().pageCount() > 1)
+ | closeOnReturn);
}
void HelpPlugin::fontChanged()
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)