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 | |
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')
-rw-r--r-- | src/plugins/help/generalsettingspage.cpp | 12 | ||||
-rw-r--r-- | src/plugins/help/generalsettingspage.h | 3 | ||||
-rw-r--r-- | src/plugins/help/generalsettingspage.ui | 23 | ||||
-rw-r--r-- | src/plugins/help/helpplugin.cpp | 8 | ||||
-rw-r--r-- | src/plugins/help/openpagesmanager.cpp | 19 |
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) |