loleaflet/src/control/Control.Menubar.js | 4 - loleaflet/src/control/Control.Toolbar.js | 2 loleaflet/src/control/Control.UIManager.js | 94 ++++++++++++++++++++++++++++- loleaflet/src/map/Map.js | 83 ------------------------- loleaflet/src/map/handler/Map.WOPI.js | 8 +- 5 files changed, 101 insertions(+), 90 deletions(-)
New commits: commit 3a1cd33c9091b7d38a4b467b8e38b9ddface25c8 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Fri Apr 17 12:28:03 2020 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Fri Apr 17 15:59:17 2020 +0200 Move ruler & menubar toggling to UIManager Change-Id: Idaaa90e48bcfb3620e78ad8e4c859eacdb4ff7cc Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92416 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js index b0c042d9e..ec5d49457 100644 --- a/loleaflet/src/control/Control.Menubar.js +++ b/loleaflet/src/control/Control.Menubar.js @@ -1027,7 +1027,7 @@ L.Control.Menubar = L.Control.extend({ self.options.allowedViewModeActions.splice(index, 1); } } else if (id === 'showruler') { - if (self._map.isRulerVisible()) { + if (self._map.uiManager.isRulerVisible()) { $(aItem).addClass(constChecked); } else { $(aItem).removeClass(constChecked); @@ -1156,7 +1156,7 @@ L.Control.Menubar = L.Control.extend({ } else if (id === 'fullscreen') { L.toggleFullScreen(); } else if (id === 'showruler') { - this._map.toggleRuler(); + this._map.uiManager.toggleRuler(); } else if (id === 'fullscreen-presentation' && this._map.getDocType() === 'presentation') { this._map.fire('fullscreen'); } else if (id === 'insertpage') { diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js index ece25efcb..0dc0264d6 100644 --- a/loleaflet/src/control/Control.Toolbar.js +++ b/loleaflet/src/control/Control.Toolbar.js @@ -127,7 +127,7 @@ function onClick(e, id, item) { onColorPick(id, e.color); } else if (id === 'fold' || id === 'hamburger-tablet') { - map.toggleMenubar(); + map.uiManager.toggleMenubar(); } else if (id === 'close' || id === 'closemobile') { if (window.ThisIsAMobileApp) { diff --git a/loleaflet/src/control/Control.UIManager.js b/loleaflet/src/control/Control.UIManager.js index a75481b9f..8e4967481 100644 --- a/loleaflet/src/control/Control.UIManager.js +++ b/loleaflet/src/control/Control.UIManager.js @@ -1,6 +1,7 @@ /* -*- js-indent-level: 8 -*- */ /* - * L.Control.UIManager + * L.Control.UIManager - initializes the UI elements like toolbars, menubar or ruler + and allows to controll them (show/hide) */ /* global $ setupToolbar w2ui w2utils */ @@ -11,6 +12,8 @@ L.Control.UIManager = L.Control.extend({ map.on('updatepermission', this.onUpdatePermission, this); }, + // UI initialization + initializeBasicUI: function() { var that = this; @@ -81,6 +84,80 @@ L.Control.UIManager = L.Control.extend({ } }, + // Menubar + + showMenubar: function() { + if (!this.isMenubarHidden()) + return; + $('.main-nav').show(); + if (L.Params.closeButtonEnabled && !window.mode.isTablet()) { + $('#closebuttonwrapper').show(); + } + + var obj = $('.unfold'); + obj.removeClass('w2ui-icon unfold'); + obj.addClass('w2ui-icon fold'); + + this.moveObjectVertically($('#spreadsheet-row-column-frame'), 36); + this.moveObjectVertically($('#document-container'), 36); + this.moveObjectVertically($('#presentation-controls-wrapper'), 36); + this.moveObjectVertically($('#sidebar-dock-wrapper'), 36); + }, + + hideMenubar: function() { + if (this.isMenubarHidden()) + return; + $('.main-nav').hide(); + if (L.Params.closeButtonEnabled) { + $('#closebuttonwrapper').hide(); + } + + var obj = $('.fold'); + obj.removeClass('w2ui-icon fold'); + obj.addClass('w2ui-icon unfold'); + + this.moveObjectVertically($('#spreadsheet-row-column-frame'), -36); + this.moveObjectVertically($('#document-container'), -36); + this.moveObjectVertically($('#presentation-controls-wrapper'), -36); + this.moveObjectVertically($('#sidebar-dock-wrapper'), -36); + }, + + isMenubarHidden: function() { + return $('.main-nav').css('display') === 'none'; + }, + + toggleMenubar: function() { + if (this.isMenubarHidden()) + this.showMenubar(); + else + this.hideMenubar(); + }, + + // Ruler + + showRuler: function() { + $('.loleaflet-ruler').show(); + $('#map').addClass('hasruler'); + }, + + hideRuler: function() { + $('.loleaflet-ruler').hide(); + $('#map').removeClass('hasruler'); + }, + + toggleRuler: function() { + if (this.isRulerVisible()) + this.hideRuler(); + else + this.showRuler(); + }, + + isRulerVisible: function() { + return $('.loleaflet-ruler').is(':visible'); + }, + + // Event handlers + onUpdatePermission: function(e) { if (window.mode.isMobile()) { if (e.perm === 'edit') { @@ -102,6 +179,21 @@ L.Control.UIManager = L.Control.extend({ toolbarUp.resize(); statusbar.resize(); } + }, + + // Helper functions + + moveObjectVertically: function(obj, diff) { + if (obj) { + var prevTop = obj.css('top'); + if (prevTop) { + prevTop = parseInt(prevTop.slice(0, -2)) + diff; + } + else { + prevTop = 0 + diff; + } + obj.css({'top': String(prevTop) + 'px'}); + } } }); diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index b333774da..860117cc5 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -3,19 +3,6 @@ * L.Map is the central class of the API - it is used to create a map. */ -function moveObjectVertically(obj, diff) { - if (obj) { - var prevTop = obj.css('top'); - if (prevTop) { - prevTop = parseInt(prevTop.slice(0, -2)) + diff; - } - else { - prevTop = 0 + diff; - } - obj.css({'top': String(prevTop) + 'px'}); - } -} - function isAnyVexDialogActive() { var res = false; for (var vexId in vex.getAll()) { @@ -53,7 +40,7 @@ L.Map = L.Evented.extend({ cursorURL: 'images/cursors' }, - // uiManager is set in main.js + // Control.UIManager instance, set in main.js uiManager: null, // Control.LokDialog instance, is set in Control.UIManager.js @@ -1764,74 +1751,6 @@ L.Map = L.Evented.extend({ IsFollowEditor: followEditor}}); }, - showMenubar: function() { - if (!this.isMenubarHidden()) - return; - $('.main-nav').show(); - if (L.Params.closeButtonEnabled && !window.mode.isTablet()) { - $('#closebuttonwrapper').show(); - } - - var obj = $('.unfold'); - obj.removeClass('w2ui-icon unfold'); - obj.addClass('w2ui-icon fold'); - - moveObjectVertically($('#spreadsheet-row-column-frame'), 36); - moveObjectVertically($(this.options.documentContainer), 36); - moveObjectVertically($('#presentation-controls-wrapper'), 36); - moveObjectVertically($('#sidebar-dock-wrapper'), 36); - }, - - hideMenubar: function() { - if (this.isMenubarHidden()) - return; - $('.main-nav').hide(); - if (L.Params.closeButtonEnabled) { - $('#closebuttonwrapper').hide(); - } - - var obj = $('.fold'); - obj.removeClass('w2ui-icon fold'); - obj.addClass('w2ui-icon unfold'); - - moveObjectVertically($('#spreadsheet-row-column-frame'), -36); - moveObjectVertically($(this.options.documentContainer), -36); - moveObjectVertically($('#presentation-controls-wrapper'), -36); - moveObjectVertically($('#sidebar-dock-wrapper'), -36); - }, - - isMenubarHidden: function() { - return $('.main-nav').css('display') === 'none'; - }, - - toggleMenubar: function() { - if (this.isMenubarHidden()) - this.showMenubar(); - else - this.hideMenubar(); - }, - - showRuler: function() { - $('.loleaflet-ruler').show(); - $('#map').addClass('hasruler'); - }, - - hideRuler: function() { - $('.loleaflet-ruler').hide(); - $('#map').removeClass('hasruler'); - }, - - toggleRuler: function() { - if (this.isRulerVisible()) - this.hideRuler(); - else - this.showRuler(); - }, - - isRulerVisible: function() { - return $('.loleaflet-ruler').is(':visible'); - }, - hasObjectFocusDarkOverlay: function() { return !!this.focusLayer; }, diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js index 89f01ec53..b3a4a2fc6 100644 --- a/loleaflet/src/map/handler/Map.WOPI.js +++ b/loleaflet/src/map/handler/Map.WOPI.js @@ -247,16 +247,16 @@ L.Map.WOPI = L.Handler.extend({ w2ui['actionbar'].remove(msg.Values.id); } else if (msg.MessageId === 'Show_Menubar') { - this._map.showMenubar(); + this._map.uiManager.showMenubar(); } else if (msg.MessageId === 'Hide_Menubar') { - this._map.hideMenubar(); + this._map.uiManager.hideMenubar(); } else if (msg.MessageId === 'Show_Ruler') { - this._map.showRuler(); + this._map.uiManager.showRuler(); } else if (msg.MessageId === 'Hide_Ruler') { - this._map.hideRuler(); + this._map.uiManager.hideRuler(); } else if (msg.MessageId === 'Show_Menu_Item' || msg.MessageId === 'Hide_Menu_Item') { if (!msg.Values) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits