[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - 3 commits - loleaflet/src Makefile.am
Jan Holesovsky
kendy at collabora.com
Tue Apr 4 17:27:06 UTC 2017
Makefile.am | 4
loleaflet/src/layer/AnnotationManager.js | 136 +++++++++++++++++--------------
loleaflet/src/layer/marker/Annotation.js | 16 +++
loleaflet/src/map/Map.js | 11 ++
4 files changed, 105 insertions(+), 62 deletions(-)
New commits:
commit 1b12b7bfe7883c87d961f377e6e3b35f48ff1671
Author: Jan Holesovsky <kendy at collabora.com>
Date: Tue Apr 4 19:21:26 2017 +0200
Update the logging settings.
When callgrinding, we really don't want to measure the overhead of the logging
- disable it as much as reasonably possible.
And with 'make run' don't pollute the screen, because the instructions what to
do run away before one manages to read them :-)
Change-Id: I1f72e4a926b3b3c209f31ea257d77234fac255e0
diff --git a/Makefile.am b/Makefile.am
index a438ff7d..3f45901e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -227,7 +227,7 @@ run: all @JAILS_PATH@ @SYSTEMPLATE_PATH@/system_stamp
--o:ssl.key_file_path="$(abs_top_srcdir)/etc/key.pem" \
--o:ssl.ca_file_path="$(abs_top_srcdir)/etc/ca-chain.cert.pem" \
--o:admin_console.username=admin --o:admin_console.password=admin \
- --o:logging.file[@enable]=false --o:logging.level=trace
+ --o:logging.file[@enable]=true --o:logging.level=trace
run-valgrind: all @JAILS_PATH@ @SYSTEMPLATE_PATH@/system_stamp
@echo "Launching loolwsd under valgrind (but not forkit/loolkit, yet)"
@@ -251,7 +251,7 @@ run-callgrind: all @JAILS_PATH@ @SYSTEMPLATE_PATH@/system_stamp
--o:ssl.key_file_path="$(abs_top_srcdir)/etc/key.pem" \
--o:ssl.ca_file_path="$(abs_top_srcdir)/etc/ca-chain.cert.pem" \
--o:admin_console.username=admin --o:admin_console.password=admin \
- --o:logging.file[@enable]=false --o:logging.level=trace
+ --o:logging.file[@enable]=false --o:logging.level=error
else
SYSTEM_STAMP =
commit 1b177b792e3901300e566ce6fc319f38f2475ae0
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Tue Apr 4 16:18:43 2017 +0530
loleaflet: Turn off autocomplete, spellcheck
Change-Id: I3fcd4983ca63a2de4d1bca7a1a0d4fbd7feecf38
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 1c16e138..19b0576c 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -634,6 +634,8 @@ L.Map = L.Evented.extend({
this._textArea.setAttribute('type', 'text');
this._textArea.setAttribute('autocorrect', 'off');
this._textArea.setAttribute('autocapitalize', 'off');
+ this._textArea.setAttribute('autocomplete', 'off');
+ this._textArea.setAttribute('spellcheck', 'false');
this._resizeDetector = L.DomUtil.create('iframe', 'resize-detector', container);
this._fileDownloader = L.DomUtil.create('iframe', '', container);
L.DomUtil.setStyle(this._fileDownloader, 'display', 'none');
commit e26c485cd465684f6e7ef93836aa372b3322ab9f
Author: Henry Castro <hcastro at collabora.com>
Date: Mon Apr 3 22:41:29 2017 -0400
loleaflet: add a permanent overlay text selection of the annotation object
Change-Id: I395f7cec22bf187532130b6755fcae58f51c73d2
diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index 8cf90e24..8308d485 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -11,7 +11,7 @@ L.AnnotationManager = L.Class.extend({
initialize: function (map) {
this._map = map;
this._items = [];
- this._selected = {};
+ this._selected = null;
this._map.on('AnnotationCancel', this._onAnnotationCancel, this);
this._map.on('AnnotationClick', this._onAnnotationClick, this);
this._map.on('AnnotationReply', this._onAnnotationReply, this);
@@ -28,7 +28,7 @@ L.AnnotationManager = L.Class.extend({
}
}
this._items = [];
- this._selected = {};
+ this._selected = null;
},
// Remove only change tracking comments from the document
@@ -40,15 +40,54 @@ L.AnnotationManager = L.Class.extend({
}
},
+ adjustComment: function(comment) {
+ var rectangles, color, viewId;
+ comment.anchorPos = L.LOUtil.stringToBounds(comment.anchorPos);
+ comment.anchorPix = this._map._docLayer._twipsToPixels(comment.anchorPos.min);
+ comment.trackchange = false;
+ rectangles = L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(comment.textRange), this._map._docLayer);
+ viewId = this._map.getViewId(comment.author);
+ color = viewId >= 0 ? L.LOUtil.rgbToHex(this._map.getViewColor(viewId)) : '#43ACE8';
+ if (rectangles.length > 0) {
+ comment.textSelected = L.polygon(rectangles, {
+ pointerEvents: 'none',
+ fillColor: color,
+ fillOpacity: 0.25,
+ weight: 2,
+ opacity: 0.25
+ });
+ }
+ },
+
+ adjustRedLine: function(redline) {
+ var rectangles, color, viewId;
+ // transform change tracking index into an id
+ redline.id = 'change-' + redline.index;
+ redline.anchorPos = L.LOUtil.stringToBounds(redline.textRange);
+ redline.anchorPix = this._map._docLayer._twipsToPixels(redline.anchorPos.min);
+ redline.trackchange = true;
+ redline.text = redline.comment;
+ rectangles = L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(redline.textRange), this._map._docLayer);
+ viewId = this._map.getViewId(redline.author);
+ color = viewId >= 0 ? L.LOUtil.rgbToHex(this._map.getViewColor(viewId)) : '#43ACE8';
+ if (rectangles.length > 0) {
+ redline.textSelected = L.polygon(rectangles, {
+ pointerEvents: 'none',
+ fillColor: color,
+ fillOpacity: 0.25,
+ weight: 2,
+ opacity: 0.25
+ });
+ }
+ },
+
// Fill normal comments in the documents
fill: function (comments) {
var comment;
this.clear();
for (var index in comments) {
comment = comments[index];
- comment.anchorPos = L.LOUtil.stringToBounds(comment.anchorPos);
- comment.anchorPix = this._map._docLayer._twipsToPixels(comment.anchorPos.min);
- comment.trackchange = false;
+ this.adjustComment(comment);
this._items.push(L.annotation(this._map.options.maxBounds.getSouthEast(), comment).addTo(this._map));
}
this.layout();
@@ -59,11 +98,7 @@ L.AnnotationManager = L.Class.extend({
this.clearChanges();
for (var idx in redlines) {
changecomment = redlines[idx];
- changecomment.id = 'change-' + changecomment.index;
- changecomment.anchorPos = L.LOUtil.stringToBounds(changecomment.textRange);
- changecomment.anchorPix = this._map._docLayer._twipsToPixels(changecomment.anchorPos.min);
- changecomment.trackchange = true;
- changecomment.text = changecomment.comment;
+ this.adjustRedLine(changecomment);
this._items.push(L.annotation(this._map.options.maxBounds.getSouthEast(), changecomment).addTo(this._map));
}
this.layout();
@@ -99,33 +134,19 @@ L.AnnotationManager = L.Class.extend({
},
unselect: function () {
- this._selected = -1;
- this._map._docLayer._selections.clearLayers();
+ this._selected = null;
this.update();
},
select: function (annotation) {
if (annotation) {
- this._selected = this.getIndexOf(annotation._data.id);
+ this._selected = annotation;
this.update();
}
},
update: function () {
this.layout();
- this._map._docLayer._selections.clearLayers();
- if (this._selected >= 0) {
- var rectangles = L.PolyUtil.rectanglesToPolygons(L.LOUtil.stringToRectangles(this._items[this._selected]._data.textRange), this._map._docLayer);
- if (rectangles.length > 0) {
- this._map._docLayer._selections.addLayer(L.polygon(rectangles, {
- pointerEvents: 'none',
- fillColor: '#43ACE8',
- fillOpacity: 0.25,
- weight: 2,
- opacity: 0.25
- }));
- }
- }
},
layoutUp: function (annotation, latLng, layoutBounds) {
@@ -161,27 +182,26 @@ L.AnnotationManager = L.Class.extend({
layout: function () {
var docRight = this._map.project(this._map.options.maxBounds.getNorthEast());
var topRight = docRight.add(L.point(this.options.marginX, this.options.marginY));
- var annotation, selected, layoutBounds, point, index;
- if (this._selected >= 0) {
- selected = this._items[this._selected];
- selected.setLatLng(this._map.unproject(L.point(topRight.x, selected._data.anchorPix.y)));
- layoutBounds = selected.getBounds();
+ var annotation, selectIndex, layoutBounds, point, index;
+ if (this._selected) {
+ selectIndex = this.getIndexOf(this._selected._data.id);
+ this._selected.setLatLng(this._map.unproject(L.point(docRight.x, this._selected._data.anchorPix.y)));
+ layoutBounds = this._selected.getBounds();
+ layoutBounds.min = layoutBounds.min.add([this.options.marginX, 0]);
+ layoutBounds.max = layoutBounds.max.add([this.options.marginX, 0]);
layoutBounds.extend(layoutBounds.min.subtract([0, this.options.marginY]));
layoutBounds.extend(layoutBounds.max.add([0, this.options.marginY]));
- for (index = this._selected - 1; index >= 0; index--) {
+ for (index = selectIndex - 1; index >= 0; index--) {
annotation = this._items[index];
this.layoutUp(annotation, this._map.unproject(L.point(topRight.x, annotation._data.anchorPix.y)), layoutBounds);
}
- for (index = this._selected + 1; index < this._items.length; index++) {
+ for (index = selectIndex + 1; index < this._items.length; index++) {
annotation = this._items[index];
this.layoutDown(annotation, this._map.unproject(L.point(topRight.x, annotation._data.anchorPix.y)), layoutBounds);
}
- if (selected._data.trackchange) {
- selected.setLatLng(this._map.unproject(L.point(docRight.x, selected._data.anchorPix.y)));
- } else {
- selected.setLatLng(this._map.unproject(selected._data.anchorPix));
+ if (!this._selected.isEdit()) {
+ this._selected.show();
}
- selected.show();
} else {
point = this._map.latLngToLayerPoint(this._map.unproject(topRight));
layoutBounds = L.bounds(point, point);
@@ -208,14 +228,14 @@ L.AnnotationManager = L.Class.extend({
},
modify: function (annotation) {
- this.select(annotation);
annotation.edit();
+ this.select(annotation);
annotation.focus();
},
reply: function (annotation) {
- this.select(annotation);
annotation.reply();
+ this.select(annotation);
annotation.focus();
},
@@ -256,30 +276,31 @@ L.AnnotationManager = L.Class.extend({
},
onACKComment: function (obj) {
+ var id;
var changetrack = obj.redline ? true : false;
var action = changetrack ? obj.redline.action : obj.comment.action;
if (action === 'Add') {
if (changetrack) {
- // transform change tracking index into an id
- obj.redline.id = 'change-' + obj.redline.index;
- obj.redline.anchorPos = L.LOUtil.stringToBounds(obj.redline.textRange);
- obj.redline.anchorPix = this._map._docLayer._twipsToPixels(obj.redline.anchorPos.min);
- obj.redline.trackchange = true;
- obj.redline.text = obj.redline.comment;
+ this.adjustRedLine(obj.redline);
this.add(obj.redline);
- this._map.focus();
} else {
- obj.comment.anchorPos = L.LOUtil.stringToBounds(obj.comment.anchorPos);
- obj.comment.anchorPix = this._map._docLayer._twipsToPixels(obj.comment.anchorPos.min);
+ this.adjustComment(obj.comment);
this.add(obj.comment);
+ }
+ if (this._selected && !this._selected.isEdit()) {
this._map.focus();
}
this.layout();
} else if (action === 'Remove') {
- var id = changetrack ? 'change-' + obj.redline.index : obj.comment.id;
- if (this.getItem(id)) {
+ id = changetrack ? 'change-' + obj.redline.index : obj.comment.id;
+ var removed = this.getItem(id);
+ if (removed) {
this._map.removeLayer(this.removeItem(id));
- this.unselect();
+ if (this._selected === removed) {
+ this.unselect();
+ } else {
+ this.layout();
+ }
}
} else if (action === 'Modify') {
id = changetrack ? 'change-' + obj.redline.index : obj.comment.id;
@@ -287,18 +308,13 @@ L.AnnotationManager = L.Class.extend({
if (modified) {
var modifiedObj;
if (changetrack) {
- obj.redline.anchorPos = L.LOUtil.stringToBounds(obj.redline.textRange);
- obj.redline.anchorPix = this._map._docLayer._twipsToPixels(obj.redline.anchorPos.min);
- obj.redline.text = obj.redline.comment;
- obj.redline.id = id;
- obj.redline.trackchange = true;
+ this.adjustRedLine(obj.redline);
modifiedObj = obj.redline;
} else {
- obj.comment.anchorPos = L.LOUtil.stringToBounds(obj.comment.anchorPos);
- obj.comment.anchorPix = this._map._docLayer._twipsToPixels(obj.comment.anchorPos.min);
+ this.adjustComment(obj.comment);
modifiedObj = obj.comment;
}
- modified._data = modifiedObj;
+ modified.setData(modifiedObj);
modified.update();
this.update();
}
diff --git a/loleaflet/src/layer/marker/Annotation.js b/loleaflet/src/layer/marker/Annotation.js
index a39d78f9..a1630a4a 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -32,6 +32,9 @@ L.Annotation = L.Layer.extend({
onRemove: function (map) {
map._panes.popupPane.removeChild(this._container);
+ if (this._data.textSelected) {
+ this._map.removeLayer(this._data.textSelected);
+ }
this._map = null;
},
@@ -43,6 +46,13 @@ L.Annotation = L.Layer.extend({
this._updatePosition();
},
+ setData: function (data) {
+ if (this._data.textSelected) {
+ this._map.removeLayer(this._data.textSelected);
+ }
+ this._data = data;
+ },
+
setLatLng: function (latlng) {
this._latlng = L.latLng(latlng);
if (this._map) {
@@ -61,6 +71,9 @@ L.Annotation = L.Layer.extend({
this._contentNode.style.display = '';
this._nodeModify.style.display = 'none';
this._nodeReply.style.display = 'none';
+ if (this._data.textSelected && !this._map.hasLayer(this._data.textSelected)) {
+ this._map.addLayer(this._data.textSelected);
+ }
},
hide: function () {
@@ -68,6 +81,9 @@ L.Annotation = L.Layer.extend({
this._contentNode.style.display = 'none';
this._nodeModify.style.display = 'none';
this._nodeReply.style.display = 'none';
+ if (this._data.textSelected && this._map.hasLayer(this._data.textSelected)) {
+ this._map.removeLayer(this._data.textSelected);
+ }
},
edit: function () {
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 11240be6..1c16e138 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -148,6 +148,15 @@ L.Map = L.Evented.extend({
// public methods that modify map state
+ getViewId: function (username) {
+ for (var id in this._viewInfo) {
+ if (this._viewInfo[id].username === username) {
+ return id;
+ }
+ }
+ return -1;
+ },
+
addView: function(viewInfo) {
this._viewInfo[viewInfo.id] = viewInfo;
this.fire('postMessage', {msgId: 'View_Added', args: {ViewId: viewInfo.id, UserId: viewInfo.userid, UserName: viewInfo.username, Color: viewInfo.color, ReadOnly: viewInfo.readonly}});
More information about the Libreoffice-commits
mailing list