loleaflet/dist/spreadsheet.css                |   25 ++++++++++++
 loleaflet/src/control/Control.ColumnHeader.js |   54 +++++++++++++++++++++++++-
 loleaflet/src/control/Control.RowHeader.js    |   36 ++++++++++++++++-
 3 files changed, 111 insertions(+), 4 deletions(-)

New commits:
commit 21a7c683cf3c16bc274ff1d2acf9f56656ee17c8
Author: Pranav Kant <pran...@collabora.com>
Date:   Fri Mar 11 20:16:15 2016 +0530

    loleaflet: Column and row headers are selectable now
    
    ... with multi-select shift and ctrl key behavior like desktop
    calc version.
    
    Change-Id: I574037f984ee1844773b0fb8c90c5bb1c079188b

diff --git a/loleaflet/dist/spreadsheet.css b/loleaflet/dist/spreadsheet.css
index 6240514..23df317 100644
--- a/loleaflet/dist/spreadsheet.css
+++ b/loleaflet/dist/spreadsheet.css
@@ -41,6 +41,7 @@
        border-right: 1px solid darkgrey;
        border-bottom: 1px solid darkgrey;
        background-color: lightgrey;
+       cursor: pointer;
 
        position: absolute;
        padding: 0px;
@@ -89,6 +90,18 @@
        padding: 0px;
        margin: 0px;
        height: 100%;
+       cursor: pointer;
+
+       /* Make the text unselectable for all browsers */
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+       -khtml-user-select: none;
+       -moz-user-select: none;
+       -ms-user-select: none;
+       }
+
+.spreadsheet-header-column:hover {
+       background-color: #DDD;
        }
 
 .spreadsheet-header-rows-container {
@@ -125,4 +138,16 @@
        padding: 0px;
        margin: 0px;
        height: 100%;
+       cursor: pointer;
+
+       /* Make the text unselectable for all browsers */
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+       -khtml-user-select: none;
+       -moz-user-select: none;
+       -ms-user-select: none;
+       }
+
+.spreadsheet-header-row:hover {
+        background-color: #DDD;
        }
diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index 0091893..9a0cd16 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -2,6 +2,7 @@
 * Control.ColumnHeader
 */
 
+/* global $ */
 L.Control.ColumnHeader = L.Control.extend({
        onAdd: function (map) {
                map.on('updatepermission', this._onUpdatePermission, this);
@@ -15,7 +16,8 @@ L.Control.ColumnHeader = L.Control.extend({
                this._map.on('updateviewport', this.setViewPort, this);
                this._map.on('viewrowcolumnheaders', this.viewRowColumnHeaders, 
this);
                var docContainer = this._map.options.documentContainer;
-               L.DomUtil.create('div', 'spreadsheet-header-corner', 
docContainer.parentElement);
+               var cornerHeader = L.DomUtil.create('div', 
'spreadsheet-header-corner', docContainer.parentElement);
+               L.DomEvent.addListener(cornerHeader, 'click', 
this._onCornerHeaderClick, this);
                var headersContainer = L.DomUtil.create('div', 
'spreadsheet-header-columns-container', docContainer.parentElement);
                this._columns = L.DomUtil.create('div', 
'spreadsheet-header-columns', headersContainer);
 
@@ -71,7 +73,50 @@ L.Control.ColumnHeader = L.Control.extend({
                        else {
                                L.DomUtil.setStyle(text, 'width', width);
                        }
+
+                       L.DomEvent.addListener(text, 'click', 
this._onColumnHeaderClick, this);
+               }
+       },
+
+       _colAlphaToNumber: function(alpha) {
+               var res = 0;
+               var offset = 'A'.charCodeAt();
+               for (var i = 0; i < alpha.length; i++) {
+                       var chr = alpha[alpha.length - i - 1];
+                       res += (chr.charCodeAt() - offset + 1) * Math.pow(26, 
i);
                }
+
+               return res;
+       },
+
+       _onColumnHeaderClick: function (e) {
+               var colAlpha = 
e.target.getAttribute('rel').split('spreadsheet-column-')[1];
+               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',
+                               value: parseInt(colNumber - 1)
+                       },
+                       Modifier: {
+                               type: 'unsigned short',
+                               value: modifier
+                       }
+               };
+
+               this._map.sendUnoCommand('.uno:SelectColumn ', command);
+       },
+
+       _onCornerHeaderClick: function() {
+               this._map.sendUnoCommand('.uno:SelectAll');
        },
 
        _onUpdatePermission: function () {
diff --git a/loleaflet/src/control/Control.RowHeader.js 
b/loleaflet/src/control/Control.RowHeader.js
index b7a8e72..fff931a 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -2,6 +2,7 @@
  * L.Control.RowHeader
 */
 
+/* global $ */
 L.Control.RowHeader = L.Control.extend({
        onAdd: function (map) {
                map.on('updatepermission', this._onUpdatePermission, this);
@@ -70,7 +71,34 @@ L.Control.RowHeader = L.Control.extend({
                                L.DomUtil.setStyle(text, 'line-height', height);
                                L.DomUtil.setStyle(text, 'height', height);
                        }
+
+                       L.DomEvent.addListener(text, 'click', 
this._onRowHeaderClick, this);
+               }
+       },
+
+       _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;
+               }
+
+               var command = {
+                       Row: {
+                               type: 'long',
+                               value: parseInt(row - 1)
+                       },
+                       Modifier: {
+                               type: 'unsigned short',
+                               value: modifier
+                       }
+               };
+
+               this._map.sendUnoCommand('.uno:SelectRow ', command);
        },
 
        _onUpdatePermission: function () {
commit bfb8b61f083bc8a6e312a3842e0cc5ed7a3cfc9f
Author: Pranav Kant <pran...@collabora.com>
Date:   Fri Mar 4 13:15:36 2016 +0530

    loleaflet: Fix JS errors
    
    Change-Id: I9740e0a223c43449ce9f40f91b8c90250d1b7560

diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index eababcb..0091893 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -65,10 +65,12 @@ L.Control.ColumnHeader = L.Control.extend({
                        text.setAttribute('rel', 'spreadsheet-column-' + 
content); // for easy addressing
                        text.innerHTML = content;
                        width = Math.round(converter.call(context, twip).x) - 1 
+ 'px';
-                       if (width === '-1px')
+                       if (width === '-1px') {
                                L.DomUtil.setStyle(text, 'display', 'none');
-                       else
+                       }
+                       else {
                                L.DomUtil.setStyle(text, 'width', width);
+                       }
                }
        },
 
commit d7854df3bd638d51e7aa1d38f5b469680151c108
Author: Miklos Vajna <vmik...@collabora.co.uk>
Date:   Tue Mar 1 11:54:40 2016 +0100

    ccu#1573 loleaflet: hide row headers of hidden rows
    
    This is the row equivalent of commit
    d14fccb67f558f4d0b4612befa70c768956e0e92 (hide column headers of hidden
    columns, 2016-02-26).

diff --git a/loleaflet/src/control/Control.RowHeader.js 
b/loleaflet/src/control/Control.RowHeader.js
index b69bc02..b7a8e72 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -64,8 +64,12 @@ L.Control.RowHeader = L.Control.extend({
                        text.setAttribute('rel', 'spreadsheet-row-' + content); 
// for easy addressing
                        text.innerHTML = content;
                        height = Math.round(converter.call(context, twip).y) - 
1 + 'px';
-                       L.DomUtil.setStyle(text, 'line-height', height);
-                       L.DomUtil.setStyle(text, 'height', height);
+                       if (height === '-1px') {
+                               L.DomUtil.setStyle(text, 'display', 'none');
+                       } else {
+                               L.DomUtil.setStyle(text, 'line-height', height);
+                               L.DomUtil.setStyle(text, 'height', height);
+                       }
                }
        },
 
commit 6e49780fedc7718e1abc4f34ea71d3ae77ccbb38
Author: Andras Timar <andras.ti...@collabora.com>
Date:   Fri Feb 26 15:31:18 2016 +0100

    hide column headers of hidden columns

diff --git a/loleaflet/src/control/Control.ColumnHeader.js 
b/loleaflet/src/control/Control.ColumnHeader.js
index ab640ce..eababcb 100644
--- a/loleaflet/src/control/Control.ColumnHeader.js
+++ b/loleaflet/src/control/Control.ColumnHeader.js
@@ -65,7 +65,10 @@ L.Control.ColumnHeader = L.Control.extend({
                        text.setAttribute('rel', 'spreadsheet-column-' + 
content); // for easy addressing
                        text.innerHTML = content;
                        width = Math.round(converter.call(context, twip).x) - 1 
+ 'px';
-                       L.DomUtil.setStyle(text, 'width', width);
+                       if (width === '-1px')
+                               L.DomUtil.setStyle(text, 'display', 'none');
+                       else
+                               L.DomUtil.setStyle(text, 'width', width);
                }
        },
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to