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 <pran...@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(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits