[Libreoffice-commits] online.git: loleaflet/src
Szymon Kłos (via logerrit)
logerrit at kemper.freedesktop.org
Wed Oct 2 12:14:14 UTC 2019
loleaflet/src/control/Control.JSDialogBuilder.js | 27 ++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
New commits:
commit e29e4c6531b25187664e13757e937550df2a511d
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Oct 2 13:52:04 2019 +0200
Commit: Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Wed Oct 2 14:13:56 2019 +0200
jsdialog: add change listener for controls
Change-Id: Iaee867baee86addf03b027d40e61bb4393b4d0c9
Reviewed-on: https://gerrit.libreoffice.org/80031
Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
Tested-by: Szymon Kłos <szymon.klos at collabora.com>
diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js
index 0fec449a4..c00b1ce59 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -20,7 +20,11 @@ L.Control.JSDialogBuilder = L.Control.extend({
_currentDepth: 0,
- _setup: function() {
+ _setup: function(options) {
+ this.wizard = options.mobileWizard;
+ this.map = options.map;
+ this.callback = options.callback ? options.callback : this._defaultCallbackHandler;
+
this._controlHandlers['radiobutton'] = this._radiobuttonControl;
this._controlHandlers['checkbox'] = this._checkboxControl;
this._controlHandlers['spinfield'] = this._spinfieldControl;
@@ -61,6 +65,16 @@ L.Control.JSDialogBuilder = L.Control.extend({
return false;
},
+ // by default send new state to the core
+ _defaultCallbackHandler: function(objectType, eventType, object, data, builder) {
+ console.debug('control: \'' + objectType + '\' event: \'' + eventType + '\' state: \'' + data + '\'');
+
+ if (objectType == 'toolbutton' && eventType == 'click') {
+ console.log(builder);
+ builder.map.sendUnoCommand(data);
+ }
+ },
+
_cleanText: function(text) {
return text.replace('~', '');
},
@@ -200,6 +214,10 @@ L.Control.JSDialogBuilder = L.Control.extend({
if (data.checked == 'true')
$(checkbox).attr('checked', 'checked');
+ checkbox.addEventListener('change', function() {
+ builder.callback('checkbox', 'change', checkbox, this.checked, builder);
+ });
+
return false;
},
@@ -282,8 +300,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
button = L.DomUtil.create('button', '', parentContainer);
button.innerHTML = builder._cleanText(data.text);
}
+
$(button).click(function () {
- builder.map.sendUnoCommand(data.command);
+ builder.callback('toolbutton', 'click', button, data.command, builder);
});
if (data.enabled == 'false')
@@ -368,8 +387,6 @@ L.Control.JSDialogBuilder = L.Control.extend({
L.control.jsDialogBuilder = function (options) {
var builder = new L.Control.JSDialogBuilder(options);
- builder._setup();
- builder.wizard = options.mobileWizard;
- builder.map = options.map;
+ builder._setup(options);
return builder;
};
More information about the Libreoffice-commits
mailing list