loleaflet/src/control/Control.Menubar.js     |    1 
 loleaflet/src/layer/AnnotationManager.js     |    9 ++++++--
 loleaflet/src/layer/tile/ImpressTileLayer.js |   28 +++++++++++++++++++++++++++
 loleaflet/src/layer/tile/WriterTileLayer.js  |    6 +++--
 4 files changed, 40 insertions(+), 4 deletions(-)

New commits:
commit 42823172a27db2e40d050eda6d5f44795d6ffd21
Author: Henry Castro <hcas...@collabora.com>
Date:   Sun Mar 5 16:25:26 2017 -0400

    loleaflet: insert Impress annotations
    
    Impress does not send anchor position property of the annotation object, so 
tweak the code
    to set the cursor position
    
    Change-Id: I12e365ed600a53b5a2c1bcb0ef52dec078a258f2

diff --git a/loleaflet/src/control/Control.Menubar.js 
b/loleaflet/src/control/Control.Menubar.js
index d066e66..da2fbee 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -200,6 +200,7 @@ L.Control.Menubar = L.Control.extend({
                        },
                        {name: _('Insert'), type: 'menu', menu: [
                                {name: _('Image'), id: 'insertgraphic', type: 
'action'},
+                               {name: _('Comment...'), id: 'insertcomment', 
type: 'action'},
                                {type: 'separator'},
                                {name: _('Special character...'), id: 
'specialcharacter', type: 'action'}]
                        },
diff --git a/loleaflet/src/layer/AnnotationManager.js 
b/loleaflet/src/layer/AnnotationManager.js
index 3f4f431..c816700 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -53,6 +53,9 @@ L.AnnotationManager = L.Class.extend({
                this.clear();
                for (var index in comments) {
                        comment = comments[index];
+                       if (!comment.anchorPos) {
+                               continue;
+                       }
                        comment.anchorPos = 
L.LOUtil.stringToPoint(comment.anchorPos);
                        
this._items.push(L.annotation(this._map.options.maxBounds.getSouthEast(), 
comment).addTo(this._map));
                }
@@ -194,10 +197,11 @@ L.AnnotationManager = L.Class.extend({
                var obj = JSON.parse(textMsg.substring('comment:'.length + 1));
 
                if (obj.comment.action === 'Add') {
-                       obj.comment.anchorPos = 
L.LOUtil.stringToPoint(obj.comment.anchorPos);
                        var added = this.getItem('new');
                        if (added) {
                                delete obj.comment.action;
+                               obj.comment.anchorPos = obj.comment.anchorPos ? 
L.LOUtil.stringToPoint(obj.comment.anchorPos) :
+                                       added._data.anchorPos;
                                added._data = obj.comment;
                                this._items.sort(function(a, b) {
                                        return Math.abs(a._data.anchorPos.y) - 
Math.abs(b._data.anchorPos.y) ||
@@ -215,9 +219,10 @@ L.AnnotationManager = L.Class.extend({
                                this.remove(obj.comment.id);
                        }
                } else if (obj.comment.action === 'Modify') {
-                       obj.comment.anchorPos = 
L.LOUtil.stringToPoint(obj.comment.anchorPos);
                        var modified = this.getItem(obj.comment.id);
                        if (modified) {
+                               obj.comment.anchorPos = obj.comment.anchorPos ? 
L.LOUtil.stringToPoint(obj.comment.anchorPos) :
+                                       modified._data.anchorPos;
                                modified._data = obj.comment;
                                modified.update();
                                this.update();
diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js 
b/loleaflet/src/layer/tile/ImpressTileLayer.js
index e384d5f..0c1b267 100644
--- a/loleaflet/src/layer/tile/ImpressTileLayer.js
+++ b/loleaflet/src/layer/tile/ImpressTileLayer.js
@@ -6,10 +6,38 @@
 L.ImpressTileLayer = L.TileLayer.extend({
 
        newAnnotation: function (comment) {
+               if (!comment.anchorPos && this._isCursorVisible) {
+                       comment.anchorPos = 
this._latLngToTwips(this._visibleCursor.getNorthWest());
+               }
+               if (comment.anchorPos) {
+                       this._annotations.add(comment, true);
+               }
        },
 
        onAdd: function (map) {
                L.TileLayer.prototype.onAdd.call(this, map);
+               this._annotations = L.annotationManager(map);
+       },
+
+       _onCommandValuesMsg: function (textMsg) {
+               var values = 
JSON.parse(textMsg.substring(textMsg.indexOf('{')));
+               if (!values) {
+                       return;
+               }
+
+               if (values.comments) {
+                       this._annotations.fill(values.comments);
+               } else {
+                       L.TileLayer.prototype._onCommandValuesMsg.call(this, 
textMsg);
+               }
+       },
+
+       _onMessage: function (textMsg, img) {
+               if (textMsg.startsWith('comment:')) {
+                       this._annotations.onACKComment(textMsg);
+               } else {
+                       L.TileLayer.prototype._onMessage.call(this, textMsg, 
img);
+               }
        },
 
        _onInvalidateTilesMsg: function (textMsg) {
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js 
b/loleaflet/src/layer/tile/WriterTileLayer.js
index 114ee76..4e78168 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -6,10 +6,12 @@
 L.WriterTileLayer = L.TileLayer.extend({
 
        newAnnotation: function (comment) {
-               if (!comment.anchorPos) {
+               if (!comment.anchorPos && this._isCursorVisible) {
                        comment.anchorPos = 
this._latLngToTwips(this._visibleCursor.getNorthWest());
                }
-               this._annotations.add(comment, true);
+               if (comment.anchorPos) {
+                       this._annotations.add(comment, true);
+               }
        },
 
        onAdd: function (map) {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to