loleaflet/css/toolbar.css | 6 ++ loleaflet/images/lc_insertion_mobile_wizard.svg | 69 +++++++++++++++++++++++ loleaflet/src/control/Control.JSDialogBuilder.js | 66 ++++++++++++++++++++++ loleaflet/src/control/Control.Menubar.js | 51 ++++++++++++++++- loleaflet/src/control/Control.MobileWizard.js | 15 +++-- loleaflet/src/control/Control.Toolbar.js | 19 +++++- loleaflet/src/layer/tile/CalcTileLayer.js | 8 -- loleaflet/src/layer/tile/WriterTileLayer.js | 8 -- 8 files changed, 222 insertions(+), 20 deletions(-)
New commits: commit 7b469564bbe5280b2602e110513a314002c20797 Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Sat Oct 5 19:08:10 2019 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Sat Oct 5 19:08:10 2019 +0200 mobile-wizard: Update toolbar buttons by closing Change-Id: I72b276e9cf0e54522d755eea156d5044a77166e2 diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js index c71b1f51f..b98506858 100644 --- a/loleaflet/src/control/Control.MobileWizard.js +++ b/loleaflet/src/control/Control.MobileWizard.js @@ -3,7 +3,7 @@ * L.Control.MobileWizard */ -/* global $ */ +/* global $ w2ui*/ L.Control.MobileWizard = L.Control.extend({ _inMainMenu: true, @@ -70,10 +70,10 @@ L.Control.MobileWizard = L.Control.extend({ this._hideWizard(); this._currentDepth = 0; if (window.mobileWizard === true) { - this.map.sendUnoCommand('.uno:Sidebar'); - window.mobileWizard = false + w2ui['actionbar'].click('mobile_wizard') + } else if (window.insertionMobileWizard === true) { + w2ui['actionbar'].click('insertion_mobile_wizard') } - window.insertionMobileWizard = false } else { this._currentDepth--; commit ea9eb2525d23f7cb6bcae0dac8b1f3417ad01246 Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Sat Oct 5 18:47:40 2019 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Sat Oct 5 18:47:40 2019 +0200 insertion-mobile-wizard: Add a title for the main menu (e.g. "Insert") Change-Id: I498f474d731d87591e33f2db1b7c9b52b7dafa47 diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js index 5a9132ffc..c71b1f51f 100644 --- a/loleaflet/src/control/Control.MobileWizard.js +++ b/loleaflet/src/control/Control.MobileWizard.js @@ -9,6 +9,7 @@ L.Control.MobileWizard = L.Control.extend({ _inMainMenu: true, _isActive: false, _currentDepth: 0, + _mainTitle: '', onAdd: function (map) { this.map = map; @@ -80,7 +81,7 @@ L.Control.MobileWizard = L.Control.extend({ if (this._currentDepth > 0 && parent) this._setTitle(parent.get(0).title); else - this._setTitle(''); + this._setTitle(this._mainTitle); $('.ui-content.level-' + this._currentDepth + '.mobile-wizard').hide('slide', { direction: 'right' }, 'fast'); $('.ui-header.level-' + this._currentDepth + '.mobile-wizard').show('slide', { direction: 'left' }, 'fast'); @@ -106,6 +107,9 @@ L.Control.MobileWizard = L.Control.extend({ this._hideKeyboard(); L.control.jsDialogBuilder({mobileWizard: this, map: this.map}).build(this.content.get(0), [data]); + + this._mainTitle = data.text ? data.text : ''; + this._setTitle(this._mainTitle); } } }); commit 33e5e7977a49b8cf5a210415076c0d6ce2f10269 Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Sat Oct 5 17:35:48 2019 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Sat Oct 5 18:44:39 2019 +0200 insertion-mobile-wizard: Align the sub menu arrow correctly Change-Id: If0952435dc058d2cada04f4c6c5351d3c9aeaa91 diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css index 937dfb9f2..b726377ae 100644 --- a/loleaflet/css/toolbar.css +++ b/loleaflet/css/toolbar.css @@ -827,3 +827,8 @@ tr.useritem > td > img { display: table-cell; vertical-align: middle; } + +.sub-menu-arrow { + margin-right: 40px; + background: transparent; +} diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js index 3a9f4529b..f4b4e3d26 100644 --- a/loleaflet/src/control/Control.JSDialogBuilder.js +++ b/loleaflet/src/control/Control.JSDialogBuilder.js @@ -140,7 +140,16 @@ L.Control.JSDialogBuilder = L.Control.extend({ _explorableMenu: function(parentContainer, title, children, builder) { var sectionTitle = L.DomUtil.create('div', 'ui-header level-' + builder._currentDepth + ' mobile-wizard ui-widget', parentContainer); - sectionTitle.innerHTML = title; + if (builder._currentDepth === 0) { + $(sectionTitle).css('justify-content', 'space-between'); + + var titleSpan = L.DomUtil.create('span', 'sub-menu-title', sectionTitle); + titleSpan.innerHTML = title; + var arrowSpan = L.DomUtil.create('span', 'sub-menu-arrow', sectionTitle); + arrowSpan.innerHTML = '>'; + } else { + sectionTitle.innerHTML = title; + } var contentDiv = L.DomUtil.create('div', 'ui-content level-' + builder._currentDepth + ' mobile-wizard', parentContainer); contentDiv.title = title; diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js index 3d6bcb013..9df4099df 100644 --- a/loleaflet/src/control/Control.Menubar.js +++ b/loleaflet/src/control/Control.Menubar.js @@ -1197,6 +1197,9 @@ L.Control.Menubar = L.Control.extend({ _generateMenuStructure: function(item, mainMenu) { var itemText = $($(item).children()[0]).text(); + if (itemText.endsWith('›')) + itemText = itemText.substring(0, itemText.length - 1); + var children = $(item).children('ul').children('li'); var itemEnabled = true; if ($($(item).children()[0]).hasClass('disabled')) { commit ca51f56ebecef9f07a25f74fd0e96a8224d166b6 Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Sat Oct 5 17:40:51 2019 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Sat Oct 5 17:40:51 2019 +0200 mobile-wizard: Convert Insert menu to a mobile wizard like widget * Added a toolbar button to open this insertion mobile wizard. * Added a method to convert 'Insert' menu for mobile wizard code. * Added callbacks for menu types items to JSDialogBuilder. * Since the menus are not dialogs it would be good to create a separate JSMenuBuilder class for the added code. I'll do that later. Change-Id: Ie68e13ae46dde7bc36c2465785628135623436da diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css index 02f68b30e..937dfb9f2 100644 --- a/loleaflet/css/toolbar.css +++ b/loleaflet/css/toolbar.css @@ -634,6 +634,7 @@ button.leaflet-control-search-next .w2ui-icon.closetoolbar{ background: url('images/close_toolbar.svg') no-repeat center !important; } .w2ui-icon.sidebar_modify_page{ background: url('images/lc_formproperties.svg') no-repeat center !important; } .w2ui-icon.mobile_wizard{ background: url('images/lc_mobile_wizard.svg') no-repeat center !important; } +.w2ui-icon.insertion_mobile_wizard{ background: url('images/lc_insertion_mobile_wizard.svg') no-repeat center !important; } .w2ui-icon.vereign{ background: url('images/vereign.png') no-repeat center !important; } diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js index 12557dd95..3a9f4529b 100644 --- a/loleaflet/src/control/Control.JSDialogBuilder.js +++ b/loleaflet/src/control/Control.JSDialogBuilder.js @@ -44,6 +44,10 @@ L.Control.JSDialogBuilder = L.Control.extend({ this._controlHandlers['toolbox'] = this._containerHandler; this._controlHandlers['toolitem'] = this._toolitemHandler; + this._controlHandlers['mainmenu'] = this._containerHandler; + this._controlHandlers['submenu'] = this._subMenuHandler; + this._controlHandlers['menuitem'] = this._menuItemHandler; + this._toolitemHandlers['.uno:XLineColor'] = this._colorControl; this._toolitemHandlers['.uno:SelectWidth'] = this._lineWidthControl; this._toolitemHandlers['.uno:CharFontName'] = this._fontNameControl; @@ -134,6 +138,27 @@ L.Control.JSDialogBuilder = L.Control.extend({ } }, + _explorableMenu: function(parentContainer, title, children, builder) { + var sectionTitle = L.DomUtil.create('div', 'ui-header level-' + builder._currentDepth + ' mobile-wizard ui-widget', parentContainer); + sectionTitle.innerHTML = title; + + var contentDiv = L.DomUtil.create('div', 'ui-content level-' + builder._currentDepth + ' mobile-wizard', parentContainer); + contentDiv.title = title; + + builder._currentDepth++; + for (var i = 0; i < children.length; i++) { + builder.build(contentDiv, [children[i]]); + } + builder._currentDepth--; + + $(contentDiv).hide(); + if (builder.wizard) { + $(sectionTitle).click(function() { builder.wizard.goLevelDown(contentDiv); }); + } else { + console.debug('Builder used outside of mobile wizard: please implement the click handler'); + } + }, + _frameHandler: function(parentContainer, data, builder) { var title = builder._cleanText(data.children[0].text); var contentNode = data.children[1]; @@ -355,6 +380,38 @@ L.Control.JSDialogBuilder = L.Control.extend({ builder._spinfieldControl(parentContainer, data, builder); }, + _subMenuHandler: function(parentContainer, data, builder) { + var title = data.text; + builder._explorableMenu(parentContainer, title, data.children, builder); + + return false; + }, + + _menuItemHandler: function(parentContainer, data, builder) { + var title = data.text; + // separator + if (title === '') { + return false; + } + + var sectionTitle = L.DomUtil.create('div', 'ui-header level-' + builder._currentDepth + ' mobile-wizard ui-widget', parentContainer); + sectionTitle.innerHTML = title; + + if (builder.wizard) { + $(sectionTitle).click(function() { + if (data.executionType === 'action') { + builder.map.menubar._executeAction($(builder.map.menubar._getItem(data.id).children()[0])) + } else { + builder.map.sendUnoCommand(data.command) + } + }); + } else { + console.debug('Builder used outside of mobile wizard: please implement the click handler'); + } + + return false; + }, + _fontNameControl: function(parentContainer, data, builder) { data.entries = [ 'Liberation Sans' ]; builder._comboboxControl(parentContainer, data, builder); diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js index 2e2250f99..3d6bcb013 100644 --- a/loleaflet/src/control/Control.Menubar.js +++ b/loleaflet/src/control/Control.Menubar.js @@ -77,7 +77,7 @@ L.Control.Menubar = L.Control.extend({ {id: 'mobile-wizard', type: 'action', name: _('Mobile Wizard'), mobile: true, desktop: false} ] }, - {name: _UNO('.uno:InsertMenu', 'text'), type: 'menu', menu: [ + {name: _UNO('.uno:InsertMenu', 'text'), id: 'insert', type: 'menu', menu: [ {name: _('Local Image...'), id: 'insertgraphic', type: 'action'}, {name: _UNO('.uno:InsertGraphic', 'text'), id: 'insertgraphicremote', type: 'action'}, {name: _UNO('.uno:InsertAnnotation', 'text'), id: 'insertcomment', type: 'action'}, @@ -382,7 +382,7 @@ L.Control.Menubar = L.Control.extend({ {uno: '.uno:Sidebar'}, {id: 'mobile-wizard', type: 'action', name: _('Mobile Wizard'), mobile: true, desktop: false} ]}, - {name: _UNO('.uno:InsertMenu', 'spreadsheet'), type: 'menu', menu: [ + {name: _UNO('.uno:InsertMenu', 'spreadsheet'), id: 'insert', type: 'menu', menu: [ {name: _('Local Image...'), id: 'insertgraphic', type: 'action'}, {name: _UNO('.uno:InsertGraphic', 'spreadsheet'), id: 'insertgraphicremote', type: 'action'}, {uno: '.uno:InsertObjectChart'}, @@ -1183,6 +1183,50 @@ L.Control.Menubar = L.Control.extend({ for (var i in menuHtml) { this._menubarCont.appendChild(menuHtml[i]); } + }, + + generateMenuStructureFor: function(targetId) { + var item = this._getItem(targetId); + if (item === null) { + return ''; + } + + var menuStructure = this._generateMenuStructure(item, true) + return menuStructure + }, + + _generateMenuStructure: function(item, mainMenu) { + var itemText = $($(item).children()[0]).text(); + var children = $(item).children('ul').children('li'); + var itemEnabled = true; + if ($($(item).children()[0]).hasClass('disabled')) { + itemEnabled = false; + } + var itemType = 'submenu'; + if (mainMenu) { + itemType = 'mainmenu'; + } else if (!children.length) { + itemType = 'menuitem'; + } + var itemID = $(item).attr('id'); + if (itemID && itemID.length > 5) { + itemID = itemID.substring(5); + } + + var menuStructure = { + id : itemID, + type : itemType, + enabled : itemEnabled, + text : itemText, + command : $($(item).children()[0]).data('uno'), + executionType : $($(item).children()[0]).data('type'), + children : [] + }; + + for (var i = 0; i < children.length; i++) { + menuStructure['children'].push(this._generateMenuStructure(children[i], false)); + } + return menuStructure; } }); diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js index 382868854..5a9132ffc 100644 --- a/loleaflet/src/control/Control.MobileWizard.js +++ b/loleaflet/src/control/Control.MobileWizard.js @@ -68,8 +68,11 @@ L.Control.MobileWizard = L.Control.extend({ if (this._inMainMenu) { this._hideWizard(); this._currentDepth = 0; - window.mobileWizard = false - this.map.sendUnoCommand('.uno:Sidebar'); + if (window.mobileWizard === true) { + this.map.sendUnoCommand('.uno:Sidebar'); + window.mobileWizard = false + } + window.insertionMobileWizard = false } else { this._currentDepth--; diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js index 3e6a970cb..f0656b0dc 100644 --- a/loleaflet/src/control/Control.Toolbar.js +++ b/loleaflet/src/control/Control.Toolbar.js @@ -122,7 +122,7 @@ function onClick(e, id, item, subItem) { } var docLayer = map._docLayer; // 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') { + if (!window.ThisIsTheiOSApp && id !== 'zoomin' && id !== 'zoomout' && id !== 'mobile_wizard' && id !== 'insertion_mobile_wizard') { map.focus(); } if (item.disabled) { @@ -321,10 +321,25 @@ function onClick(e, id, item, subItem) { window.mobileWizard = false map.sendUnoCommand('.uno:Sidebar'); map.fire('closemobilewizard'); + toolbar.uncheck(id); } else { window.mobileWizard = true map.sendUnoCommand('.uno:Sidebar'); + toolbar.check(id); + } + } + else if (id === 'insertion_mobile_wizard') { + if (window.insertionMobileWizard === true) { + window.insertionMobileWizard = false + map.fire('closemobilewizard'); + toolbar.uncheck(id); + } + else { + window.insertionMobileWizard = true + var menuData = map.menubar.generateMenuStructureFor('insert'); + map.fire('mobilewizard', menuData); + toolbar.check(id); } } else { @@ -2018,7 +2033,7 @@ function onUpdatePermission(e) { var spreadsheetButtons = ['insertsheet']; var formulaBarButtons = ['functiondialog', 'sum', 'function']; var presentationButtons = ['insertpage', 'duplicatepage', 'deletepage']; - var toolbarDownButtons = ['next', 'prev', 'mobile_wizard']; + var toolbarDownButtons = ['next', 'prev', 'mobile_wizard', 'insertion_mobile_wizard']; if (e.perm === 'edit') { // Enable list boxes $('.styles-select').prop('disabled', false); diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index 607af9f6f..71ce0ded2 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -110,7 +110,8 @@ L.CalcTileLayer = L.TileLayer.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', id: 'mobile_wizard', img: 'mobile_wizard', name: _('Mobile Wizard'), disabled: true}, + {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: 'fullscreen', img: 'fullscreen', hint: _UNO('.uno:FullScreen', 'text')}, {type: 'drop', id: 'userlist', img: 'users', html: '<div id="userlist_container"><table id="userlist_table"><tbody></tbody></table>' + '<hr><table class="loleaflet-font" id="editor-btn">' + @@ -140,11 +141,6 @@ L.CalcTileLayer = L.TileLayer.extend({ map.on('addview', window.onAddView); map.on('removeview', window.onRemoveView); } - if (window.mobileWizard === true) { - this.check('mobile_wizard'); - } else { - this.uncheck('mobile_wizard'); - } } }); toolbar.bind('touchstart', function(e) { diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js index cf3ec15fd..3737747e2 100644 --- a/loleaflet/src/layer/tile/WriterTileLayer.js +++ b/loleaflet/src/layer/tile/WriterTileLayer.js @@ -101,7 +101,8 @@ L.WriterTileLayer = L.TileLayer.extend({ {type: 'button', id: 'next', img: 'next', hint: _UNO('.uno:PageDown', 'text')}, {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', id: 'mobile_wizard', img: 'mobile_wizard', name: _('Mobile Wizard'), disabled: true}, + {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: 'fullscreen', img: 'fullscreen', hint: _UNO('.uno:FullScreen', 'text')}, {type: 'drop', id: 'userlist', img: 'users', html: '<div id="userlist_container"><table id="userlist_table"><tbody></tbody></table>' + '<hr><table class="loleaflet-font" id="editor-btn">' + @@ -131,11 +132,6 @@ L.WriterTileLayer = L.TileLayer.extend({ map.on('addview', window.onAddView); map.on('removeview', window.onRemoveView); } - if (window.mobileWizard === true) { - this.check('mobile_wizard'); - } else { - this.uncheck('mobile_wizard'); - } } }); toolbar.bind('touchstart', function(e) { commit f164ac194f046b68ab12a4084a988ae67f19f5e8 Author: Pedro <pedro.si...@collabora.com> AuthorDate: Fri Oct 4 17:57:50 2019 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Sat Oct 5 17:39:59 2019 +0200 Mobile wizard: add icon for insertion toolbar button. Change-Id: Iaaaa437fc7bf304f7bf473bb6d77c3f969a31f85 diff --git a/loleaflet/images/lc_insertion_mobile_wizard.svg b/loleaflet/images/lc_insertion_mobile_wizard.svg new file mode 100644 index 000000000..fae43963d --- /dev/null +++ b/loleaflet/images/lc_insertion_mobile_wizard.svg @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg4" + version="1.1" + viewBox="0 0 24 24" + sodipodi:docname="lc_addelement_AMX_mobile.svg" + inkscape:version="0.92.4 (unknown)"> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1017" + id="namedview6" + showgrid="false" + inkscape:snap-bbox="true" + inkscape:snap-nodes="false" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:zoom="13.906433" + inkscape:cx="2.151365" + inkscape:cy="11.383869" + inkscape:window-x="0" + inkscape:window-y="30" + inkscape:window-maximized="1" + inkscape:current-layer="svg4" /> + <metadata + id="metadata10"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs8" /> + <g + id="g878" + transform="matrix(0.85826837,0,0,0.85826837,2.3943405,1.4015591)" + style="stroke-width:1.16513681"> + <path + inkscape:connector-curvature="0" + id="path1595" + d="m 15.512612,0.6972654 c -0.3189,0 -0.64985,0.0486749 -0.96875,0.1835937 l -3.111329,1.2871094 a 8.5630703,8.5630703 0 0 1 2.986329,6.4921875 8.5630703,8.5630703 0 0 1 -6.4511725,8.292969 l 2.2949225,5.539062 c 0.380226,0.932169 1.287439,1.495547 2.24414,1.507813 0.3189,0 0.638679,-0.06094 0.945313,-0.183594 l 9.027343,-3.740234 c 1.251069,-0.515145 1.851085,-1.950649 1.335938,-3.189453 L 17.733315,2.2050779 C 17.353088,1.285174 16.457046,0.7217962 15.512612,0.6972654 Z M -0.04207611,14.855469 -1.4385605,18.224609 c -0.5028808,1.251069 0.099087,2.686026 1.33789069,3.201172 L 1.5419083,22.111328 V 16.046875 A 8.5630703,8.5630703 0 0 1 -0.04207611,14.855469 Z M 4.006752,17.015625 v 4.53125 C 4.006752,22.896067 5.1106846,24 6.459877,24 h 1.7792969 l -2.8125,-6.796875 a 8.5630703,8.5630703 0 0 1 -1.4199219,-0.1875 z" + style="fill:#555555;fill-opacity:1;stroke-width:1.16513669" /> + <path + inkscape:connector-curvature="0" + d="M 11.355452,9.4466509 H 6.641177 V 14.16095 H 5.0697281 V 9.4466509 H 0.35545339 V 7.875226 H 5.0697281 V 3.1609393 H 6.641177 V 7.875226 h 4.714275 z" + id="path1603" + style="fill:#555555;fill-opacity:1;stroke-width:1.16513681" /> + </g> +</svg> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits