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

Dennis Francis (via logerrit) logerrit at kemper.freedesktop.org
Sun Jul 5 07:56:26 UTC 2020


 loleaflet/src/layer/tile/CalcTileLayer.js |   44 ++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

New commits:
commit 13b6b8506f005f3e848c7d16c8047698b768d055
Author:     Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Tue May 12 10:52:50 2020 +0530
Commit:     Dennis Francis <dennis.francis at collabora.com>
CommitDate: Sun Jul 5 09:56:07 2020 +0200

    introduce .uno:SheetGeometryData requester/handler
    
    Change-Id: Iaeef462346f22996daddb583c459a5f67aa6c290
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97941
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Dennis Francis <dennis.francis at collabora.com>

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js
index b0773251d..b3b7c7037 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -497,6 +497,42 @@ L.CalcTileLayer = L.TileLayer.extend({
 		this._map._socket.sendMessage(payload);
 	},
 
+	// sends the .uno:SheetGeometryData command optionally with arguments.
+	requestSheetGeomtryData: function (flags) {
+		var unoCmd = '.uno:SheetGeometryData';
+		var haveArgs = (typeof flags == 'object' && (flags.columns === true || flags.rows === true));
+		var payload = 'commandvalues command=' + unoCmd;
+
+		if (haveArgs) {
+			var argList = [];
+			if (flags.columns === true) {
+				argList.push('columns=1');
+			}
+			if (flags.rows === true) {
+				argList.push('rows=1');
+			}
+
+			var dataTypeFlagNames = ['sizes', 'hidden', 'filtered', 'groups'];
+			var dataTypesPresent = false;
+			dataTypeFlagNames.forEach(function (name) {
+				if (flags[name] === true) {
+					argList.push(name + '=1');
+					dataTypesPresent = true;
+				}
+			});
+
+			if (!dataTypesPresent) {
+				dataTypeFlagNames.forEach(function (name) {
+					argList.push(name + '=1');
+				});
+			}
+
+			payload += '?' + argList.join('&');
+		}
+
+		this._map._socket.sendMessage(payload);
+	},
+
 	_handleViewRowColumnHeadersMsg: function (jsonMsgObj) {
 		this._map.fire('viewrowcolumnheaders', {
 			data: jsonMsgObj,
@@ -507,6 +543,11 @@ L.CalcTileLayer = L.TileLayer.extend({
 		});
 	},
 
+	_handleSheetGeometryDataMsg: function (jsonMsgObj) {
+		// TODO: use the L.SheetGeometry datastructure
+		this._map.sheetGeomData = jsonMsgObj;
+	},
+
 	_onCommandValuesMsg: function (textMsg) {
 		var jsonIdx = textMsg.indexOf('{');
 		if (jsonIdx === -1)
@@ -521,6 +562,9 @@ L.CalcTileLayer = L.TileLayer.extend({
 		if (values.commandName === '.uno:ViewRowColumnHeaders') {
 			this._handleViewRowColumnHeadersMsg(values);
 
+		} else if (values.commandName === '.uno:SheetGeometryData') {
+			this._handleSheetGeometryDataMsg(values);
+
 		} else if (values.comments) {
 			this.clearAnnotations();
 			for (var index in values.comments) {


More information about the Libreoffice-commits mailing list