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

Reply via email to