summaryrefslogtreecommitdiff
path: root/sfx2/source/sidebar/Sidebar.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-06-03 11:06:22 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-06-03 11:29:25 +0100
commitb81daea4a78083def286fa2d5360b152b7a703fd (patch)
tree9983aae5fbfb409eb3965357da4adb4b35a7b836 /sfx2/source/sidebar/Sidebar.cxx
parent629f5c01ae1512724d0b2105bfd205d7c2deae19 (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.cxx22
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)