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

Michael Meeks (via logerrit) logerrit at kemper.freedesktop.org
Thu Mar 26 18:35:42 UTC 2020


 loleaflet/src/control/Control.MobileWizard.js |   29 +---------------
 loleaflet/src/control/Control.Toolbar.js      |   46 ++++++++++++++------------
 loleaflet/src/core/LOUtil.js                  |   24 +++++++++++++
 3 files changed, 53 insertions(+), 46 deletions(-)

New commits:
commit 5766ed7706a30c75fd9876f1d90d50854f407a9f
Author:     Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Thu Mar 26 12:58:48 2020 +0000
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Mar 26 19:35:37 2020 +0100

    Re-factor JSON node searching into LOUtil.
    
    Change-Id: Ib6e42371441b15999cad35262c07aa1e9b38c429
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91099
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js
index 2df267c54..ca8486600 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -362,13 +362,12 @@ L.Control.MobileWizard = L.Control.extend({
 	},
 
 	_modifySidebarLayout: function (data) {
-		var deck = this._findItemByTypeRecursive(data, 'deck');
+		var deck = L.LOUtil.findItemWithAttributeRecursive(data, 'type', 'deck');
 		if (deck)
 		{
 			// merge styles into text-panel for elegance
-			var stylesIdx = this._findIdxInParentById(deck, 'StylesPropertyPanel');
-			var textName = 'TextPropertyPanel';
-			var textIdx = this._findIdxInParentById(deck, textName);
+			var stylesIdx = L.LOUtil.findIndexInParentByAttribute(deck, 'id', 'StylesPropertyPanel');
+			var textIdx = L.LOUtil.findIndexInParentByAttribute(deck, 'id', 'TextPropertyPanel');
 
 			if (stylesIdx >= 0 && this.map.getDocType() === 'spreadsheet')
 			{       // remove rather useless calc styles panel
@@ -392,28 +391,6 @@ L.Control.MobileWizard = L.Control.extend({
 		}
 	},
 
-	_findItemByTypeRecursive: function(data, t) {
-		var found = null;
-		if (data.type === t)
-			return data;
-		if (data.children)
-		{
-			for (var i = 0; !found && i < data.children.length; i++)
-				found = this._findItemByTypeRecursive(data.children[i], t);
-		}
-		return found;
-	},
-
-	_findIdxInParentById: function(data, id) {
-		if (data.children)
-		{
-			for (var i = 0; i < data.children.length; i++)
-				if (data.children[i].id === id)
-					return i;
-		}
-		return -1;
-	},
-
 	_removeItems: function (data, items) {
 		if (data.children) {
 			for (var i = 0; i < data.children.length;) {
diff --git a/loleaflet/src/core/LOUtil.js b/loleaflet/src/core/LOUtil.js
index d9cf252c9..d66090d71 100644
--- a/loleaflet/src/core/LOUtil.js
+++ b/loleaflet/src/core/LOUtil.js
@@ -103,6 +103,30 @@ L.LOUtil = {
 		if (commandName.indexOf('?')!== -1)
 			return false;
 		return res;
+	},
+
+	/// Searching in JSON trees for data with a given field
+	findItemWithAttributeRecursive: function(node, idName, idValue) {
+		var found = null;
+		if (node[idName] === idValue)
+			return node;
+		if (node.children)
+		{
+			for (var i = 0; !found && i < node.children.length; i++)
+				found = L.LOUtil.findItemWithAttributeRecursive(node.children[i], idName, idValue);
+		}
+		return found;
+	},
+
+	/// Searching in JSON trees for an identifier and return the index in parent
+	findIndexInParentByAttribute: function(node, idName, idValue) {
+		if (node.children)
+		{
+			for (var i = 0; i < node.children.length; i++)
+				if (node.children[i][idName] === idValue)
+					return i;
+		}
+		return -1;
 	}
 };
 
commit 877e4fd5873f5344f6367fbbbfbc60c3f9dde465
Author:     Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Thu Mar 26 12:45:11 2020 +0000
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Mar 26 19:35:24 2020 +0100

    Allow optional color to be passed into setBorders.
    
    Change-Id: I8a5cc57bda07d1c0671262c22b93d012f2018eb0
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91098
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index 4a115f5e2..6ac3cbd26 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -376,15 +376,15 @@ function onClick(e, id, item, subItem) {
 	}
 }
 
-function setBorders(left, right, bottom, top, horiz, vert) {
+function _setBorders(left, right, bottom, top, horiz, vert, color) {
 	var params = {
 		OuterBorder: {
 			type : '[]any',
 			value : [
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : left }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : right }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : bottom }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : top }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : left }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : right }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : bottom }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : top }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
 				{ type : 'long', value : 0 },
 				{ type : 'long', value : 0 },
 				{ type : 'long', value : 0 },
@@ -395,8 +395,8 @@ function setBorders(left, right, bottom, top, horiz, vert) {
 		InnerBorder: {
 			type : '[]any',
 			value : [
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : horiz }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
-				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : vert }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : horiz }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+				{ type : 'com.sun.star.table.BorderLine2', value : { Color : { type : 'com.sun.star.util.Color', value : color }, InnerLineWidth : { type : 'short', value : 0 }, OuterLineWidth : { type : 'short', value : vert }, LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
 				{ type : 'short', value : 0 },
 				{ type : 'short', value : 127 },
 				{ type : 'long', value : 0 }
@@ -413,24 +413,30 @@ function closePopup() {
 	map.focus();
 }
 
-function setBorderStyle(num) {
+function setBorderStyle(num, color) {
+	if (color === undefined)
+		color = 0; // black
+
+	if (color.startsWith('#'))
+		color = parseInt('0x' + color.substring(1, color.length));
+
 	switch (num) {
 	case 0: map.sendUnoCommand('.uno:FormatCellBorders'); break;
 
-	case 1: setBorders(0, 0, 0, 0, 0, 0); break;
-	case 2: setBorders(1, 0, 0, 0, 0, 0); break;
-	case 3: setBorders(0, 1, 0, 0, 0, 0); break;
-	case 4: setBorders(1, 1, 0, 0, 0, 0); break;
+	case 1: _setBorders(0, 0, 0, 0, 0, 0, color); break;
+	case 2: _setBorders(1, 0, 0, 0, 0, 0, color); break;
+	case 3: _setBorders(0, 1, 0, 0, 0, 0, color); break;
+	case 4: _setBorders(1, 1, 0, 0, 0, 0, color); break;
 
-	case 5: setBorders(0, 0, 0, 1, 0, 0); break;
-	case 6: setBorders(0, 0, 1, 0, 0, 0); break;
-	case 7: setBorders(0, 0, 1, 1, 0, 0); break;
-	case 8: setBorders(1, 1, 1, 1, 0, 0); break;
+	case 5: _setBorders(0, 0, 0, 1, 0, 0, color); break;
+	case 6: _setBorders(0, 0, 1, 0, 0, 0, color); break;
+	case 7: _setBorders(0, 0, 1, 1, 0, 0, color); break;
+	case 8: _setBorders(1, 1, 1, 1, 0, 0, color); break;
 
-	case 9: setBorders(0, 0, 1, 1, 1, 0); break;
-	case 10: setBorders(1, 1, 1, 1, 1, 0); break;
-	case 11: setBorders(1, 1, 1, 1, 0, 1); break;
-	case 12: setBorders(1, 1, 1, 1, 1, 1); break;
+	case 9:  _setBorders(0, 0, 1, 1, 1, 0, color); break;
+	case 10: _setBorders(1, 1, 1, 1, 1, 0, color); break;
+	case 11: _setBorders(1, 1, 1, 1, 0, 1, color); break;
+	case 12: _setBorders(1, 1, 1, 1, 1, 1, color); break;
 
 	default: console.log('ignored border: ' + num);
 	}


More information about the Libreoffice-commits mailing list