loleaflet/src/layer/tile/CalcTileLayer.js    |    3 ++
 loleaflet/src/layer/tile/ImpressTileLayer.js |    3 ++
 loleaflet/src/layer/tile/TileLayer.js        |   38 +++++++++++++++++++++++++++
 loleaflet/src/layer/tile/WriterTileLayer.js  |    3 ++
 4 files changed, 47 insertions(+)

New commits:
commit fb351f2c1af04e784b66aefb2d1fd2bd696df6c1
Author: László Németh <laszlo.nem...@collabora.com>
Date:   Tue Sep 20 13:16:02 2016 +0200

    add client-side tile debugging mode
    
    Extending the document URL with debug=1 option will switch
    
    - visible tile boundaries
    - update numbers over tiles
    
    and invalidated tiles will be blue during waiting for an update.

diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index b3ac37f..1d51cf8 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -64,6 +64,9 @@ L.CalcTileLayer = L.TileLayer.extend({
                                        }
                                        tilePositionsY += tileTopLeft.y;
                                        needsNewTiles = true;
+                                       if (this._debug && 
this._tiles[key]._debugTile) {
+                                               
this._tiles[key]._debugTile.setStyle({fillOpacity: 0.5});
+                                       }
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js 
b/loleaflet/src/layer/tile/ImpressTileLayer.js
index 8f2358a..96934d6 100644
--- a/loleaflet/src/layer/tile/ImpressTileLayer.js
+++ b/loleaflet/src/layer/tile/ImpressTileLayer.js
@@ -48,6 +48,9 @@ L.ImpressTileLayer = L.TileLayer.extend({
                                        }
                                        tilePositionsY += tileTopLeft.y;
                                        needsNewTiles = true;
+                                       if (this._debug && 
this._tiles[key]._debugTile) {
+                                               
this._tiles[key]._debugTile.setStyle({fillOpacity: 0.5});
+                                       }
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 4317e17..b9e0afb 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -12,6 +12,12 @@ if (typeof String.prototype.startsWith !== 'function') {
        };
 }
 
+function getParameterByName(name) {
+       name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
+       var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = 
regex.exec(location.search);
+       return results === null ? '' : results[1].replace(/\+/g, ' ');
+}
+
 L.Compatibility = {
        clipboardGet: function (event) {
                var text = null;
@@ -146,6 +152,12 @@ L.TileLayer = L.GridLayer.extend({
                map.addLayer(this._viewSelectionsGroup);
                this._viewSelections = {};
 
+               this._debug = (getParameterByName('debug') == '1');
+               if (this._debug) {
+                       this._debugInfo = new L.LayerGroup();
+                       map.addLayer(this._debugInfo);
+               }
+
                this._searchResultsLayer = new L.LayerGroup();
                map.addLayer(this._searchResultsLayer);
 
@@ -982,6 +994,25 @@ L.TileLayer = L.GridLayer.extend({
                coords.part = command.part;
                var key = this._tileCoordsToKey(coords);
                var tile = this._tiles[key];
+               if (this._debug && tile) {
+                       var tileBound = this._keyToBounds(key);
+                       if (tile._debugLoadCount) {
+                               tile._debugLoadCount += 1;
+                       } else {
+                               tile._debugLoadCount = 1;
+                       }
+                       if (!tile._debugPopup) {
+                               tile._debugPopup = L.popup({offset: new 
L.Point(0, 0), autoPan: false, closeButton: false, closeOnClick: false})
+                                               .setLatLng(new 
L.LatLng(tileBound.getSouth(), tileBound.getCenter().lng)).setContent('-');
+                               this._debugInfo.addLayer(tile._debugPopup);
+                               tile._debugTile = L.rectangle(tileBound, 
{color: 'blue', weight: 1, fillOpacity: 0, pointerEvents: 'none'});
+                               this._debugInfo.addLayer(tile._debugTile);
+                       }
+                       tile._debugPopup.setContent('' + 
this._tiles[key]._debugLoadCount);
+                       if (tile._debugTile) {
+                               tile._debugTile.setStyle({fillOpacity: 0});
+                       }
+               }
                if (command.id !== undefined) {
                        this._map.fire('tilepreview', {
                                tile: img,
@@ -1701,6 +1732,13 @@ L.TileLayer = L.GridLayer.extend({
        },
 
        _invalidateClientVisibleArea: function() {
+               if (this._debug) {
+                       this._debugInfo.clearLayers();
+                       for (var key in this._tiles) {
+                               this._tiles[key]._debugPopup = null;
+                               this._tiles[key]._debugTile = null;
+                       }
+               }
                this._clientVisibleArea = true;
        }
 });
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js 
b/loleaflet/src/layer/tile/WriterTileLayer.js
index ab604aa..d29c3d5 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -49,6 +49,9 @@ L.WriterTileLayer = L.TileLayer.extend({
                                        }
                                        tilePositionsY += tileTopLeft.y;
                                        needsNewTiles = true;
+                                       if (this._debug && 
this._tiles[key]._debugTile) {
+                                               
this._tiles[key]._debugTile.setStyle({fillOpacity: 0.5});
+                                       }
                                }
                                else {
                                        // tile outside of the visible area, 
just remove it
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to