loleaflet/Makefile.am | 1 loleaflet/src/control/Control.SheetsBar.js | 123 +++++++++++++++++++++++++++++ loleaflet/src/control/Control.Toolbar.js | 74 ----------------- loleaflet/src/layer/tile/CalcTileLayer.js | 22 ----- 4 files changed, 127 insertions(+), 93 deletions(-)
New commits: commit fe2743233fe644dfb7ea7e3e78f2ae4274b2ada7 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Apr 15 14:15:22 2020 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Apr 15 16:52:35 2020 +0200 Move sheets bar to separate file Change-Id: Id2cdfdd50e178e4de54a41fa1926e94def9a43f5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92271 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am index c5693d351..2a6355431 100644 --- a/loleaflet/Makefile.am +++ b/loleaflet/Makefile.am @@ -268,6 +268,7 @@ LOLEAFLET_JS =\ src/control/Control.MobileBottomBar.js \ src/control/Control.UserList.js \ src/control/Control.FormulaBar.js \ + src/control/Control.SheetsBar.js \ src/control/Control.Layers.js \ src/control/Search.js \ src/control/Permission.js \ diff --git a/loleaflet/src/control/Control.SheetsBar.js b/loleaflet/src/control/Control.SheetsBar.js new file mode 100644 index 000000000..1a9696a09 --- /dev/null +++ b/loleaflet/src/control/Control.SheetsBar.js @@ -0,0 +1,123 @@ +/* -*- js-indent-level: 8 -*- */ +/* + * L.Control.SheetsBar + */ + +/* global $ w2ui _ */ +L.Control.SheetsBar = L.Control.extend({ + options: { + shownavigation: true + }, + + onAdd: function (map) { + this.map = map; + this.create(); + + map.on('doclayerinit', this.onDocLayerInit, this); + map.on('updatepermission', this.onUpdatePermission, this); + }, + + create: function() { + var that = this; + var toolbar = $('#spreadsheet-toolbar'); + toolbar.w2toolbar({ + name: 'spreadsheet-toolbar', + tooltip: 'bottom', + hidden: true, + items: [ + {type: 'button', hidden: !this.options.shownavigation, id: 'firstrecord', img: 'firstrecord', hint: _('First sheet')}, + {type: 'button', hidden: !this.options.shownavigation, id: 'prevrecord', img: 'prevrecord', hint: _('Previous sheet')}, + {type: 'button', hidden: !this.options.shownavigation, id: 'nextrecord', img: 'nextrecord', hint: _('Next sheet')}, + {type: 'button', hidden: !this.options.shownavigation, id: 'lastrecord', img: 'lastrecord', hint: _('Last sheet')}, + {type: 'button', id: 'insertsheet', img: 'insertsheet', hint: _('Insert sheet')} + ], + onClick: function (e) { + that.onClick(e, e.target); + window.hideTooltip(this, e.target); + } + }); + toolbar.bind('touchstart', function(e) { + w2ui['spreadsheet-toolbar'].touchStarted = true; + var touchEvent = e.originalEvent; + if (touchEvent && touchEvent.touches.length > 1) { + L.DomEvent.preventDefault(e); + } + }); + toolbar.show(); + }, + + onClick: function(e, id, item) { + if ('spreadsheet-toolbar' in w2ui && w2ui['spreadsheet-toolbar'].get(id) !== null) { + var toolbar = w2ui['spreadsheet-toolbar']; + item = toolbar.get(id); + } + + // In the iOS app we don't want clicking on the toolbar to pop up the keyboard. + if (!window.ThisIsTheiOSApp && id !== 'zoomin' && id !== 'zoomout' && id !== 'mobile_wizard' && id !== 'insertion_mobile_wizard') { + this.map.focus(this.map.canAcceptKeyboardInput()); // Maintain same keyboard state. + } + + if (item.disabled) { + return; + } + + if (id === 'insertsheet') { + var nPos = $('#spreadsheet-tab-scroll')[0].childElementCount; + this.map.insertPage(nPos); + this.map.insertPage.scrollToEnd = true; + } + else if (id === 'firstrecord') { + $('#spreadsheet-tab-scroll').scrollLeft(0); + } + // TODO: We should get visible tab's width instead of 60px + else if (id === 'nextrecord') { + $('#spreadsheet-tab-scroll').scrollLeft($('#spreadsheet-tab-scroll').scrollLeft() + 60); + } + else if (id === 'prevrecord') { + $('#spreadsheet-tab-scroll').scrollLeft($('#spreadsheet-tab-scroll').scrollLeft() - 30); + } + else if (id === 'lastrecord') { + // Set a very high value, so that scroll is set to the maximum possible value internally. + // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft + L.DomUtil.get('spreadsheet-tab-scroll').scrollLeft = 100000; + } + }, + + onDocLayerInit: function() { + var docType = this.map.getDocType(); + if (docType == 'spreadsheet') { + if (!window.mode.isMobile()) { + $('#spreadsheet-toolbar').show(); + } + + var toolbar = w2ui['spreadsheet-toolbar']; + if (toolbar) + toolbar.resize(); + } + }, + + onUpdatePermission: function(e) { + var spreadsheetButtons = ['insertsheet']; + var toolbar = w2ui.formulabar; + + if (e.perm === 'edit') { + toolbar = w2ui['spreadsheet-toolbar']; + if (toolbar) { + spreadsheetButtons.forEach(function(id) { + toolbar.enable(id); + }); + } + } else { + toolbar = w2ui['spreadsheet-toolbar']; + if (toolbar) { + spreadsheetButtons.forEach(function(id) { + toolbar.disable(id); + }); + } + } + }, +}); + +L.control.sheetsBar = function (options) { + return new L.Control.SheetsBar(options); +}; diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js index 3f38a5958..a8f7b2204 100644 --- a/loleaflet/src/control/Control.Toolbar.js +++ b/loleaflet/src/control/Control.Toolbar.js @@ -99,10 +99,6 @@ function onClick(e, id, item) { toolbar = w2ui['actionbar']; item = toolbar.get(id); } - else if ('spreadsheet-toolbar' in w2ui && w2ui['spreadsheet-toolbar'].get(id) !== null) { - toolbar = w2ui['spreadsheet-toolbar']; - item = toolbar.get(id); - } else if ('presentation-toolbar' in w2ui && w2ui['presentation-toolbar'].get(id) !== null) { toolbar = w2ui['presentation-toolbar']; item = toolbar.get(id); @@ -178,26 +174,6 @@ function onClick(e, id, item) { callback: onDelete }); } - else if (id === 'insertsheet') { - var nPos = $('#spreadsheet-tab-scroll')[0].childElementCount; - map.insertPage(nPos); - map.insertPage.scrollToEnd = true; - } - else if (id === 'firstrecord') { - $('#spreadsheet-tab-scroll').scrollLeft(0); - } - // TODO: We should get visible tab's width instead of 60px - else if (id === 'nextrecord') { - $('#spreadsheet-tab-scroll').scrollLeft($('#spreadsheet-tab-scroll').scrollLeft() + 60); - } - else if (id === 'prevrecord') { - $('#spreadsheet-tab-scroll').scrollLeft($('#spreadsheet-tab-scroll').scrollLeft() - 30); - } - else if (id === 'lastrecord') { - // Set a very high value, so that scroll is set to the maximum possible value internally. - // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft - L.DomUtil.get('spreadsheet-tab-scroll').scrollLeft = 100000; - } else if (id === 'insertgraphic' || item.id === 'localgraphic') { L.DomUtil.get('insertgraphic').click(); } @@ -923,29 +899,6 @@ function createSigningBar() { } } -function createSpreadsheetToolbar() { - var toolbar = $('#spreadsheet-toolbar'); - toolbar.w2toolbar({ - name: 'spreadsheet-toolbar', - tooltip: 'bottom', - hidden: true, - items: [ - {type: 'button', id: 'firstrecord', img: 'firstrecord', hint: _('First sheet')}, - {type: 'button', id: 'prevrecord', img: 'prevrecord', hint: _('Previous sheet')}, - {type: 'button', id: 'nextrecord', img: 'nextrecord', hint: _('Next sheet')}, - {type: 'button', id: 'lastrecord', img: 'lastrecord', hint: _('Last sheet')}, - {type: 'button', id: 'insertsheet', img: 'insertsheet', hint: _('Insert sheet')} - ], - onClick: function (e) { - onClick(e, e.target); - hideTooltip(this, e.target); - } - }); - toolbar.bind('touchstart', function() { - w2ui['spreadsheet-toolbar'].touchStarted = true; - }); -} - function createPresentationToolbar() { var toolbar = $('#presentation-toolbar'); toolbar.w2toolbar({ @@ -975,7 +928,7 @@ function initNormalToolbar() { createMainToolbar(); map.addControl(L.control.formulaBar({showfunctionwizard: true})); createSigningBar(); - createSpreadsheetToolbar(); + map.addControl(L.control.sheetsBar({shownavigation: true})); createPresentationToolbar(); } @@ -1247,10 +1200,6 @@ function onDocLayerInit() { toolbarUp.remove('styles'); } - if (!window.mode.isMobile()) { - $('#spreadsheet-toolbar').show(); - } - break; case 'text': if (toolbarUp) @@ -1331,12 +1280,6 @@ function onDocLayerInit() { ); } - if (docType == 'spreadsheet') { - var el = w2ui['spreadsheet-toolbar']; - if (el) - el.resize(); - } - data = [6, 7, 8, 9, 10, 10.5, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 32, 36, 40, 44, 48, 54, 60, 66, 72, 80, 88, 96]; $('.fontsizes-select').select2({ @@ -1742,7 +1685,6 @@ function onUpdatePermission(e) { } } - var spreadsheetButtons = ['insertsheet']; var presentationButtons = ['insertpage', 'duplicatepage', 'deletepage']; if (e.perm === 'edit') { // Enable list boxes @@ -1750,13 +1692,6 @@ function onUpdatePermission(e) { $('.fonts-select').prop('disabled', false); $('.fontsizes-select').prop('disabled', false); - toolbar = w2ui['spreadsheet-toolbar']; - if (toolbar) { - spreadsheetButtons.forEach(function(id) { - toolbar.enable(id); - }); - } - toolbar = w2ui['presentation-toolbar']; if (toolbar) { presentationButtons.forEach(function(id) { @@ -1794,13 +1729,6 @@ function onUpdatePermission(e) { $('.fonts-select').prop('disabled', true); $('.fontsizes-select').prop('disabled', true); - toolbar = w2ui['spreadsheet-toolbar']; - if (toolbar) { - spreadsheetButtons.forEach(function(id) { - toolbar.disable(id); - }); - } - toolbar = w2ui['presentation-toolbar']; if (toolbar) { presentationButtons.forEach(function(id) { diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index f4767648f..bc4a30f3d 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -3,7 +3,7 @@ * Calc tile layer is used to display a spreadsheet document */ -/* global $ _ w2ui w2utils */ +/* global w2ui w2utils */ L.CalcTileLayer = L.TileLayer.extend({ STD_EXTRA_WIDTH: 113, /* 2mm extra for optimal width, * 0.1986cm with TeX points, @@ -75,25 +75,7 @@ L.CalcTileLayer = L.TileLayer.extend({ map.addControl(L.control.formulaBar({showfunctionwizard: false})); - var toolbar = $('#spreadsheet-toolbar'); - toolbar.w2toolbar({ - name: 'spreadsheet-toolbar', - tooltip: 'bottom', - hidden: true, - items: [{type: 'button', id: 'insertsheet', img: 'insertsheet', hint: _('Insert sheet')}], - onClick: function (e) { - window.onClick(e, e.target); - window.hideTooltip(this, e.target); - } - }); - toolbar.bind('touchstart', function(e) { - w2ui['spreadsheet-toolbar'].touchStarted = true; - var touchEvent = e.originalEvent; - if (touchEvent && touchEvent.touches.length > 1) { - L.DomEvent.preventDefault(e); - } - }); - toolbar.show(); + map.addControl(L.control.sheetsBar({shownavigation: false})); map.addControl(L.control.mobileBottomBar('spreadsheet')); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits