loleaflet/src/control/Control.JSDialogBuilder.js | 58 +++++++++++++++++++++-- 1 file changed, 54 insertions(+), 4 deletions(-)
New commits: commit afbfaeada35d0b596a23d4d9d33edeb44c20b4f2 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Sep 25 11:57:34 2019 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Sep 25 11:57:34 2019 +0200 jsdialogs: add toolitems, color item support Change-Id: I3391196eeb3cf94e31e4ae5f2bae15ad70f5470c diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js index 2d86683de..3bc5c84ea 100644 --- a/loleaflet/src/control/Control.JSDialogBuilder.js +++ b/loleaflet/src/control/Control.JSDialogBuilder.js @@ -4,7 +4,7 @@ * from the JSON description provided by the server. */ -/* global $ */ +/* global $ w2ui */ L.Control.JSDialogBuilder = L.Control.extend({ /* Handler is a function which takes three parameters: @@ -16,6 +16,7 @@ L.Control.JSDialogBuilder = L.Control.extend({ * and false otherwise */ _controlHandlers: {}, + _toolitemHandlers: {}, _currentDepth: 0, @@ -35,10 +36,28 @@ L.Control.JSDialogBuilder = L.Control.extend({ this._controlHandlers['borderwindow'] = this._containerHandler; this._controlHandlers['control'] = this._containerHandler; this._controlHandlers['scrollbar'] = this._ignoreHandler; - this._controlHandlers['toolbox'] = this._ignoreHandler; + this._controlHandlers['toolbox'] = this._containerHandler; + this._controlHandlers['toolitem'] = this._toolitemHandler; + + this._toolitemHandlers['.uno:SelectWidth'] = this._ignoreHandler; + this._toolitemHandlers['.uno:XLineColor'] = this._colorControl; + this._currentDepth = 0; }, + _toolitemHandler: function(parentContainer, data, builder) { + if (data.command) { + var handler = builder._toolitemHandlers[data.command]; + + if (handler) + handler(parentContainer, data, this); + else + console.warn('Unsupported toolitem type: \"' + data.command + '\"'); + } + + return false; + }, + _cleanText: function(text) { return text.replace('~', ''); }, @@ -182,6 +201,24 @@ L.Control.JSDialogBuilder = L.Control.extend({ return false; }, + _colorControl: function(parentContainer, data) { + var colorContainer = L.DomUtil.create('div', '', parentContainer); + + if (data.enabled == 'false') + $(colorContainer).attr('disabled', 'disabled'); + + var toolbar = $(colorContainer); + var items = [{type: 'color', id: 'color'}]; + toolbar.w2toolbar({ + name: 'colorselector', + tooltip: 'bottom', + items: items + }); + w2ui['colorselector'].set('color', {color: '#ff0033'}); + + return false; + }, + build: function(parent, data, currentIsContainer, currentIsVertival, columns) { var currentInsertPlace = parent; var currentHorizontalRow = parent; commit c0a915f77b7f9dcbdb94028de2a7291286ee49c4 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Sep 25 10:42:01 2019 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Sep 25 10:42:01 2019 +0200 jsdialogs: set spinfield value Change-Id: I4ae47734b0667b7aa32e63b6cdfafa6e6355cebd diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js index c5e498a1d..2d86683de 100644 --- a/loleaflet/src/control/Control.JSDialogBuilder.js +++ b/loleaflet/src/control/Control.JSDialogBuilder.js @@ -116,14 +116,18 @@ L.Control.JSDialogBuilder = L.Control.extend({ return false; }, - _spinfieldControl: function(parentContainer, data, builder) { + _spinfieldControl: function(parentContainer, data) { var spinfield = L.DomUtil.create('input', '', parentContainer); spinfield.type = 'number'; - spinfield.value = builder._cleanText(data.text); if (data.enabled == 'false') $(spinfield).attr('disabled', 'disabled'); + if (data.children && data.children.length) { + // TODO: units + $(spinfield).attr('value', data.children[0].text.replace('%', '')); + } + return false; }, commit b05ac95a63a302fa3e70393127ec8d33d12ea2eb Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Sep 25 10:27:15 2019 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Sep 25 10:27:15 2019 +0200 jsdialog: current selection in listbox Change-Id: I652b196787dc9323c09681c4b4101b9474633c80 diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js index 66931a071..c5e498a1d 100644 --- a/loleaflet/src/control/Control.JSDialogBuilder.js +++ b/loleaflet/src/control/Control.JSDialogBuilder.js @@ -154,9 +154,18 @@ L.Control.JSDialogBuilder = L.Control.extend({ if (data.enabled == 'false') $(listbox).attr('disabled', 'disabled'); + var selected = null; + if (parseInt(data.selectedCount) > 0) { + // TODO: multiselection listbox + selected = data.selectedEntries[0]; + } + for (var index in data.entries) { var option = L.DomUtil.create('option', '', listbox); option.innerHTML = data.entries[index]; + + if (selected == index) + $(option).attr('selected', 'selected'); } return false; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits