[Libreoffice-commits] online.git: loleaflet/src
Dennis Francis (via logerrit)
logerrit at kemper.freedesktop.org
Sun Jul 5 07:55:23 UTC 2020
loleaflet/src/control/Control.ColumnHeader.js | 2
loleaflet/src/control/Control.RowHeader.js | 2
loleaflet/src/control/Control.Scroll.js | 40 -------------------
loleaflet/src/layer/tile/CalcTileLayer.js | 53 +++++++++++++++++++++++---
loleaflet/src/map/Map.js | 4 +
5 files changed, 55 insertions(+), 46 deletions(-)
New commits:
commit cc6250de46333bcb2ec22caf272c2e36ce7327f7
Author: Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Mon May 11 21:31:25 2020 +0530
Commit: Dennis Francis <dennis.francis at collabora.com>
CommitDate: Sun Jul 5 09:55:03 2020 +0200
move the 'updaterowcolumnheaders' event handling code
from L.Control.Scroll to a new method requestViewRowColumnData() under
L.CalcTileLayer which is arguably a more appropriate place for it and
change all the places that calls map.fire() to emit
'updaterowcolumnheaders' to call the new method directly.
This helps to improve the code readability a bit by being more explicit
and also avoid an unnecessary indirection while code grepping.
This also makes it much easier to introduce the change in data source
from .uno:ViewRowColumnHeaders to .uno:SheetGeometryData by avoiding
lots of abrupt changes in one go.
Change-Id: Ia42d7586f06e28a5715fac278967a445089308af
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97939
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Dennis Francis <dennis.francis at collabora.com>
diff --git a/loleaflet/src/control/Control.ColumnHeader.js b/loleaflet/src/control/Control.ColumnHeader.js
index f9d3feedb..a2846f78e 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -193,7 +193,7 @@ L.Control.ColumnHeader = L.Control.Header.extend({
},
_updateColumnHeader: function () {
- this._map.fire('updaterowcolumnheaders', {x: this._map._getTopLeftPoint().x, y: 0, offset: {x: undefined, y: 0}});
+ this._map._docLayer.requestViewRowColumnData({x: this._map._getTopLeftPoint().x, y: 0, offset: {x: undefined, y: 0}});
},
drawHeaderEntry: function (entry, isOver, isHighlighted, isCurrent) {
diff --git a/loleaflet/src/control/Control.RowHeader.js b/loleaflet/src/control/Control.RowHeader.js
index 0bf1fcb38..afbba3c45 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -186,7 +186,7 @@ L.Control.RowHeader = L.Control.Header.extend({
},
_updateRowHeader: function () {
- this._map.fire('updaterowcolumnheaders', {x: 0, y: this._map._getTopLeftPoint().y, offset: {x: 0, y: undefined}});
+ this._map._docLayer.requestViewRowColumnData({x: 0, y: this._map._getTopLeftPoint().y, offset: {x: 0, y: undefined}});
},
drawHeaderEntry: function (entry, isOver, isHighlighted, isCurrent) {
diff --git a/loleaflet/src/control/Control.Scroll.js b/loleaflet/src/control/Control.Scroll.js
index 650f69ce4..e3f9cf4dc 100644
--- a/loleaflet/src/control/Control.Scroll.js
+++ b/loleaflet/src/control/Control.Scroll.js
@@ -23,7 +23,6 @@ L.Control.Scroll = L.Control.extend({
map.on('handleautoscroll', this._onHandleAutoScroll, this);
map.on('docsize', this._onUpdateSize, this);
map.on('updatescrolloffset', this._onUpdateScrollOffset, this);
- map.on('updaterowcolumnheaders', this._onUpdateRowColumnHeaders, this);
var control = this;
var autoHideTimeout = null;
@@ -115,7 +114,7 @@ L.Control.Scroll = L.Control.extend({
return;
}
- this._onUpdateRowColumnHeaders({ x: newLeft, y: newTop, offset: offset});
+ this._map._docLayer.requestViewRowColumnData({ x: newLeft, y: newTop, offset: offset});
this._prevScrollY = newTop;
this._prevScrollX = newLeft;
@@ -268,7 +267,7 @@ L.Control.Scroll = L.Control.extend({
offset.y = 1;
}
if (e.updateHeaders && this._map._docLayer._docType === 'spreadsheet') {
- this._onUpdateRowColumnHeaders({x: e.x, y: e.y, offset: offset});
+ this._map._docLayer.requestViewRowColumnData({x: e.x, y: e.y, offset: offset});
}
this._map.fire('scrolloffset', offset);
this._ignoreScroll = null;
@@ -276,41 +275,6 @@ L.Control.Scroll = L.Control.extend({
this._prevScrollY = e.y;
this._prevScrollX = e.x;
$('.scroll-container').mCustomScrollbar('scrollTo', [e.y, e.x], {callbacks: false, timeout:0});
- },
-
- _onUpdateRowColumnHeaders: function(e) {
- var offset = e.offset || {};
-
- var topLeftPoint = new L.Point(e.x, e.y);
- var sizePx = this._map.getSize();
-
- if (topLeftPoint.x === undefined) {
- topLeftPoint.x = this._map._getTopLeftPoint().x;
- }
- if (topLeftPoint.y === undefined) {
- topLeftPoint.y = this._map._getTopLeftPoint().y;
- }
-
- if (offset.x === 0) {
- topLeftPoint.x = -1;
- sizePx.x = 0;
- }
- if (offset.y === 0) {
- topLeftPoint.y = -1;
- sizePx.y = 0;
- }
-
- var pos = this._map._docLayer._pixelsToTwips(topLeftPoint);
- var size = this._map._docLayer._pixelsToTwips(sizePx);
- var payload = 'commandvalues command=.uno:ViewRowColumnHeaders?x=' + Math.round(pos.x) + '&y=' + Math.round(pos.y) +
- '&width=' + Math.round(size.x) + '&height=' + Math.round(size.y);
-
- if (e.outline) {
- payload += '&columnOutline=' + e.outline.column + '&groupLevel=' + e.outline.level
- + '&groupIndex=' + e.outline.index + '&groupHidden=' + e.outline.hidden;
- }
-
- this._map._socket.sendMessage(payload);
}
});
diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js
index 323fcc711..06ffa2bef 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -264,13 +264,13 @@ L.CalcTileLayer = L.TileLayer.extend({
}
}
} else if (textMsg.startsWith('invalidateheader: column')) {
- this._map.fire('updaterowcolumnheaders', {x: this._map._getTopLeftPoint().x, y: 0, offset: {x: undefined, y: 0}});
+ this.requestViewRowColumnData({x: this._map._getTopLeftPoint().x, y: 0, offset: {x: undefined, y: 0}});
this._map._socket.sendMessage('commandvalues command=.uno:ViewAnnotationsPosition');
} else if (textMsg.startsWith('invalidateheader: row')) {
- this._map.fire('updaterowcolumnheaders', {x: 0, y: this._map._getTopLeftPoint().y, offset: {x: 0, y: undefined}});
+ this.requestViewRowColumnData({x: 0, y: this._map._getTopLeftPoint().y, offset: {x: 0, y: undefined}});
this._map._socket.sendMessage('commandvalues command=.uno:ViewAnnotationsPosition');
} else if (textMsg.startsWith('invalidateheader: all')) {
- this._map.fire('updaterowcolumnheaders', {x: this._map._getTopLeftPoint().x, y: this._map._getTopLeftPoint().y, offset: {x: undefined, y: undefined}});
+ this.requestViewRowColumnData({x: this._map._getTopLeftPoint().x, y: this._map._getTopLeftPoint().y, offset: {x: undefined, y: undefined}});
this._map._socket.sendMessage('commandvalues command=.uno:ViewAnnotationsPosition');
} else {
L.TileLayer.prototype._onMessage.call(this, textMsg, img);
@@ -361,14 +361,14 @@ L.CalcTileLayer = L.TileLayer.extend({
this._map.setPart(part, true);
this._map.fire('setpart', {selectedPart: this._selectedPart});
// TODO: test it!
- this._map.fire('updaterowcolumnheaders');
+ this.requestViewRowColumnData();
}
},
_onZoomRowColumns: function () {
this._sendClientZoom();
// TODO: test it!
- this._map.fire('updaterowcolumnheaders');
+ this.requestViewRowColumnData();
this._map._socket.sendMessage('commandvalues command=.uno:ViewAnnotationsPosition');
},
@@ -454,6 +454,49 @@ L.CalcTileLayer = L.TileLayer.extend({
}
},
+ // This send .uno:ViewRowColumnHeaders command to core with the new view coordinates.
+ requestViewRowColumnData: function (coordinatesData) {
+
+ // There are places that call this function with no arguments to indicate that the
+ // command arguments should be the current map area coordinates.
+ if (typeof coordinatesData != 'object') {
+ coordinatesData = {};
+ }
+
+ var offset = coordinatesData.offset || {};
+
+ var topLeftPoint = new L.Point(coordinatesData.x, coordinatesData.y);
+ var sizePx = this._map.getSize();
+
+ if (topLeftPoint.x === undefined) {
+ topLeftPoint.x = this._map._getTopLeftPoint().x;
+ }
+ if (topLeftPoint.y === undefined) {
+ topLeftPoint.y = this._map._getTopLeftPoint().y;
+ }
+
+ if (offset.x === 0) {
+ topLeftPoint.x = -1;
+ sizePx.x = 0;
+ }
+ if (offset.y === 0) {
+ topLeftPoint.y = -1;
+ sizePx.y = 0;
+ }
+
+ var pos = this._pixelsToTwips(topLeftPoint);
+ var size = this._pixelsToTwips(sizePx);
+ var payload = 'commandvalues command=.uno:ViewRowColumnHeaders?x=' + Math.round(pos.x) + '&y=' + Math.round(pos.y) +
+ '&width=' + Math.round(size.x) + '&height=' + Math.round(size.y);
+
+ if (coordinatesData.outline) {
+ payload += '&columnOutline=' + coordinatesData.outline.column + '&groupLevel=' + coordinatesData.outline.level
+ + '&groupIndex=' + coordinatesData.outline.index + '&groupHidden=' + coordinatesData.outline.hidden;
+ }
+
+ this._map._socket.sendMessage(payload);
+ },
+
_handleViewRowColumnHeadersMsg: function (jsonMsgObj) {
this._map.fire('viewrowcolumnheaders', {
data: jsonMsgObj,
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 285e4954d..dbc376765 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -323,7 +323,9 @@ L.Map = L.Evented.extend({
// TODO: remove duplicated init code
this._socket.sendMessage('commandvalues command=.uno:LanguageStatus');
this._socket.sendMessage('commandvalues command=.uno:ViewAnnotations');
- this.fire('updaterowcolumnheaders');
+ if (this._docLayer._docType === 'spreadsheet') {
+ this._docLayer.requestViewRowColumnData();
+ }
this._docLayer._getToolbarCommandsValues();
},
More information about the Libreoffice-commits
mailing list