loleaflet/css/toolbar.css | 1 + loleaflet/src/control/Control.FormulaBar.js | 24 ++++++++++++++++++++++++ loleaflet/src/control/Control.LokDialog.js | 3 ++- loleaflet/src/control/Control.MobileTopBar.js | 19 ++++++++++++++++++- loleaflet/src/map/Map.js | 1 + 5 files changed, 46 insertions(+), 2 deletions(-)
New commits: commit 6037d52bca434189af9ee72fb70b8a316e6a8abc Author: Marco Cecchetti <marco.cecche...@collabora.com> AuthorDate: Tue Apr 21 18:08:13 2020 +0200 Commit: Marco Cecchetti <marco.cecche...@collabora.com> CommitDate: Wed Apr 29 13:27:53 2020 +0200 loleaflet: mobile: remove sum and equal buttons from the formula bar The sum and equal buttons has been removed from the formula bar. Now, in the mobile case, the accept/cancel buttons are shown in place of undo/redo buttons when the formula input bar gets focus. Change-Id: I378059396df3566d5bf3c83b2defa99fc669054d Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89454 Tested-by: Marco Cecchetti <marco.cecche...@collabora.com> Reviewed-by: Marco Cecchetti <marco.cecche...@collabora.com> diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css index fd903aa5a..a1eca0bd8 100644 --- a/loleaflet/css/toolbar.css +++ b/loleaflet/css/toolbar.css @@ -661,6 +661,7 @@ button.leaflet-control-search-next .w2ui-icon.functiondialog{ background: url('images/lc_functiondialog.svg') no-repeat center !important; } .w2ui-icon.accepttrackedchanges{ background: url('images/lc_accepttrackedchanges.svg') no-repeat center !important; } +.w2ui-icon.ok{ background: url('images/lc_ok.svg') no-repeat center !important; } .w2ui-icon.cancel{ background: url('images/lc_cancel.svg') no-repeat center !important; } .w2ui-icon.color{ background: url('images/lc_color.svg') no-repeat center !important; } .w2ui-icon.deletepage{ background: url('images/lc_deletepage.svg') no-repeat center !important; } diff --git a/loleaflet/src/control/Control.FormulaBar.js b/loleaflet/src/control/Control.FormulaBar.js index 48d8a4f2d..e62bd2c86 100644 --- a/loleaflet/src/control/Control.FormulaBar.js +++ b/loleaflet/src/control/Control.FormulaBar.js @@ -144,6 +144,30 @@ L.Control.FormulaBar = L.Control.extend({ } }); +L.Map.include({ + onFormulaBarFocus: function() { + var mobileTopBar = w2ui['actionbar']; + mobileTopBar.hide('undo'); + mobileTopBar.hide('redo'); + mobileTopBar.show('cancelformula'); + mobileTopBar.show('acceptformula'); + }, + + onFormulaBarBlur: function() { + // The timeout is needed because we want 'click' event on 'cancel', + // 'accept' button to act before we hide these buttons because + // once hidden, click event won't be processed. + // TODO: Some better way to do it ? + setTimeout(function() { + var mobileTopBar = w2ui['actionbar']; + mobileTopBar.show('undo'); + mobileTopBar.show('redo'); + mobileTopBar.hide('cancelformula'); + mobileTopBar.hide('acceptformula'); + }, 250); + } +}); + L.control.formulaBar = function (options) { return new L.Control.FormulaBar(options); }; diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js index 0a372e3a2..7a12317e2 100644 --- a/loleaflet/src/control/Control.LokDialog.js +++ b/loleaflet/src/control/Control.LokDialog.js @@ -826,7 +826,7 @@ L.Control.LokDialog = L.Control.extend({ L.DomUtil.setStyle(handles, 'position', 'absolute'); L.DomUtil.setStyle(handles, 'background', 'transparent'); this._setCanvasWidthHeight(handles, width, height); - handles.offsetX = 48; + handles.offsetX = window.mode.isMobile() ? 0 : 48; // 48 with sigma and equal buttons handles.offsetY = 0; var startHandle = document.createElement('div'); L.DomUtil.addClass(startHandle, 'leaflet-selection-marker-start'); @@ -1316,6 +1316,7 @@ L.Control.LokDialog = L.Control.extend({ this._onEditorGotFocus(); } else { this.focus(e.winId, e.acceptInput); + this._map.onFormulaBarFocus(); } }, diff --git a/loleaflet/src/control/Control.MobileTopBar.js b/loleaflet/src/control/Control.MobileTopBar.js index 8543a3221..ba727279f 100644 --- a/loleaflet/src/control/Control.MobileTopBar.js +++ b/loleaflet/src/control/Control.MobileTopBar.js @@ -3,7 +3,7 @@ * L.Control.SearchBar */ -/* global $ w2ui _UNO */ +/* global $ w2ui _UNO _ */ L.Control.MobileTopBar = L.Control.extend({ options: { @@ -41,6 +41,8 @@ L.Control.MobileTopBar = L.Control.extend({ {type: 'spacer'}, {type: 'button', id: 'undo', img: 'undo', hint: _UNO('.uno:Undo'), uno: 'Undo', disabled: true}, {type: 'button', id: 'redo', img: 'redo', hint: _UNO('.uno:Redo'), uno: 'Redo', disabled: true}, + {type: 'button', hidden: true, id: 'acceptformula', img: 'ok', hint: _('Accept')}, + {type: 'button', hidden: true, id: 'cancelformula', img: 'cancel', hint: _('Cancel')}, {type: 'button', id: 'mobile_wizard', img: 'mobile_wizard', disabled: true}, {type: 'button', id: 'insertion_mobile_wizard', img: 'insertion_mobile_wizard', disabled: true}, // {type: 'button', id: 'insertcomment', img: 'insertcomment', disabled: true}, @@ -108,6 +110,21 @@ L.Control.MobileTopBar = L.Control.extend({ this.map.toggleCommandState(window.getUNOCommand(item.uno)); } } + else if (id === 'cancelformula') { + this.map.sendUnoCommand('.uno:Cancel'); + w2ui['actionbar'].hide('acceptformula', 'cancelformula'); + w2ui['actionbar'].show('undo', 'redo'); + } + else if (id === 'acceptformula') { + // focus on map, and press enter + this.map.focus(); + this.map._docLayer.postKeyboardEvent('input', + this.map.keyboard.keyCodes.enter, + this.map.keyboard._toUNOKeyCode(this.map.keyboard.keyCodes.enter)); + + w2ui['actionbar'].hide('acceptformula', 'cancelformula'); + w2ui['actionbar'].show('undo', 'redo'); + } else if (id === 'insertcomment') { this.map.insertComment(); } diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index bf331537e..982cde654 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -1401,6 +1401,7 @@ L.Map = L.Evented.extend({ if (this.dialog._calcInputBar) { var inputBarId = this.dialog._calcInputBar.id; this.dialog._updateTextSelection(inputBarId); + this.onFormulaBarBlur(); } }, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits