[Libreoffice-commits] online.git: loleaflet/css loleaflet/src

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Sun Jun 28 06:51:35 UTC 2020


 loleaflet/css/loleaflet.css              |   11 ++++++++++
 loleaflet/src/layer/marker/Annotation.js |   32 +++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

New commits:
commit 552462cecd225b5d12f40fea410686a2f3a40ba0
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri Jun 26 09:04:35 2020 +0200
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sun Jun 28 08:51:15 2020 +0200

    Add support to show annotation marker for draw/impress
    
    Change-Id: Ibaeaed97de5b5a87f4a46c4da593a3ee861e2399
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97335
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/loleaflet/css/loleaflet.css b/loleaflet/css/loleaflet.css
index 41e9459fc..dccd4b4b5 100644
--- a/loleaflet/css/loleaflet.css
+++ b/loleaflet/css/loleaflet.css
@@ -236,6 +236,17 @@ body {
 	margin-right: 10px;
 }
 
+.annotation-marker {
+	margin-left: 0px;
+	margin-top: 0px;
+	width: 24px;
+	height: 24px;
+	background-image: url('images/note.svg');
+	background-size: 100% 100%;
+	background-repeat: no-repeat;
+	outline: none;
+}
+
 .loleaflet-scrolled {
 	overflow: auto;
 }
diff --git a/loleaflet/src/layer/marker/Annotation.js b/loleaflet/src/layer/marker/Annotation.js
index 6224007f8..730396ab9 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -19,6 +19,7 @@ L.Annotation = L.Layer.extend({
 		this._latlng = L.latLng(latlng);
 		this._data = data;
 		this._skipCheckBounds = false;
+		this._annotationMarker = null;
 	},
 
 	onAdd: function (map) {
@@ -51,6 +52,7 @@ L.Annotation = L.Layer.extend({
 		this._updateContent();
 		this._updateLayout();
 		this._updatePosition();
+		this._updateAnnotationMarker();
 	},
 
 	setData: function (data) {
@@ -89,6 +91,9 @@ L.Annotation = L.Layer.extend({
 		if (this._data.textSelected && this._map.hasLayer && !this._map.hasLayer(this._data.textSelected)) {
 			this._map.addLayer(this._data.textSelected);
 		}
+		if (this._annotationMarker != null) {
+			this._map.addLayer(this._annotationMarker);
+		}
 	},
 
 	hide: function () {
@@ -99,6 +104,9 @@ L.Annotation = L.Layer.extend({
 		if (this._data.textSelected && this._map.hasLayer(this._data.textSelected)) {
 			this._map.removeLayer(this._data.textSelected);
 		}
+		if (this._annotationMarker != null) {
+			this._map.removeLayer(this._annotationMarker);
+		}
 	},
 
 	isVisible: function () {
@@ -441,6 +449,30 @@ L.Annotation = L.Layer.extend({
 		var authorImageHeight = Math.round(this.options.imgSize.y * scaleFactor);
 		this._authorAvatarImg.setAttribute('width', authorImageWidth);
 		this._authorAvatarImg.setAttribute('height', authorImageHeight);
+	},
+
+	_updateAnnotationMarker: function () {
+		if (this._data == null)
+			return;
+
+		if (this._annotationMarker == null) {
+			this._annotationMarker = L.marker(new L.LatLng(0, 0), {
+				icon: L.divIcon({
+					className: 'annotation-marker',
+					iconSize: null
+				}),
+				draggable: true
+			});
+			this._map.addLayer(this._annotationMarker);
+		}
+		var stringTwips = this._data.rectangle.match(/\d+/g);
+		var topLeftTwips = new L.Point(parseInt(stringTwips[0]), parseInt(stringTwips[1]));
+		var offset = new L.Point(parseInt(stringTwips[2]), parseInt(stringTwips[3]));
+		var bottomRightTwips = topLeftTwips.add(offset);
+		var bounds = new L.LatLngBounds(
+			this._map._docLayer._twipsToLatLng(topLeftTwips, this._map.getZoom()),
+			this._map._docLayer._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
+		this._annotationMarker.setLatLng(bounds.getSouthWest());
 	}
 });
 


More information about the Libreoffice-commits mailing list