[Libreoffice-commits] online.git: 4 commits - loleaflet/build loleaflet/debug loleaflet/dist loleaflet/src

Mihai Varga mihai.varga at collabora.com
Tue May 26 10:56:54 PDT 2015


 loleaflet/build/deps.js                               |    7 ++
 loleaflet/debug/document/document_simple_example.html |    1 
 loleaflet/dist/leaflet.css                            |    9 +++
 loleaflet/src/control/Control.EditView.js             |   44 ++++++++++++++++++
 loleaflet/src/layer/tile/TileLayer.js                 |   17 ++++++
 5 files changed, 77 insertions(+), 1 deletion(-)

New commits:
commit bd642c3d370aa4b5507fc28f5eaba819894bc60a
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue May 26 20:56:08 2015 +0300

    Make the view/edit text in the control unselectable

diff --git a/loleaflet/dist/leaflet.css b/loleaflet/dist/leaflet.css
index 1729efb..cd63ccd 100644
--- a/loleaflet/dist/leaflet.css
+++ b/loleaflet/dist/leaflet.css
@@ -295,6 +295,15 @@
 	font-size: 24px;
 	}
 
+/* View / Edit mode control */
+.leaflet-control-editviewswitch {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+	}
 
 /* layers control */
 
commit 22232e070fa11144a1159670aa27ab0211a4fd68
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue May 26 20:51:19 2015 +0300

    Dragging will be handled in the js code

diff --git a/loleaflet/debug/document/document_simple_example.html b/loleaflet/debug/document/document_simple_example.html
index 9bbfd62..9f49456 100644
--- a/loleaflet/debug/document/document_simple_example.html
+++ b/loleaflet/debug/document/document_simple_example.html
@@ -63,7 +63,6 @@
             minZoom: 1,
             maxZoom: 20,
             server: host,
-            dragging: false,
             doubleClickZoom: false
             });
 
commit 77b8e0d1264179fc98c35ec300cdae5f9ec72f85
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue May 26 20:48:59 2015 +0300

    Edit/View switching handler

diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index db4f5c7..acbe575 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -63,12 +63,15 @@ L.TileLayer = L.GridLayer.extend({
 			this._map.socket.send('load url=' + this.options.doc);
 			this._map.socket.send('status');
 		}
+		this._map.dragging.disable();
 		this._map._scrollContainer.onscroll = L.bind(this._onScroll, this);
 		this._map.on('zoomend resize', this._updateScrollOffset, this);
 		this._map.on('clearselection', this._clearSelections, this);
 		this._map.on('prevpart nextpart', this._onSwitchPart, this);
 		this._map.on('mousedown mouseup mouseover mouseout mousemove dblclick',
 				this._onMouseEvent, this);
+		this._map.on('viewmode editmode', this._updateEditViewMode, this);
+		this._map.on('drag', this._updateScrollOffset, this);
 	},
 
 	setUrl: function (url, noRedraw) {
@@ -476,6 +479,20 @@ L.TileLayer = L.GridLayer.extend({
 		}
 		this._update();
 		this._pruneTiles();
+	},
+
+	_updateEditViewMode: function (e) {
+		if (e.type === 'viewmode') {
+			this._map.dragging.enable();
+			// disable all user interaction, will need to add keyboard too
+			this._map.off('mousedown mouseup mouseover mouseout mousemove dblclick',
+					this._onMouseEvent, this);
+		}
+		else if (e.type === 'editmode') {
+			this._map.dragging.disable();
+			this._map.on('mousedown mouseup mouseover mouseout mousemove dblclick',
+					this._onMouseEvent, this);
+		}
 	}
 });
 
commit 7b79f0edd5fd6ed9c0eac158f2f95be1c9094378
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue May 26 20:47:45 2015 +0300

    Control for switching between viewing and editing mode

diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index d1d4fc3..b3e838d 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -220,6 +220,13 @@ var deps = {
 		desc: 'Parts control with two buttons (previous / next).'
 	},
 
+	ControlEditViewSwitch: {
+		src: ['control/Control.js',
+		      'control/Control.EditView.js'],
+		heading: 'Controls',
+		desc: 'Switches from viewing to editing mode and backwards'
+	},
+
 	ControlAttrib: {
 		src: ['control/Control.js',
 		      'control/Control.Attribution.js'],
diff --git a/loleaflet/src/control/Control.EditView.js b/loleaflet/src/control/Control.EditView.js
new file mode 100644
index 0000000..248c341
--- /dev/null
+++ b/loleaflet/src/control/Control.EditView.js
@@ -0,0 +1,44 @@
+/*
+ * L.Control.EditView is used for switching between viewing and editing mode
+ */
+
+L.Control.EditViewSwitch = L.Control.extend({
+	options: {
+		position: 'topleft',
+	},
+
+	onAdd: function (map) {
+		var partName = 'leaflet-control-editviewswitch',
+		    container = L.DomUtil.create('label', partName + ' leaflet-bar');
+
+        this._checkBox = L.DomUtil.create('input', 'editview-cb', container);
+        this._checkBox.type = 'checkbox';
+        L.DomEvent.on(this._checkBox, 'change', this._onChange, this);
+		container.appendChild(document.createTextNode('View only'));
+		return container;
+	},
+
+    _onChange: function() {
+        if (this._checkBox.checked) {
+            this._map.fire('viewmode');
+        }
+        else {
+            this._map.fire('editmode');
+        }
+    }
+});
+
+L.Map.mergeOptions({
+	editViewSwitchControl: true
+});
+
+L.Map.addInitHook(function () {
+	if (this.options.editViewSwitchControl) {
+		this.editViewSwitchControl = new L.Control.EditViewSwitch();
+		this.addControl(this.editViewSwitchControl);
+	}
+});
+
+L.control.editViewSwitch = function (options) {
+	return new L.Control.EditViewSwitch(options);
+};


More information about the Libreoffice-commits mailing list