loleaflet/dist/toolbar/toolbar.js |   90 ++++++++++++++++++++++++++++----------
 1 file changed, 67 insertions(+), 23 deletions(-)

New commits:
commit bec0781550bb5e0798971ee631bbdb4967867d3c
Author: Jan Holesovsky <ke...@collabora.com>
Date:   Tue Jun 19 13:53:56 2018 +0200

    borders: Send .uno:SetBorderStyle with the appropriate params to the core.
    
    Change-Id: I703dda35d3b412ff60602a6802b260d8709762fd
    Reviewed-on: https://gerrit.libreoffice.org/56093
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loleaflet/dist/toolbar/toolbar.js 
b/loleaflet/dist/toolbar/toolbar.js
index f47b120b9..ac547d55e 100644
--- a/loleaflet/dist/toolbar/toolbar.js
+++ b/loleaflet/dist/toolbar/toolbar.js
@@ -241,16 +241,62 @@ function onClick(e, id, item, subItem) {
        }
 }
 
-function insertBorder() {
-       var $grid = $('#setborderstyle-grid');
+function setBorders(left, right, bottom, top, horiz, vert) {
+       var params = {
+        OuterBorder: {
+            type : '[]any',
+            value : [
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : left }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : right }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : bottom }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : top }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'long', value : 0 },
+                { type : 'long', value : 0 },
+                { type : 'long', value : 0 },
+                { type : 'long', value : 0 },
+                { type : 'long', value : 0 }
+            ]
+        },
+        InnerBorder: {
+            type : '[]any',
+            value : [
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : horiz }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'com.sun.star.table.BorderLine2', value : { Color : { 
type : 'com.sun.star.util.Color', value : 0 }, InnerLineWidth : { type : 
'short', value : 0 }, OuterLineWidth : { type : 'short', value : vert }, 
LineDistance : { type : 'short', value : 0 },  LineStyle : { type : 'short', 
value : 0 }, LineWidth : { type : 'unsigned long', value : 0 } } },
+                { type : 'short', value : 0 },
+                { type : 'short', value : 127 },
+                { type : 'long', value : 0 }
+            ]
+        }};
+       map.sendUnoCommand('.uno:SetBorderStyle', params);
+}
 
-       $grid.on({
-               click: function() {
-                       // TODO send map.sendUnoCommand('.uno: 
com.sun.star.table.BorderLine2' );
-                       $().w2overlay({ name: 'toolbar-up' });
-                       console.log('click border');
-               }
-       });
+function setBorderStyle(num) {
+       switch (num) {
+               case 1: setBorders(0, 0, 0, 0, 0, 0); break;
+               case 2: setBorders(1, 0, 0, 0, 0, 0); break;
+               case 3: setBorders(0, 1, 0, 0, 0, 0); break;
+               case 4: setBorders(1, 1, 0, 0, 0, 0); break;
+
+               case 5: setBorders(0, 0, 0, 1, 0, 0); break;
+               case 6: setBorders(0, 0, 1, 0, 0, 0); break;
+               case 7: setBorders(0, 0, 1, 1, 0, 0); break;
+               case 8: setBorders(1, 1, 1, 1, 0, 0); break;
+
+               case 9: setBorders(0, 0, 1, 1, 1, 0); break;
+               case 10: setBorders(1, 1, 1, 1, 1, 0); break;
+               case 11: setBorders(1, 1, 1, 1, 0, 1); break;
+               case 12: setBorders(1, 1, 1, 1, 1, 1); break;
+
+               default: console.log('ignored border: ' + num);
+       }
+
+       // close the popup
+       // TODO we may consider keeping it open in the future if we add border 
color
+       // and style to this popup too
+       if ($('#w2ui-overlay-toolbar-up').length > 0) {
+               $('#w2ui-overlay-toolbar-up').removeData('keepOpen')[0].hide();
+       }
+       map.focus();
 }
 
 function insertTable() {
@@ -385,6 +431,15 @@ $(function () {
                        {type: 'break', id: 'incdecindent'},
                        {type: 'drop',  id: 'inserttable',  img: 'inserttable', 
hint: _('Insert table'), overlay: {onShow: insertTable},
                         html: '<div id="inserttable-wrapper"><div 
id="inserttable-popup" class="inserttable-pop ui-widget ui-widget-content 
ui-corner-all"><div class="inserttable-grid"></div><div id="inserttable-status" 
class="loleaflet-font" style="padding: 5px;"><br/></div></div></div>'},
+                       {type: 'drop',  id: 'setborderstyle',  img: 
'setborderstyle', hint: _('Borders'),
+                               html: '<table id="setborderstyle-grid"><tr><td 
class="w2ui-tb-image w2ui-icon frame01" onclick="setBorderStyle(1)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame02" onclick="setBorderStyle(2)"></td><td class="w2ui-tb-image w2ui-icon 
frame03" onclick="setBorderStyle(3)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame04" onclick="setBorderStyle(4)"></td></tr><tr><td class="w2ui-tb-image 
w2ui-icon frame05" onclick="setBorderStyle(5)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame06" onclick="setBorderStyle(6)"></td><td class="w2ui-tb-image w2ui-icon 
frame07" onclick="setBorderStyle(7)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame08" onclick="setBorderStyle(8)"></td></tr><tr><td class="w2ui-tb-image 
w2ui-icon frame09" onclick="setBorderStyle(9)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame10" onclick="setBorderStyle(10)"></td><td class="w2ui-tb-image w2ui-icon 
frame11" onclick="setBorderStyle(11)"></td>' +
+                                     '<td class="w2ui-tb-image w2ui-icon 
frame12" onclick="setBorderStyle(12)"></td></tr></table>'
+                       },
                        {type: 'button',  id: 'insertobjectchart',  img: 
'insertobjectchart', hint: _UNO('.uno:InsertObjectChart', '', true), uno: 
'InsertObjectChart'},
                        {type: 'button',  id: 'insertannotation', img: 
'annotation', hint: _UNO('.uno:InsertAnnotation', '', true)},
                        {type: 'button',  id: 'insertgraphic',  img: 
'insertgraphic', hint: _UNO('.uno:InsertGraphic', '', true)},
@@ -883,17 +938,6 @@ map.on('doclayerinit', function () {
        switch (docType) {
        case 'spreadsheet':
                toolbarUp.remove('inserttable', 'styles', 'justifypara', 
'defaultbullet', 'defaultnumbering', 'break-numbering');
-               toolbarUp.insert('setborderstyle',
-                       {type: 'drop',  id: 'setborderstyle',  img: 
'setborderstyle', hint: _('Borders'), overlay: {onShow: insertBorder},
-                               html: '<table id="setborderstyle-grid"><tr><td 
class="w2ui-tb-image w2ui-icon frame01"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame02"></td><td class="w2ui-tb-image w2ui-icon frame03"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame04"></td></tr><tr><td class="w2ui-tb-image w2ui-icon frame05"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame06"></td><td class="w2ui-tb-image w2ui-icon frame07"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame08"></td></tr><tr><td class="w2ui-tb-image w2ui-icon frame09"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame10"></td><td class="w2ui-tb-image w2ui-icon frame11"></td>' +
-                                     '<td class="w2ui-tb-image w2ui-icon 
frame12"></td></tr></table>'
-                       }
-               );
                statusbar.disable('zoomreset', 'zoomout', 'zoomin', 
'zoomlevel');
                statusbar.insert('left', [
                        {type: 'break', id:'break1'},
@@ -931,7 +975,7 @@ map.on('doclayerinit', function () {
 
                break;
        case 'text':
-               toolbarUp.remove('wraptextseparator', 'wraptext', 
'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending');
+               toolbarUp.remove('wraptextseparator', 'wraptext', 
'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending', 'setborderstyle');
                statusbar.insert('left', [
                        {type: 'break', id: 'break1'},
                        {type: 'html',  id: 'StatePageNumber',
@@ -962,7 +1006,7 @@ map.on('doclayerinit', function () {
                if (!map['wopi'].HideExportOption) {
                        presentationToolbar.show('presentation', 
'presentationbreak');
                }
-               toolbarUp.remove('insertannotation', 'wraptextseparator', 
'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending');
+               toolbarUp.remove('insertannotation', 'wraptextseparator', 
'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending', 'setborderstyle');
                statusbar.insert('left', [
                        {type: 'break', id:'break1'},
                        {type: 'html',  id: 'PageStatus',
@@ -978,7 +1022,7 @@ map.on('doclayerinit', function () {
 
                break;
        case 'drawing':
-               toolbarUp.remove('insertannotation', 'wraptextseparator', 
'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending');
+               toolbarUp.remove('insertannotation', 'wraptextseparator', 
'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 
'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 
'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 
'sortascending', 'sortdescending', 'setborderstyle');
 
                // Remove irrelevant toolbars
                $('#formulabar').hide();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to