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

New commits:
commit 13b6b8506f005f3e848c7d16c8047698b768d055
Author:     Dennis Francis <dennis.fran...@collabora.com>
AuthorDate: Tue May 12 10:52:50 2020 +0530
Commit:     Dennis Francis <dennis.fran...@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 <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Dennis Francis <dennis.fran...@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) {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to