summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGökay Şatır <gokaysatir@collabora.com>2022-09-07 15:04:57 +0300
committerGökay ŞATIR <gokaysatir@gmail.com>2022-09-19 17:37:01 +0300
commit90fc38152f440268afcb88e8fca02ea71623b981 (patch)
tree15685e4ee1cf61f032ae63c966825311c9b5393b
parent fix: notebookbar, tablets: sidebar toggle icons not visible in online browser (diff)
downloadonline-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.js12
-rw-r--r--browser/src/control/Control.Toolbar.js2
-rw-r--r--browser/src/control/Control.UIManager.js9
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');
}