loleaflet/src/control/Control.JSDialogBuilder.js |   28 +++++++++++++++++++++++
 1 file changed, 28 insertions(+)

New commits:
commit 4d82903a269ca2c38ebbd913d5027f2da8d9bc37
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Thu Apr 23 12:09:56 2020 -0400
Commit:     Henry Castro <hcas...@collabora.com>
CommitDate: Tue Apr 28 15:06:06 2020 +0200

    jsdialog: add metric field handler
    
    Change-Id: I87212e56cdfa3c85ddfa56e8aa0f814290fa49d6
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92799
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Henry Castro <hcas...@collabora.com>

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js 
b/loleaflet/src/control/Control.JSDialogBuilder.js
index 96decadca..4b8138933 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -109,6 +109,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                this._controlHandlers['radiobutton'] = this._radiobuttonControl;
                this._controlHandlers['checkbox'] = this._checkboxControl;
                this._controlHandlers['spinfield'] = this._spinfieldControl;
+               this._controlHandlers['metricfield'] = this._metricfieldControl;
                this._controlHandlers['edit'] = this._editControl;
                this._controlHandlers['multilineedit'] = 
this._multiLineEditControl;
                this._controlHandlers['pushbutton'] = this._pushbuttonControl;
@@ -1172,6 +1173,33 @@ L.Control.JSDialogBuilder = L.Control.extend({
                return false;
        },
 
+       _metricfieldControl: function(parentContainer, data, builder, 
customCallback) {
+               var value;
+               var controls = 
L.Control.JSDialogBuilder.baseSpinField(parentContainer, data, builder, 
customCallback);
+
+               // It listens server state changes using GetControlState
+               // to avoid unit conversion
+               builder.map.on('commandstatechanged', function(e) {
+                       value = e.state[data.id];
+                       if (value) {
+                               value = parseFloat(value);
+                               $(controls.spinfield).attr('value', value);
+                       }
+               }, this);
+
+               controls.spinfield.addEventListener('change', function() {
+                       if (customCallback)
+                               customCallback();
+                       else
+                               builder.callback('spinfield', 'value', 
controls.container, this.value, builder);
+               });
+
+               value = parseFloat(data.value);
+               $(controls.spinfield).attr('value', value);
+
+               return false;
+       },
+
        _editControl: function(parentContainer, data, builder, callback) {
                var edit = L.DomUtil.create('input', 'ui-edit mobile-wizard', 
parentContainer);
                edit.value = builder._cleanText(data.text);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to