loleaflet/src/control/Control.JSDialogBuilder.js |   76 ++++++++++++++++-------
 1 file changed, 56 insertions(+), 20 deletions(-)

New commits:
commit 792c54aac181b3f48de82eb8fcf77527b9224467
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Nov 27 12:48:07 2019 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Wed Nov 27 15:13:12 2019 +0100

    jsdialog: extend colorControl updates, added colorlistbox type
    
    Change-Id: Ib92d8b3fe1f6de51842d7967163622226b481b2c

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js 
b/loleaflet/src/control/Control.JSDialogBuilder.js
index b1b442aa4..8b6420362 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -53,6 +53,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                this._controlHandlers['toolitem'] = this._toolitemHandler;
                this._controlHandlers['colorsample'] = this._colorSampleControl;
                this._controlHandlers['divcontainer'] = 
this._divContainerHandler;
+               this._controlHandlers['colorlistbox'] = this._colorControl;
 
                this._controlHandlers['mainmenu'] = this._containerHandler;
                this._controlHandlers['submenu'] = this._subMenuHandler;
@@ -204,7 +205,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                return true;
        },
 
-       _explorableEntry: function(parentContainer, data, contentNode, builder, 
valueNode, iconPath) {
+       _explorableEntry: function(parentContainer, data, contentNode, builder, 
valueNode, iconPath, updateCallback) {
                var sectionTitle = L.DomUtil.create('div', 'ui-header level-' + 
builder._currentDepth + ' mobile-wizard ui-widget', parentContainer);
                $(sectionTitle).css('justify-content', 'space-between');
                if (data && data.id)
@@ -228,7 +229,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                var arrowSpan = L.DomUtil.create('span', 'sub-menu-arrow', 
rightDiv);
                arrowSpan.innerHTML = '>';
 
-               var updateFunction = function() {
+               var updateFunction = function(titleSpan) {
                        var state = null;
                        if (data.id)
                                state = builder._getUnoStateForItemId(data.id, 
builder);
@@ -240,11 +241,14 @@ L.Control.JSDialogBuilder = L.Control.extend({
                        }
                }
 
-               updateFunction();
+               updateCallback ? updateCallback(titleSpan) : 
updateFunction(titleSpan);
 
                builder.map.on('commandstatechanged', function(e) {
                        if (e.commandName === data.command || e.commandName === 
builder._mapWindowIdToUnoCommand(data.id))
-                               updateFunction();
+                               if (updateCallback)
+                                       updateCallback(titleSpan);
+                               else
+                                       updateFunction(titleSpan);
                }, this);
 
                var contentDiv = L.DomUtil.create('div', 'ui-content level-' + 
builder._currentDepth + ' mobile-wizard', parentContainer);
@@ -506,17 +510,11 @@ L.Control.JSDialogBuilder = L.Control.extend({
        _mapWindowIdToUnoCommand: function(id) {
                switch (id) {
                case 'beforetextindent':
-                       return '.uno:LeftRightParaMargin';
-
                case 'aftertextindent':
-                       return '.uno:LeftRightParaMargin';
-
                case 'firstlineindent':
                        return '.uno:LeftRightParaMargin';
 
                case 'aboveparaspacing':
-                       return '.uno:ULSpacing';
-
                case 'belowparaspacing':
                        return '.uno:ULSpacing';
 
@@ -527,14 +525,8 @@ L.Control.JSDialogBuilder = L.Control.extend({
                        return '.uno:TableColumWidth';
 
                case 'decimalplaces':
-                       return '.uno:NumberFormat';
-
                case 'leadingzeros':
-                       return '.uno:NumberFormat';
-
                case 'negativenumbersred':
-                       return '.uno:NumberFormat';
-
                case 'thousandseparator':
                        return '.uno:NumberFormat';
 
@@ -548,6 +540,8 @@ L.Control.JSDialogBuilder = L.Control.extend({
                        return '.uno:FillShadowTransparency';
 
                case 'gradientstyle':
+               case 'fillgrad1':
+               case 'fillgrad2':
                        return '.uno:FillGradient';
                }
 
@@ -703,6 +697,33 @@ L.Control.JSDialogBuilder = L.Control.extend({
                                return state.angle;
                        }
                        break;
+
+               case 'fillgrad1':
+                       state = items.getItemValue('.uno:FillGradient');
+                       if (state) {
+                               return state.startcolor;
+                       }
+                       break;
+
+               case 'fillgrad2':
+                       state = items.getItemValue('.uno:FillGradient');
+                       if (state) {
+                               return state.endcolor;
+                       }
+                       break;
+               }
+
+               return null;
+       },
+
+       _getTitleForControlWithId: function(id) {
+               switch (id) {
+
+               case 'fillgrad1':
+                       return _('From');
+
+               case 'fillgrad2':
+                       return _('To');
                }
 
                return null;
@@ -1069,6 +1090,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                var selectedColor = 
parseInt(builder.map['stateChangeHandler'].getItemValue(data.command));
 
                if (!selectedColor || selectedColor < 0)
+                       selectedColor = builder._getUnoStateForItemId(data.id, 
builder);
+
+               if (!selectedColor || selectedColor < 0)
                        selectedColor = 
builder._getDefaultColorForCommand(data.command);
 
                selectedColor = selectedColor.toString(16);
@@ -1084,12 +1108,24 @@ L.Control.JSDialogBuilder = L.Control.extend({
        },
 
        _colorControl: function(parentContainer, data, builder) {
-               data.text = builder._cleanText(data.text);
+               var titleOverride = builder._getTitleForControlWithId(data.id);
+               if (titleOverride)
+                       data.text = titleOverride;
+               console.warn(data.text);
 
-               var selectedColor = builder._getCurrentColor(data, builder);
+               data.text = builder._cleanText(data.text);
 
                var valueNode =  L.DomUtil.create('div', 
'color-sample-selected', null);
-               valueNode.style.backgroundColor = selectedColor;
+               var selectedColor = null;
+
+               var updateFunction = function (titleSpan) {
+                       selectedColor = builder._getCurrentColor(data, builder);
+                       valueNode.style.backgroundColor = selectedColor;
+                       if (titleSpan)
+                               titleSpan.innerHTML = data.text;
+               }.bind(this);
+
+               updateFunction(null);
 
                var iconPath = builder._createIconPath(data.command);
                var noColorControl = (data.command !== '.uno:FontColor' && 
data.command !== '.uno:Color');
@@ -1113,7 +1149,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 
                var contentNode = {type: 'container', children: 
[colorsContainer], onshow: L.bind(colorPickerControl.onShow, 
colorPickerControl)};
 
-               builder._explorableEntry(parentContainer, data, contentNode, 
builder, valueNode, iconPath);
+               builder._explorableEntry(parentContainer, data, contentNode, 
builder, valueNode, iconPath, updateFunction);
                return false;
        },
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to