diff options
author | Gökay Şatır <gokaysatir@collabora.com> | 2022-09-07 15:04:57 +0300 |
---|---|---|
committer | Gökay ŞATIR <gokaysatir@gmail.com> | 2022-09-19 17:37:01 +0300 |
commit | 90fc38152f440268afcb88e8fca02ea71623b981 (patch) | |
tree | 15685e4ee1cf61f032ae63c966825311c9b5393b | |
parent | fix: notebookbar, tablets: sidebar toggle icons not visible in online browser (diff) | |
download | online-90fc38152f440268afcb88e8fca02ea71623b981.tar.gz online-90fc38152f440268afcb88e8fca02ea71623b981.zip |
Save different sidebar states for Impress.
Remember them on opening if local storage is enabled.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I0c3e4eb65dfc16807d2a9a654d8e71f64341df67
-rw-r--r-- | browser/src/control/Control.Sidebar.js | 12 | ||||
-rw-r--r-- | browser/src/control/Control.Toolbar.js | 2 | ||||
-rw-r--r-- | browser/src/control/Control.UIManager.js | 9 |
3 files changed, 23 insertions, 0 deletions
diff --git a/browser/src/control/Control.Sidebar.js b/browser/src/control/Control.Sidebar.js index bceb212983..322d0e9480 100644 --- a/browser/src/control/Control.Sidebar.js +++ b/browser/src/control/Control.Sidebar.js @@ -116,6 +116,13 @@ L.Control.Sidebar = L.Control.extend({ wrapper.style.maxHeight = document.getElementById('document-container').getBoundingClientRect().height + 'px'; }, + unsetSelectedSidebar: function() { + this.map.uiManager.setSavedState('PropertyDeck', false); + this.map.uiManager.setSavedState('SdSlideTransitionDeck', false); + this.map.uiManager.setSavedState('SdCustomAnimationDeck', false); + this.map.uiManager.setSavedState('SdMasterPagesDeck', false); + }, + onSidebar: function(data) { var sidebarData = data.data; this.builder.setWindowId(sidebarData.id); @@ -134,6 +141,11 @@ L.Control.Sidebar = L.Control.extend({ this.onResize(); + if (this.map.getDocType() === 'presentation' && sidebarData.children && sidebarData.children[0] && sidebarData.children[0].id) { + this.unsetSelectedSidebar(); + this.map.uiManager.setSavedState(sidebarData.children[0].id, true); + } + this.builder.build(this.container, [sidebarData]); if (wrapper.style.display === 'none') $('#sidebar-dock-wrapper').show(this.options.animSpeed); diff --git a/browser/src/control/Control.Toolbar.js b/browser/src/control/Control.Toolbar.js index 915d88282d..f57720f4cb 100644 --- a/browser/src/control/Control.Toolbar.js +++ b/browser/src/control/Control.Toolbar.js @@ -78,6 +78,8 @@ function onClick(e, id, item) { item = item || getToolbarItemById(id); if (id === 'sidebar' || id === 'modifypage' || id === 'slidechangewindow' || id === 'customanimation' || id === 'masterslidespanel') { + if (!map.uiManager.getSavedStateOrDefault('ShowSidebar', false)) + map.sendUnoCommand('.uno:SidebarShow'); window.initSidebarState = true; } diff --git a/browser/src/control/Control.UIManager.js b/browser/src/control/Control.UIManager.js index 88ad980349..8e8371ba6e 100644 --- a/browser/src/control/Control.UIManager.js +++ b/browser/src/control/Control.UIManager.js @@ -221,6 +221,15 @@ L.Control.UIManager = L.Control.extend({ if (window.mode.isDesktop() && !window.ThisIsAMobileApp) { var showSidebar = this.getSavedStateOrDefault('ShowSidebar'); + if (this.map.getDocType() === 'presentation') { + if (this.getSavedStateOrDefault('SdSlideTransitionDeck')) + app.socket.sendMessage('uno .uno:SlideChangeWindow'); + else if (this.getSavedStateOrDefault('SdCustomAnimationDeck')) + app.socket.sendMessage('uno .uno:CustomAnimation'); + else if (this.getSavedStateOrDefault('SdMasterPagesDeck')) + app.socket.sendMessage('uno .uno:MasterSlidesPanel'); + } + if (showSidebar === false) app.socket.sendMessage('uno .uno:SidebarHide'); } |