diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-06-03 11:06:22 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-06-03 11:29:25 +0100 |
commit | b81daea4a78083def286fa2d5360b152b7a703fd (patch) | |
tree | 9983aae5fbfb409eb3965357da4adb4b35a7b836 /sfx2/source/sidebar/Sidebar.cxx | |
parent | 629f5c01ae1512724d0b2105bfd205d7c2deae19 (diff) |
OpenThenSwitchToDeck actually *toggles* deck visibility
so rename it to that and add a OpenThenSwitchToDeck that actually
does that, using the Toggle varient as the callback from the
sidebar button which toggles the current deck on/off
which retains the features of
// tdf#67627 Clicking a second time on a Deck icon will close the Deck
// tdf#88241 Summoning an undocked sidebar a second time should close sidebar
but means that calls to OpenThenSwitchToDeck from e.g. slide layout
don't auto close it if that deck is already open
Change-Id: I3e3724626b93447a7ab6bc7032e9c6839dabcf55
Diffstat (limited to 'sfx2/source/sidebar/Sidebar.cxx')
-rw-r--r-- | sfx2/source/sidebar/Sidebar.cxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sfx2/source/sidebar/Sidebar.cxx b/sfx2/source/sidebar/Sidebar.cxx index ac45f616275a..eaa8a510c00f 100644 --- a/sfx2/source/sidebar/Sidebar.cxx +++ b/sfx2/source/sidebar/Sidebar.cxx @@ -47,6 +47,28 @@ void Sidebar::ShowPanel ( pController->OpenThenSwitchToDeck(pPanelDescriptor->msDeckId); } +void Sidebar::TogglePanel ( + const OUString& rsPanelId, + const css::uno::Reference<frame::XFrame>& rxFrame) +{ + SidebarController* pController = SidebarController::GetSidebarControllerForFrame(rxFrame); + if (!pController) + return; + + const PanelDescriptor* pPanelDescriptor = pController->GetResourceManager()->GetPanelDescriptor(rsPanelId); + + if (!pPanelDescriptor) + return; + + // This should be a lot more sophisticated: + // - Make the deck switching asynchronous + // - Make sure to use a context that really shows the panel + + // All that is not necessary for the current use cases so lets + // keep it simple for the time being. + pController->OpenThenToggleDeck(pPanelDescriptor->msDeckId); +} + bool Sidebar::IsPanelVisible( const OUString& rsPanelId, const css::uno::Reference<frame::XFrame>& rxFrame) |