[Libreoffice-commits] online.git: loleaflet/src
Henry Castro
hcastro at collabora.com
Tue Sep 13 20:25:19 UTC 2016
loleaflet/src/control/Parts.js | 1
loleaflet/src/layer/tile/TileLayer.js | 55 ++++++++++++++++++++++++----------
2 files changed, 41 insertions(+), 15 deletions(-)
New commits:
commit 663f47b858749688588cc399c16ecfe126618f50
Author: Henry Castro <hcastro at collabora.com>
Date: Tue Sep 13 16:18:00 2016 -0400
loleaflet: update graphic markers
LayerGroup handle internal list
Map handle internal list
TileLayer handle internal list
Reduce internal list
diff --git a/loleaflet/src/control/Parts.js b/loleaflet/src/control/Parts.js
index 45fd68d..f6c9a18 100644
--- a/loleaflet/src/control/Parts.js
+++ b/loleaflet/src/control/Parts.js
@@ -33,6 +33,7 @@ L.Map.include({
this._socket.sendMessage('setclientpart part=' + docLayer._selectedPart);
docLayer._updateViewCursors();
docLayer._updateCellViewCursors();
+ docLayer._updateGraphicViewSelections();
docLayer._clearSelections();
docLayer._updateOnChangePart();
docLayer._pruneTiles();
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 8b40da6..e9594ae 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -146,10 +146,6 @@ L.TileLayer = L.GridLayer.extend({
map.addLayer(this._viewSelectionsGroup);
this._viewSelections = {};
- this._graphicViewMarkersGroup = new L.LayerGroup();
- map.addLayer(this._graphicViewMarkersGroup);
- this._graphicViewMarkers = {};
-
this._searchResultsLayer = new L.LayerGroup();
map.addLayer(this._searchResultsLayer);
@@ -500,23 +496,21 @@ L.TileLayer = L.GridLayer.extend({
}
var strTwips = obj.selection.match(/\d+/g);
- if (this._graphicViewMarkers[viewId]) {
- this._graphicViewMarkersGroup.removeLayer(this._graphicViewMarkers[viewId]);
- }
+ this._graphicViewMarkers[viewId] = this._graphicViewMarkers[viewId] || {};
+ this._graphicViewMarkers[viewId].part = parseInt(obj.part);
if (strTwips != null) {
var topLeftTwips = new L.Point(parseInt(strTwips[0]), parseInt(strTwips[1]));
var offset = new L.Point(parseInt(strTwips[2]), parseInt(strTwips[3]));
var bottomRightTwips = topLeftTwips.add(offset);
- var graphicSelection = new L.LatLngBounds(
+ this._graphicViewMarkers[viewId].bounds = new L.LatLngBounds(
this._twipsToLatLng(topLeftTwips, this._map.getZoom()),
this._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
- this._graphicViewMarkers[viewId] = L.rectangle(graphicSelection, {
- pointerEvents: 'none',
- fill: false,
- color: L.LOUtil.getViewIdHexColor(viewId)
- });
- this._graphicViewMarkersGroup.addLayer(this._graphicViewMarkers[viewId]);
}
+ else {
+ this._graphicViewMarkers[viewId].bounds = L.LatLngBounds.createDefault();
+ }
+
+ this._onUpdateGraphicViewSelection(viewId);
},
_onCellCursorMsg: function (textMsg) {
@@ -1153,7 +1147,7 @@ L.TileLayer = L.GridLayer.extend({
},
// Update colored non-blinking view cursor
- _onUpdateViewCursor: function(viewId) {
+ _onUpdateViewCursor: function (viewId) {
if (typeof this._viewCursors[viewId] !== 'object' ||
typeof this._viewCursors[viewId].bounds !== 'object') {
return;
@@ -1189,6 +1183,31 @@ L.TileLayer = L.GridLayer.extend({
}
},
+ _onUpdateGraphicViewSelection: function (viewId) {
+ var viewBounds = this._graphicViewMarkers[viewId].bounds;
+ var viewMarker = this._graphicViewMarkers[viewId].marker;
+ var viewPart = this._graphicViewMarkers[viewId].part;
+
+ if (!this._isEmptyRectangle(viewBounds) &&
+ (this._docType === 'text' || this._selectedPart === viewPart)) {
+ if (!viewMarker) {
+ viewMarker = L.rectangle(viewBounds, {
+ pointerEvents: 'none',
+ fill: false,
+ color: L.LOUtil.getViewIdHexColor(viewId)
+ });
+ this._graphicViewMarkers[viewId].marker = viewMarker;
+ }
+ else {
+ viewMarker.setBounds(viewBounds);
+ }
+ this._map.addLayer(viewMarker);
+ }
+ else if (viewMarker) {
+ this._map.removeLayer(viewMarker);
+ }
+ },
+
_updateViewCursors: function () {
for (var key in this._viewCursors) {
this._onUpdateViewCursor(key);
@@ -1201,6 +1220,12 @@ L.TileLayer = L.GridLayer.extend({
}
},
+ _updateGraphicViewSelections: function () {
+ for (var key in this._graphicViewMarkers) {
+ this._onUpdateGraphicViewSelection(key);
+ }
+ },
+
// Update dragged graphics selection resize.
_onGraphicEdit: function (e) {
if (!e.handle) { return; }
More information about the Libreoffice-commits
mailing list