[Libreoffice-commits] online.git: loleaflet/src

mert (via logerrit) logerrit at kemper.freedesktop.org
Thu Apr 23 17:35:24 UTC 2020


 loleaflet/src/control/Control.JSDialogBuilder.js |   89 +++++++++++------------
 loleaflet/src/control/Control.MobileWizard.js    |   23 ++++-
 2 files changed, 62 insertions(+), 50 deletions(-)

New commits:
commit d9cbd9d6f673dc70bcaa873a51dd30a9e4f5be4e
Author:     mert <mert.tumer at collabora.com>
AuthorDate: Thu Apr 23 14:56:26 2020 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Thu Apr 23 19:35:06 2020 +0200

    mobilewizard: fix number format doesn't update properly
    
    Change-Id: I852dd79d9658f676e86b22cb1cb145264c9de2fe
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92762
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js
index 4deb8e296..97f416d25 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -252,33 +252,20 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		return false;
 	},
 
-	_updateListBox: function(builder, contentDiv, contentNode, sectionTitle, data, state) {
-		if ($(sectionTitle).find('.entry-value')[0])
-			sectionTitle = $($(sectionTitle).find('.entry-value')).get(0);
-		else
-			sectionTitle = $(sectionTitle).find('.ui-header-left').find('span')[0];
-
+	_updateListBox: function(builder, sectionTitle, data, state) {
 		if (!sectionTitle)
 			return;
 
-		$(contentDiv).find('.selected').removeClass('selected');
-
-		var hasChildren = $(contentDiv).children().length > 0 && contentNode.children && contentNode.children.length > 0;
 		var updateBy = builder._getListBoxUpdateType(data.id);
-		if (updateBy === 'index') {
+
+		if (updateBy === 'index')
 			sectionTitle.innerHTML = data.entries[state];
-			data.selectedEntries[0] = state;
-			contentDiv.title = data.entries[state];
-			if (hasChildren) {
-				$($(contentDiv).children().get(state)).addClass('selected');
-			}
-		} else if (updateBy === 'value') {
+		else if (updateBy === 'value')
 			sectionTitle.innerHTML = state;
-			if (hasChildren) {
-				$(contentDiv).find('p').filter(function() {
-					return $(this).text() === state;
-				}).addClass('selected');
-			}
+
+		if (builder.refreshSidebar) {
+			builder.wizard._refreshSidebar(0);
+			builder.refreshSidebar = false;
 		}
 	},
 
@@ -301,6 +288,13 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		}
 		var titleSpan = L.DomUtil.create('span', titleClass, leftDiv);
 
+		if (!valueNode && data.command) {
+			var items = builder.map['stateChangeHandler'];
+			var val = items.getItemValue(data.command);
+			if (val)
+				valueNode = L.DomUtil.create('div', '', null);
+		}
+
 		var rightDiv = L.DomUtil.create('div', 'ui-header-right', sectionTitle);
 		if (valueNode) {
 			var valueDiv = L.DomUtil.create('div', 'entry-value', rightDiv);
@@ -310,36 +304,14 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		var arrowSpan = L.DomUtil.create('span', 'sub-menu-arrow', rightDiv);
 		arrowSpan.innerHTML = '>';
 
-		var contentDiv = L.DomUtil.create('div', 'ui-content level-' + builder._currentDepth + ' mobile-wizard', parentContainer);
-		contentDiv.title = data.text;
-
-		builder._currentDepth++;
-		builder.build(contentDiv, [contentNode]);
-		builder._currentDepth--;
-
-		if (!data.nosubmenu)
-		{
-			$(contentDiv).hide();
-			if (builder.wizard) {
-				$(sectionTitle).click(function(event, data) {
-					builder.wizard.goLevelDown(contentDiv, data);
-					if (contentNode.onshow)
-						contentNode.onshow();
-				});
-			} else {
-				console.debug('Builder used outside of mobile wizard: please implement the click handler');
-			}
-		}
-		else
-			$(sectionTitle).hide();
-
 		var updateFunction = function(titleSpan) {
 			var state = null;
 			if (data.id)
 				state = builder._getUnoStateForItemId(data.id, builder);
 
-			if (builder._getListBoxUpdateType(data.id)) {
-				builder._updateListBox(builder, contentDiv, contentNode, sectionTitle, data, state);
+			if (state && builder._getListBoxUpdateType(data.id)) {
+				titleSpan.innerHTML = data.text;
+				builder._updateListBox(builder, valueNode?valueDiv:titleSpan, data, state);
 			} else if (state) {
 				titleSpan.innerHTML = state;
 			} else {
@@ -359,6 +331,29 @@ L.Control.JSDialogBuilder = L.Control.extend({
 			}
 
 		}, this);
+
+		var contentDiv = L.DomUtil.create('div', 'ui-content level-' + builder._currentDepth + ' mobile-wizard', parentContainer);
+		contentDiv.title = data.text;
+
+		builder._currentDepth++;
+		builder.build(contentDiv, [contentNode]);
+		builder._currentDepth--;
+
+		if (!data.nosubmenu)
+		{
+			$(contentDiv).hide();
+			if (builder.wizard) {
+				$(sectionTitle).click(function(event, data) {
+					builder.wizard.goLevelDown(contentDiv, data);
+					if (contentNode.onshow)
+						contentNode.onshow();
+				});
+			} else {
+				console.debug('Builder used outside of mobile wizard: please implement the click handler');
+			}
+		}
+		else
+			$(sectionTitle).hide();
 	},
 
 	_calcFunctionEntry: function(parentContainer, data, contentNode, builder) {
@@ -1244,6 +1239,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 			L.DomUtil.addClass(fixedtext, data.style);
 
 		$(fixedtext).click(function () {
+			builder.refreshSidebar = true;
 			builder.callback('combobox', 'selected', fixedtext.parent, data.pos + ';' + fixedtext.innerHTML, builder);
 		});
 	},
@@ -1349,6 +1345,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		}
 
 		$(div).click(function () {
+			builder.refreshSidebar = true;
 			builder.callback('toolbutton', 'click', button, data.command, builder);
 		});
 
diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js
index c45f25753..4de1cd537 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -266,21 +266,36 @@ L.Control.MobileWizard = L.Control.extend({
 		if (this._tabs && path && path.length)
 			this._selectTab(path[0]);
 
+		var _path = [];
+		var goBack = false;
+
 		for (var index in path) {
-			$('[title=\'' + path[index] + '\'').prev().trigger('click', {animate: false});
+			var elem = $('[title=\'' + path[index] + '\'').prev();
+			if (elem.length) {
+				$(elem).trigger('click', {animate: false});
+				_path.push(path[index]);
+			}
+			else
+				goBack = true;
+		}
+
+		if (goBack) {
+			this._currentScrollPosition = 0;
+			$('#mobile-wizard-content').animate({ scrollTop: 0 }, 0);
 		}
 
-		this._currentPath = path;
+		this._currentPath = _path;
 	},
 
-	_refreshSidebar: function() {
+	_refreshSidebar: function(ms) {
+		ms = ms !== undefined ? ms : 400;
 		var map = this.map;
 		setTimeout(function () {
 			var message = 'dialogevent ' +
 			    (window.sidebarId !== undefined ? window.sidebarId : -1) +
 			    ' {\"id\":\"-1\"}';
 			map._socket.sendMessage(message);
-		}, 400);
+		}, ms);
 	},
 
 	_updateMapSize: function() {


More information about the Libreoffice-commits mailing list