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

Henry Castro hcastro at collabora.com
Tue Aug 9 19:14:51 UTC 2016


 loleaflet/src/control/Control.ColumnHeader.js |   30 ++++++++++++++++++++------
 loleaflet/src/control/Control.Header.js       |   12 +++-------
 loleaflet/src/control/Control.RowHeader.js    |   30 ++++++++++++++++++++------
 3 files changed, 52 insertions(+), 20 deletions(-)

New commits:
commit 5c75f31305319070b059cccd1a4d65a6ba1fba2b
Author: Henry Castro <hcastro at collabora.com>
Date:   Tue Aug 9 15:13:51 2016 -0400

    loleaflet: add Vertical/Horizontal line when dragging Column/Row

diff --git a/loleaflet/src/control/Control.ColumnHeader.js b/loleaflet/src/control/Control.ColumnHeader.js
index cd0460f..525d881 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -170,15 +170,33 @@ L.Control.ColumnHeader = L.Control.Header.extend({
 		this._map.sendUnoCommand('.uno:SelectAll');
 	},
 
-	onDragStart: function (item, start, end) {
-		// add vertical line
+	_getVertLatLng: function (e) {
+		var drag = this._map.mouseEventToContainerPoint(e);
+		return [
+			this._map.containerPointToLatLng(new L.Point(drag.x, 0)),
+			this._map.containerPointToLatLng(new L.Point(drag.x, this._map.getSize().y))
+		];
 	},
 
-	onDragMove: function (item, start, end) {
-		// move vertical line
+	onDragStart: function (item, start, e) {
+		if (!this._vertLine) {
+			this._vertLine = L.polyline(this._getVertLatLng(e), {color: 'darkblue', weight: 1});
+		}
+		else {
+			this._vertLine.setLatLngs(this._getVertLatLng(e));
+		}
+
+		this._map.addLayer(this._vertLine);
+	},
+
+	onDragMove: function (item, start, e) {
+		if (this._vertLine) {
+			this._vertLine.setLatLngs(this._getVertLatLng(e));
+		}
 	},
 
-	onDragEnd: function (item, start, end) {
+	onDragEnd: function (item, start, e) {
+		var end = new L.Point(e.clientX, e.clientY);
 		var distance = this._map._docLayer._pixelsToTwips(end.subtract(start));
 
 		if (distance.x > 0 && item.width != distance.x) {
@@ -196,7 +214,7 @@ L.Control.ColumnHeader = L.Control.Header.extend({
 			this._map.sendUnoCommand('.uno:ColumnWidth', command);
 		}
 
-		// remove vertical line
+		this._map.removeLayer(this._vertLine);
 	},
 
 	_onUpdatePermission: function (e) {
diff --git a/loleaflet/src/control/Control.Header.js b/loleaflet/src/control/Control.Header.js
index 58856f5..753fc52 100644
--- a/loleaflet/src/control/Control.Header.js
+++ b/loleaflet/src/control/Control.Header.js
@@ -28,13 +28,11 @@ L.Control.Header = L.Control.extend({
 		var rectangle = target.parentNode.getBoundingClientRect();
 		this._item = target;
 		this._start = new L.Point(rectangle.left, rectangle.top);
-		this._end = new L.Point(e.clientX, e.clientY);
 
-		this.onDragStart(this.item, this._start, this._end);
+		this.onDragStart(this.item, this._start, e);
 	},
 
 	_onMouseMove: function (e) {
-		this._end = new L.Point(e.clientX, e.clientY);
 		this._dragging = true;
 
 		var target = e.target || e.srcElement;
@@ -48,12 +46,10 @@ L.Control.Header = L.Control.extend({
 
 		L.DomEvent.preventDefault(e);
 
-		this.onDragMove(this._item, this._start, this._end);
+		this.onDragMove(this._item, this._start, e);
 	},
 
 	_onMouseUp: function (e) {
-		this._end = new L.Point(e.clientX, e.clientY);
-
 		if (this._target) {
 			this._target.style.cursor = this._oldCursor;
 		}
@@ -64,8 +60,8 @@ L.Control.Header = L.Control.extend({
 		L.DomUtil.enableImageDrag();
 		L.DomUtil.enableTextSelection();
 
-		this.onDragEnd(this._item, this._start, this._end);
-		this._target = this._cursor = this._item = this._start = this._end = null;
+		this.onDragEnd(this._item, this._start, e);
+		this._target = this._cursor = this._item = this._start = null;
 		this._dragging = false;
 	},
 
diff --git a/loleaflet/src/control/Control.RowHeader.js b/loleaflet/src/control/Control.RowHeader.js
index cef7482..2e9d4a4 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -151,15 +151,33 @@ L.Control.RowHeader = L.Control.Header.extend({
 		this._selectRow(row, modifier);
 	},
 
-	onDragStart: function (item, start, end) {
-		// add horizontal line
+	_getHorzLatLng: function (e) {
+		var drag = this._map.mouseEventToContainerPoint(e);
+		return [
+			this._map.containerPointToLatLng(new L.Point(0, drag.y)),
+			this._map.containerPointToLatLng(new L.Point(this._map.getSize().x, drag.y))
+		];
 	},
 
-	onDragMove: function (item, start, end) {
-		// move horizontal line
+	onDragStart: function (item, start, e) {
+		if (!this._horzLine) {
+			this._horzLine = L.polyline(this._getHorzLatLng(e), {color: 'darkblue', weight: 1});
+		}
+		else {
+			this._horzLine.setLatLngs(this._getHorzLatLng(e));
+		}
+
+		this._map.addLayer(this._horzLine);
+	},
+
+	onDragMove: function (item, start, e) {
+		if (this._horzLine) {
+			this._horzLine.setLatLngs(this._getHorzLatLng(e));
+		}
 	},
 
-	onDragEnd: function (item, start, end) {
+	onDragEnd: function (item, start, e) {
+		var end = new L.Point(e.clientX, e.clientY);
 		var distance = this._map._docLayer._pixelsToTwips(end.subtract(start));
 
 		if (distance.y > 0 && item.height != distance.y) {
@@ -177,7 +195,7 @@ L.Control.RowHeader = L.Control.Header.extend({
 			this._map.sendUnoCommand('.uno:RowHeight', command);
 		}
 
-		// remove horizontal line
+		this._map.removeLayer(this._horzLine);
 	},
 
 	_onUpdatePermission: function (e) {


More information about the Libreoffice-commits mailing list