loleaflet/src/control/Ruler.js |   44 +++++++++++++++++++++++++++--------------
 loleaflet/src/map/Map.js       |    3 +-
 2 files changed, 31 insertions(+), 16 deletions(-)

New commits:
commit a508d5b490fa246174ed9754cb93ecaef3880452
Author: Aditya Dewan <[email protected]>
Date:   Wed Dec 6 20:05:44 2017 +0530

    Disable interactive ruler for readonly docs
    
    Change-Id: I7982387d5dd913dd5e4ca5ff5d188ad0eed00fa6
    Reviewed-on: https://gerrit.libreoffice.org/45962
    Reviewed-by: pranavk <[email protected]>
    Tested-by: pranavk <[email protected]>

diff --git a/loleaflet/src/control/Ruler.js b/loleaflet/src/control/Ruler.js
index 22453cee..68ccbfd0 100644
--- a/loleaflet/src/control/Ruler.js
+++ b/loleaflet/src/control/Ruler.js
@@ -24,6 +24,7 @@ L.Control.Ruler = L.Control.extend({
                map.on('rulerupdate', this._updateOptions, this);
                map.on('docsize', this._updatePaintTimer, this);
                map.on('scrolloffset resize', this._fixOffset, this);
+               map.on('updatepermission', this._changeInteractions, this);
                this._map = map;
 
                return this._initLayout();
@@ -34,6 +35,22 @@ L.Control.Ruler = L.Control.extend({
                this.options.timer = setTimeout(L.bind(this._updateBreakPoints, 
this), 300);
        },
 
+       _changeInteractions: function(e) {
+               if (e.perm === 'edit') {
+                       this._lMarginDrag.style.cursor = 'e-resize';
+                       this._rMarginDrag.style.cursor = 'w-resize';
+
+                       L.DomEvent.on(this._rMarginDrag, 'mousedown', 
this._initiateDrag, this);
+                       L.DomEvent.on(this._lMarginDrag, 'mousedown', 
this._initiateDrag, this);
+               }
+               else {
+                       this._lMarginDrag.style.cursor = 'default';
+                       this._rMarginDrag.style.cursor = 'default';
+
+                       L.DomEvent.off(this._rMarginDrag, 'mousedown', 
this._initiateDrag, this);
+                       L.DomEvent.off(this._lMarginDrag, 'mousedown', 
this._initiateDrag, this);
+               }
+       },
 
        _initLayout: function() {
                this._rWrapper = L.DomUtil.create('div', 'loleaflet-ruler 
leaflet-bar leaflet-control leaflet-control-custom');
@@ -112,28 +129,25 @@ L.Control.Ruler = L.Control.extend({
                        this._lMarginMarker = L.DomUtil.create('div', 
classMargin + ' ' + leftComp, this._rFace);
                        this._rMarginMarker =  L.DomUtil.create('div', 
classMargin + ' ' + rightComp, this._rFace);
 
-                       if (this.options.interactive) {
-                               this._lMarginDrag = L.DomUtil.create('div', 
classDraggable + ' ' + leftComp, this._rMarginWrapper);
-                               this._lToolTip = L.DomUtil.create('div', 
lToolTip, this._lMarginDrag)
-                               this._rMarginDrag = L.DomUtil.create('div', 
classDraggable + ' ' + rightComp, this._rMarginWrapper);
-                               this._rToolTip = L.DomUtil.create('div', 
rToolTip, this._rMarginDrag)
-                               this._lMarginDrag.style.cursor = 'e-resize';
-                               this._rMarginDrag.style.cursor = 'w-resize';
-                               this._lMarginDrag.title = leftMarginStr;
-                               this._rMarginDrag.title = rightMarginStr;
-                       }
+                       this._lMarginDrag = L.DomUtil.create('div', 
classDraggable + ' ' + leftComp, this._rMarginWrapper);
+                       this._lToolTip = L.DomUtil.create('div', lToolTip, 
this._lMarginDrag)
+                       this._rMarginDrag = L.DomUtil.create('div', 
classDraggable + ' ' + rightComp, this._rMarginWrapper);
+                       this._rToolTip = L.DomUtil.create('div', rToolTip, 
this._rMarginDrag)
+                       this._lMarginDrag.title = leftMarginStr;
+                       this._rMarginDrag.title = rightMarginStr;
                }
 
                this._lMarginMarker.style.width = 
(DraggableConvertRatio*lMargin) + 'px';
                this._rMarginMarker.style.width = 
(DraggableConvertRatio*rMargin) + 'px';
+               this._lMarginDrag.style.width = (DraggableConvertRatio*lMargin) 
+ 'px';
+               this._rMarginDrag.style.width = (DraggableConvertRatio*rMargin) 
+ 'px';
 
                if (this.options.interactive) {
-                       this._lMarginDrag.style.width = 
(DraggableConvertRatio*lMargin) + 'px';
-                       this._rMarginDrag.style.width = 
(DraggableConvertRatio*rMargin) + 'px';
+                       this._changeInteractions({perm:'edit'});
+               }
+               else {
+                       this._changeInteractions({perm:'readonly'});
                }
-
-               L.DomEvent.on(this._rMarginDrag, 'mousedown', 
this._initiateDrag, this);
-               L.DomEvent.on(this._lMarginDrag, 'mousedown', 
this._initiateDrag, this);
        },
 
        _fixOffset: function() {
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index f4696cb9..6c5d8f71 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -119,7 +119,8 @@ L.Map = L.Evented.extend({
                                this._fireInitComplete('doclayerinit');
                        }
                        if (this._docLayer._docType == 'text') {
-                               
L.control.ruler({position:'topleft'}).addTo(this);
+                               var interactiveRuler = this._permission === 
'edit' ? true : false;
+                               L.control.ruler({position:'topleft', 
interactive:interactiveRuler}).addTo(this);
                        }
                });
                this.on('updatetoolbarcommandvalues', function(e) {
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to