[Libreoffice-commits] online.git: 5 commits - loleaflet/build loleaflet/src
Szymon Kłos (via logerrit)
logerrit at kemper.freedesktop.org
Thu Oct 17 20:51:09 UTC 2019
loleaflet/build/deps.js | 4 +
loleaflet/src/core/Socket.js | 2
loleaflet/src/layer/ObjectFocusDarkOverlay.js | 57 ++++++++++++++++++++++++++
loleaflet/src/layer/tile/TileLayer.js | 18 +++++++-
loleaflet/src/map/Map.js | 21 +++++++++
5 files changed, 98 insertions(+), 4 deletions(-)
New commits:
commit 17ab9909d67a98457aa7819b6e01f578bbb289b8
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Jul 30 17:13:17 2019 +0200
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Oct 17 21:47:32 2019 +0100
Unify none state for _graphicSelection
Change-Id: I8fb4f7813373b3b56a25040fc5d20e7592c6c92d
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 66c837fdf..fcc62e83b 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -915,7 +915,7 @@ L.Socket = L.Class.extend({
if (this._map._docLayer) {
this._map._docLayer.removeAllViews();
this._map._docLayer._resetClientVisArea();
- this._map._docLayer._graphicSelection = null;
+ this._map._docLayer._graphicSelection = new L.LatLngBounds(new L.LatLng(0, 0), new L.LatLng(0, 0));
this._map._docLayer._onUpdateGraphicSelection();
}
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index fb0df110d..7587096fb 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -833,7 +833,7 @@ L.TileLayer = L.GridLayer.extend({
this._map.addObjectFocusDarkOverlay(xTwips, yTwips, wTwips, hTwips);
- this._graphicSelection = null;
+ this._graphicSelection = new L.LatLngBounds(new L.LatLng(0, 0), new L.LatLng(0, 0));
this._onUpdateGraphicSelection();
}
}
@@ -1819,7 +1819,7 @@ L.TileLayer = L.GridLayer.extend({
// hide the selection handles
this._onUpdateTextSelection();
// hide the graphic selection
- this._graphicSelection = null;
+ this._graphicSelection = new L.LatLngBounds(new L.LatLng(0, 0), new L.LatLng(0, 0));
this._onUpdateGraphicSelection();
this._cellCursor = null;
this._onUpdateCellCursor();
commit d0474118250684214bf2226d15da5e8dea593d70
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Jun 5 09:28:18 2019 +0200
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Oct 17 21:16:53 2019 +0100
Remove dark overlay after crash or disconnection
Change-Id: Iceab041def6444b76c008a65d7fdeccb61126f84
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 39c2144b0..fb0df110d 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -822,21 +822,16 @@ L.TileLayer = L.GridLayer.extend({
this._resetSelectionRanges();
}
else if (textMsg.match('INPLACE EXIT')) {
- if (this._map.focusLayer) {
- this._map.removeLayer(this._map.focusLayer);
- this._map.focusLayer = null;
- }
+ this._map.removeObjectFocusDarkOverlay();
}
else if (textMsg.match('INPLACE')) {
- if (!this._map.focusLayer) {
- this._map.focusLayer = new L.ObjectFocusDarkOverlay().addTo(this._map);
-
+ if (!this._map.hasObjectFocusDarkOverlay()) {
var xTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).x;
var yTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).y;
var wTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).x - xTwips;
var hTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).y - yTwips;
- this._map.focusLayer.show({x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+ this._map.addObjectFocusDarkOverlay(xTwips, yTwips, wTwips, hTwips);
this._graphicSelection = null;
this._onUpdateGraphicSelection();
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 628227522..d5feb7c25 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -317,6 +317,7 @@ L.Map = L.Evented.extend({
loadDocument: function(socket) {
this._socket.connect(socket);
+ this.removeObjectFocusDarkOverlay();
},
sendInitUNOCommands: function() {
@@ -1731,7 +1732,25 @@ L.Map = L.Evented.extend({
isRulerVisible: function() {
return $('.loleaflet-ruler').is(':visible');
- }
+ },
+
+ hasObjectFocusDarkOverlay: function() {
+ return !!this.focusLayer;
+ },
+
+ addObjectFocusDarkOverlay: function(xTwips, yTwips, wTwips, hTwips) {
+ if (!this.hasObjectFocusDarkOverlay()) {
+ this.focusLayer = new L.ObjectFocusDarkOverlay().addTo(this);
+ this.focusLayer.show({x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+ }
+ },
+
+ removeObjectFocusDarkOverlay: function() {
+ if (this.hasObjectFocusDarkOverlay()) {
+ this.removeLayer(this.focusLayer);
+ this.focusLayer = null;
+ }
+ },
});
L.map = function (id, options) {
commit f0921608143f4fdeec2ed49fe2ddce72da3855ed
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Fri May 31 19:23:38 2019 +0200
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Oct 17 21:16:53 2019 +0100
Don't allow to enter incorrect state with dark overlay
Change-Id: Idda18b8ba916bdb421a205290fd4569fb11d203b
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 54f0c231a..39c2144b0 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -822,7 +822,7 @@ L.TileLayer = L.GridLayer.extend({
this._resetSelectionRanges();
}
else if (textMsg.match('INPLACE EXIT')) {
- if (this._map.hasLayer(this._map.focusLayer)) {
+ if (this._map.focusLayer) {
this._map.removeLayer(this._map.focusLayer);
this._map.focusLayer = null;
}
@@ -830,17 +830,17 @@ L.TileLayer = L.GridLayer.extend({
else if (textMsg.match('INPLACE')) {
if (!this._map.focusLayer) {
this._map.focusLayer = new L.ObjectFocusDarkOverlay().addTo(this._map);
- }
- var xTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).x;
- var yTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).y;
- var wTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).x - xTwips;
- var hTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).y - yTwips;
+ var xTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).x;
+ var yTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).y;
+ var wTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).x - xTwips;
+ var hTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).y - yTwips;
- this._map.focusLayer.show({x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+ this._map.focusLayer.show({x: xTwips, y: yTwips, w: wTwips, h: hTwips});
- this._graphicSelection = null;
- this._onUpdateGraphicSelection();
+ this._graphicSelection = null;
+ this._onUpdateGraphicSelection();
+ }
}
else {
textMsg = '[' + textMsg.substr('graphicselection:'.length) + ']';
commit d14b7ef8112b0c630e5ed9312be379894221ceb1
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Fri May 31 11:58:48 2019 +0200
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Oct 17 21:16:53 2019 +0100
ObjectFocusDarkOverlay refactoring
Change-Id: Id53c3db15c4be65ca10b6b00dca2638023b7918b
diff --git a/loleaflet/src/layer/ObjectFocusDarkOverlay.js b/loleaflet/src/layer/ObjectFocusDarkOverlay.js
index ad012650b..16e8eddde 100644
--- a/loleaflet/src/layer/ObjectFocusDarkOverlay.js
+++ b/loleaflet/src/layer/ObjectFocusDarkOverlay.js
@@ -5,10 +5,7 @@
L.ObjectFocusDarkOverlay = L.Layer.extend({
onAdd: function() {
- },
-
- remove: function() {
- },
+ }
});
// Libreoffice-specific functionality follows.
@@ -17,14 +14,10 @@ L.ObjectFocusDarkOverlay = L.Layer.extend({
* A L.ObjectFocusDarkOverlay
*/
L.ObjectFocusDarkOverlay = L.ObjectFocusDarkOverlay.extend({
- onAdd: function(map) {
- map.on('inplace', this._onStateChanged, this);
- },
-
- remove: function() {
- this._map.off('inplace', this._onStateChanged, this);
+ onRemove: function() {
this._parts.clearLayers();
this._map.removeLayer(this._parts);
+ this._parts = null;
},
// coordinates are in Twips
@@ -47,14 +40,9 @@ L.ObjectFocusDarkOverlay = L.ObjectFocusDarkOverlay.extend({
this._parts.addLayer(part);
},
- _onStateChanged: function(args) {
- if (args.off && args.off === true) {
- this._parts.clearLayers();
- this._map.removeLayer(this._parts);
- this._parts = null;
- return;
- }
-
+ // args: {x, y, w, h}
+ // defines area where the focused element is placed, values are in Twips
+ show: function(args) {
this._parts = new L.LayerGroup();
this._map.addLayer(this._parts);
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index f2976b152..54f0c231a 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -821,13 +821,24 @@ L.TileLayer = L.GridLayer.extend({
if (textMsg.match('EMPTY')) {
this._resetSelectionRanges();
}
+ else if (textMsg.match('INPLACE EXIT')) {
+ if (this._map.hasLayer(this._map.focusLayer)) {
+ this._map.removeLayer(this._map.focusLayer);
+ this._map.focusLayer = null;
+ }
+ }
else if (textMsg.match('INPLACE')) {
+ if (!this._map.focusLayer) {
+ this._map.focusLayer = new L.ObjectFocusDarkOverlay().addTo(this._map);
+ }
+
var xTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).x;
var yTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).y;
var wTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).x - xTwips;
var hTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).y - yTwips;
- this._map.fire('inplace', {x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+ this._map.focusLayer.show({x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+
this._graphicSelection = null;
this._onUpdateGraphicSelection();
}
commit 8eb003f90fb220ce8b497d6a556d94430e33c6a7
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue May 28 16:15:54 2019 +0200
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Oct 17 21:16:53 2019 +0100
Added ObjectFocusDarkOverlay based on L.Polygon
Layer which shows dark overlay around edited chart.
Change-Id: I1fd87f60e7ba58524481598baf5b012f4fb3d96f
diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index f003f06fe..d9bf83bf2 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -37,7 +37,9 @@ var deps = {
TileLayer: {
src: ['layer/tile/TileLayer.js',
- 'layer/tile/TileLayer.TableOverlay.js'],
+ 'layer/tile/TileLayer.TableOverlay.js',
+ 'layer/ObjectFocusDarkOverlay.js'
+ ],
desc: 'The base class for displaying tile layers on the map.',
deps: ['GridLayer']
},
diff --git a/loleaflet/src/layer/ObjectFocusDarkOverlay.js b/loleaflet/src/layer/ObjectFocusDarkOverlay.js
new file mode 100644
index 000000000..ad012650b
--- /dev/null
+++ b/loleaflet/src/layer/ObjectFocusDarkOverlay.js
@@ -0,0 +1,69 @@
+/*
+ * A Leaflet layer that shows dark overlay around focused object.
+ *
+ */
+
+L.ObjectFocusDarkOverlay = L.Layer.extend({
+ onAdd: function() {
+ },
+
+ remove: function() {
+ },
+});
+
+// Libreoffice-specific functionality follows.
+
+/*
+ * A L.ObjectFocusDarkOverlay
+ */
+L.ObjectFocusDarkOverlay = L.ObjectFocusDarkOverlay.extend({
+ onAdd: function(map) {
+ map.on('inplace', this._onStateChanged, this);
+ },
+
+ remove: function() {
+ this._map.off('inplace', this._onStateChanged, this);
+ this._parts.clearLayers();
+ this._map.removeLayer(this._parts);
+ },
+
+ // coordinates are in Twips
+ _addPart: function(x, y, w, h) {
+ var rectangles = [];
+ var topLeftTwips = new L.Point(x, y);
+ var topRightTwips = topLeftTwips.add(new L.Point(w, 0));
+ var bottomLeftTwips = topLeftTwips.add(new L.Point(0, h));
+ var bottomRightTwips = topLeftTwips.add(new L.Point(w, h));
+ rectangles.push([bottomLeftTwips, bottomRightTwips, topLeftTwips, topRightTwips]);
+
+ var polygons = L.PolyUtil.rectanglesToPolygons(rectangles, this._map._docLayer);
+ var part = new L.Polygon(polygons, {
+ pointerEvents: 'none',
+ fillColor: 'black',
+ fillOpacity: 0.25,
+ weight: 0,
+ opacity: 0.25});
+
+ this._parts.addLayer(part);
+ },
+
+ _onStateChanged: function(args) {
+ if (args.off && args.off === true) {
+ this._parts.clearLayers();
+ this._map.removeLayer(this._parts);
+ this._parts = null;
+ return;
+ }
+
+ this._parts = new L.LayerGroup();
+ this._map.addLayer(this._parts);
+
+ var fullWidth = 1000000;
+ var fullHeight = 1000000;
+
+ this._addPart(0, 0, fullWidth, args.y);
+ this._addPart(0, args.y, args.x, args.h);
+ this._addPart(args.x + args.w, args.y, fullWidth, args.h);
+ this._addPart(0, (args.y + args.h), fullWidth, fullHeight);
+ }
+});
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 2c5364289..f2976b152 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -821,6 +821,16 @@ L.TileLayer = L.GridLayer.extend({
if (textMsg.match('EMPTY')) {
this._resetSelectionRanges();
}
+ else if (textMsg.match('INPLACE')) {
+ var xTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).x;
+ var yTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getNorthWest()).y;
+ var wTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).x - xTwips;
+ var hTwips = this._map._docLayer._latLngToTwips(this._graphicSelection.getSouthEast()).y - yTwips;
+
+ this._map.fire('inplace', {x: xTwips, y: yTwips, w: wTwips, h: hTwips});
+ this._graphicSelection = null;
+ this._onUpdateGraphicSelection();
+ }
else {
textMsg = '[' + textMsg.substr('graphicselection:'.length) + ']';
var msgData = JSON.parse(textMsg);
More information about the Libreoffice-commits
mailing list