Make it possible to Show/Hide the sidebar in help mode.

Task-number: QTCREATORBUG-1533

Change-Id: I0ac767db5bcbda12a9d8ba1572ee75881308d0d0
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
kh1
2012-05-11 14:41:40 +02:00
committed by Eike Ziller
parent 5787c1e4cd
commit d762373b95
4 changed files with 32 additions and 4 deletions

View File

@@ -244,8 +244,10 @@ void SideBar::closeSubWidget()
removeSideBarWidget(widget);
updateWidgets();
} else {
if (d->m_closeWhenEmpty)
if (d->m_closeWhenEmpty) {
setVisible(false);
emit sideBarClosed();
}
}
}

View File

@@ -119,6 +119,7 @@ public:
QMap<QString, Core::Command *> shortcutMap() const;
signals:
void sideBarClosed();
void availableItemsChanged();
private slots:

View File

@@ -137,7 +137,8 @@ HelpPlugin::HelpPlugin()
m_connectWindow(true),
m_externalWindow(0),
m_backMenu(0),
m_nextMenu(0)
m_nextMenu(0),
m_isSidebarVisible(true)
{
}
@@ -407,8 +408,13 @@ void HelpPlugin::extensionsInitialized()
ExtensionSystem::IPlugin::ShutdownFlag HelpPlugin::aboutToShutdown()
{
if (m_sideBar)
m_sideBar->saveSettings(Core::ICore::settings(), QLatin1String("HelpSideBar"));
if (m_sideBar) {
QSettings *settings = Core::ICore::settings();
m_sideBar->saveSettings(settings, QLatin1String("HelpSideBar"));
// keep a boolean value to avoid to modify the sidebar class, at least some qml stuff
// depends on the always visible property of the sidebar...
settings->setValue(QLatin1String("HelpSideBar/") + QLatin1String("Visible"), m_isSidebarVisible);
}
delete m_externalWindow;
return SynchronousShutdown;
@@ -500,7 +506,9 @@ void HelpPlugin::setupUi()
<< m_openPagesItem;
m_sideBar = new Core::SideBar(itemList, QList<Core::SideBarItem*>()
<< m_contentItem << m_openPagesItem);
m_sideBar->setCloseWhenEmpty(true);
m_sideBar->setShortcutMap(shortcutMap);
connect(m_sideBar, SIGNAL(sideBarClosed()), this, SLOT(onSideBarVisibilityChanged()));
m_splitter->setOpaqueResize(false);
m_splitter->insertWidget(0, m_sideBar);
@@ -508,6 +516,12 @@ void HelpPlugin::setupUi()
m_splitter->setStretchFactor(1, 1);
m_sideBar->readSettings(Core::ICore::settings(), QLatin1String("HelpSideBar"));
m_splitter->setSizes(QList<int>() << m_sideBar->size().width() << 300);
m_toggleSideBarAction = new QAction(QIcon(QLatin1String(Core::Constants::ICON_TOGGLE_SIDEBAR)),
tr("Show Sidebar"), this);
m_toggleSideBarAction->setCheckable(true);
connect(m_toggleSideBarAction, SIGNAL(triggered(bool)), this, SLOT(showHideSidebar()));
cmd = am->registerAction(m_toggleSideBarAction, Core::Constants::TOGGLE_SIDEBAR, modecontext);
}
void HelpPlugin::resetFilter()
@@ -690,6 +704,7 @@ void HelpPlugin::slotHideRightPane()
void HelpPlugin::showHideSidebar()
{
m_sideBar->setVisible(!m_sideBar->isVisible());
onSideBarVisibilityChanged();
}
void HelpPlugin::showExternalWindow()
@@ -1229,6 +1244,12 @@ void HelpPlugin::openFindToolBar()
Find::FindPlugin::instance()->openFindToolBar(Find::FindPlugin::FindForward);
}
void HelpPlugin::onSideBarVisibilityChanged()
{
m_isSidebarVisible = m_sideBar->isVisible();
m_toggleSideBarAction->setToolTip(m_isSidebarVisible ? tr("Hide Sidebar") : tr("Show Sidebar"));
}
void HelpPlugin::doSetupIfNeeded()
{
m_helpManager->setupGuiHelpEngine();

View File

@@ -119,6 +119,7 @@ private slots:
void slotReportBug();
void openFindToolBar();
void onSideBarVisibilityChanged();
void scaleRightPaneUp();
void scaleRightPaneDown();
@@ -176,6 +177,9 @@ private:
QMenu *m_nextMenu;
Utils::StyledBar *m_internalHelpBar;
Utils::StyledBar *m_externalHelpBar;
bool m_isSidebarVisible;
QAction *m_toggleSideBarAction;
};
} // namespace Internal