[Libreoffice-commits] online.git: loleaflet/src
Pranav Kant
pranavk at collabora.com
Fri May 13 10:54:01 UTC 2016
loleaflet/src/control/Control.ColumnHeader.js | 60 +++++++++++++++++++++-----
loleaflet/src/control/Control.RowHeader.js | 60 +++++++++++++++++++++-----
2 files changed, 99 insertions(+), 21 deletions(-)
New commits:
commit b2907626bafd3615d8e7a8c1b7cb9361ad16dccd
Author: Pranav Kant <pranavk at collabora.com>
Date: Fri May 13 16:21:44 2016 +0530
loleaflet: Add/delete row/column feature
Change-Id: I6dfd68029b5746d6c2907f4195f4647c63387c55
diff --git a/loleaflet/src/control/Control.ColumnHeader.js b/loleaflet/src/control/Control.ColumnHeader.js
index d464e90..c928e93 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -24,6 +24,41 @@ L.Control.ColumnHeader = L.Control.extend({
this._position = 0;
this._totalWidth = 0;
this._viewPort = 0;
+
+ var colHeaderObj = this;
+ $.contextMenu({
+ selector: '.spreadsheet-header-column',
+ items: {
+ 'insertcolbefore': {
+ name: _('Insert column before'),
+ callback: function(key, options) {
+ var colAlpha = options.$trigger.attr('rel').split('spreadsheet-column-')[1];
+ colHeaderObj.insertColumn.call(colHeaderObj, colAlpha);
+ }
+ },
+ 'deleteselectedcol': {
+ name: _('Delete column'),
+ callback: function(key, options) {
+ var colAlpha = options.$trigger.attr('rel').split('spreadsheet-column-')[1];
+ colHeaderObj.deleteColumn.call(colHeaderObj, colAlpha);
+ }
+ }
+ },
+ zIndex: 10
+ });
+ },
+
+ insertColumn: function(colAlpha) {
+ // First select the corresponding column because
+ // .uno:InsertColumn doesn't accept any column number
+ // as argument and just inserts before the selected column
+ this._selectColumn(colAlpha, 0);
+ this._map.sendUnoCommand('.uno:InsertColumns');
+ },
+
+ deleteColumn: function(colAlpha) {
+ this._selectColumn(colAlpha, 0);
+ this._map.sendUnoCommand('.uno:DeleteColumns');
},
clearColumns : function () {
@@ -89,18 +124,9 @@ L.Control.ColumnHeader = L.Control.extend({
return res;
},
- _onColumnHeaderClick: function (e) {
- var colAlpha = e.target.getAttribute('rel').split('spreadsheet-column-')[1];
+ _selectColumn: function(colAlpha, modifier) {
var colNumber = this._colAlphaToNumber(colAlpha);
- var modifier = 0;
- if (e.shiftKey) {
- modifier += this._map.keyboard.keyModifier.shift;
- }
- if (e.ctrlKey) {
- modifier += this._map.keyboard.keyModifier.ctrl;
- }
-
var command = {
Col: {
type: 'unsigned short',
@@ -115,6 +141,20 @@ L.Control.ColumnHeader = L.Control.extend({
this._map.sendUnoCommand('.uno:SelectColumn ', command);
},
+ _onColumnHeaderClick: function (e) {
+ var colAlpha = e.target.getAttribute('rel').split('spreadsheet-column-')[1];
+
+ var modifier = 0;
+ if (e.shiftKey) {
+ modifier += this._map.keyboard.keyModifier.shift;
+ }
+ if (e.ctrlKey) {
+ modifier += this._map.keyboard.keyModifier.ctrl;
+ }
+
+ this._selectColumn(colAlpha, modifier);
+ },
+
_onCornerHeaderClick: function() {
this._map.sendUnoCommand('.uno:SelectAll');
},
diff --git a/loleaflet/src/control/Control.RowHeader.js b/loleaflet/src/control/Control.RowHeader.js
index a99dac5..2285839 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -22,6 +22,41 @@ L.Control.RowHeader = L.Control.extend({
this._position = 0;
this._totalHeight = 0;
this._viewPort = 0;
+
+ var rowHeaderObj = this;
+ $.contextMenu({
+ selector: '.spreadsheet-header-row',
+ items: {
+ 'insertrowabove': {
+ name: _('Insert row above'),
+ callback: function(key, options) {
+ var row = parseInt(options.$trigger.attr('rel').split('spreadsheet-row-')[1]);
+ rowHeaderObj.insertRow.call(rowHeaderObj, row);
+ }
+ },
+ 'deleteselectedrow': {
+ name: _('Delete row'),
+ callback: function(key, options) {
+ var row = parseInt(options.$trigger.attr('rel').split('spreadsheet-row-')[1]);
+ rowHeaderObj.deleteRow.call(rowHeaderObj, row);
+ }
+ }
+ },
+ zIndex: 10
+ });
+ },
+
+ insertRow: function(row) {
+ // First select the corresponding row because
+ // .uno:InsertRows doesn't accept any row number
+ // as argument and just inserts before the selected row
+ this._selectRow(row, 0);
+ this._map.sendUnoCommand('.uno:InsertRows');
+ },
+
+ deleteRow: function(row) {
+ this._selectRow(row, 0);
+ this._map.sendUnoCommand('.uno:DeleteRows');
},
clearRows: function () {
@@ -76,17 +111,7 @@ L.Control.RowHeader = L.Control.extend({
}
},
- _onRowHeaderClick: function (e) {
- var row = e.target.getAttribute('rel').split('spreadsheet-row-')[1];
-
- var modifier = 0;
- if (e.shiftKey) {
- modifier += this._map.keyboard.keyModifier.shift;
- }
- if (e.ctrlKey) {
- modifier += this._map.keyboard.keyModifier.ctrl;
- }
-
+ _selectRow: function(row, modifier) {
var command = {
Row: {
type: 'long',
@@ -101,6 +126,19 @@ L.Control.RowHeader = L.Control.extend({
this._map.sendUnoCommand('.uno:SelectRow ', command);
},
+ _onRowHeaderClick: function (e) {
+ var row = e.target.getAttribute('rel').split('spreadsheet-row-')[1];
+ var modifier = 0;
+ if (e.shiftKey) {
+ modifier += this._map.keyboard.keyModifier.shift;
+ }
+ if (e.ctrlKey) {
+ modifier += this._map.keyboard.keyModifier.ctrl;
+ }
+
+ this._selectRow(row, modifier);
+ },
+
_onUpdatePermission: function () {
if (this._map.getDocType() === 'spreadsheet' && !this._initialized) {
this._initialize();
More information about the Libreoffice-commits
mailing list