loleaflet/css/notebookbar.css                       |    5 +
 loleaflet/src/control/Control.Notebookbar.js        |   29 +++++++++
 loleaflet/src/control/Control.NotebookbarBuilder.js |    1 
 loleaflet/src/control/Control.UIManager.js          |   60 ++++++++++++++++----
 4 files changed, 83 insertions(+), 12 deletions(-)

New commits:
commit c623459822205d6034b061a9c9fc3eddca8c30d2
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Jun 29 16:35:00 2020 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Jun 30 14:28:11 2020 +0200

    notebookbar: hidden in readonly mode
    
    Change-Id: I2cfa4e7167f30cba252f53efea156f9e6afac98f
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97513
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Tested-by: Jenkins
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/css/notebookbar.css b/loleaflet/css/notebookbar.css
index 12cb1af64..db4444adb 100644
--- a/loleaflet/css/notebookbar.css
+++ b/loleaflet/css/notebookbar.css
@@ -121,6 +121,11 @@ div[id*='Row'].notebookbar, div[id*='Column'].notebookbar, 
#SendToBack.notebookb
        display: none;
 }
 
+/* comboboxes in readonly mode on mobile devices */
+.notebookbar-scroll-wrapper .select2-container {
+       z-index: auto !important;
+}
+
 /* Writer */
 
 /* Home tab */
diff --git a/loleaflet/src/control/Control.Notebookbar.js 
b/loleaflet/src/control/Control.Notebookbar.js
index 71b801fca..aeebbe693 100644
--- a/loleaflet/src/control/Control.Notebookbar.js
+++ b/loleaflet/src/control/Control.Notebookbar.js
@@ -7,6 +7,7 @@
 L.Control.Notebookbar = L.Control.extend({
 
        _currentScrollPosition: 0,
+       _showNotebookbar: false,
 
        onAdd: function (map) {
                this.map = map;
@@ -19,12 +20,37 @@ L.Control.Notebookbar = L.Control.extend({
 
                this.map.on('contextchange', this.onContextChange, this);
                this.map.on('notebookbar', this.onNotebookbar, this);
+               this.map.on('updatepermission', this.onUpdatePermission, this);
+       },
+
+       onRemove: function() {
+               this.map.off('contextchange', this.onContextChange, this);
+               this.map.off('updatepermission', this.onUpdatePermission, this);
+               this.map.off('notebookbar');
+               this.clearNotebookbar();
+       },
+
+       onUpdatePermission: function(e) {
+               if (e.perm === 'edit') {
+                       this._showNotebookbar = true;
+                       this.showTabs();
+               }
        },
 
        onNotebookbar: function(data) {
                this.loadTab(data);
        },
 
+       showTabs: function() {
+               $('.ui-tabs.notebookbar').show();
+               $('.notebookbar-shortcuts-bar').show();
+       },
+
+       hideTabs: function() {
+               $('.ui-tabs.notebookbar').hide();
+               $('.notebookbar-shortcuts-bar').hide();
+       },
+
        clearNotebookbar: function() {
                $('.root-container.notebookbar').remove();
                $('.ui-tabs.notebookbar').remove();
@@ -40,6 +66,9 @@ L.Control.Notebookbar = L.Control.extend({
 
                builder.build(container, [tabJSON]);
 
+               if (this._showNotebookbar === false)
+                       this.hideTabs();
+
                this.scrollToLastPositionIfNeeded();
        },
 
diff --git a/loleaflet/src/control/Control.UIManager.js 
b/loleaflet/src/control/Control.UIManager.js
index e8ae9ea4a..bf08bfa87 100644
--- a/loleaflet/src/control/Control.UIManager.js
+++ b/loleaflet/src/control/Control.UIManager.js
@@ -8,6 +8,7 @@
 L.Control.UIManager = L.Control.extend({
        onAdd: function (map) {
                this.map = map;
+               this.notebookbar = null;
 
                map.on('updatepermission', this.onUpdatePermission, this);
        },
@@ -70,22 +71,17 @@ L.Control.UIManager = L.Control.extend({
                        this.map.addControl(L.control.searchBar());
                } else if (enableNotebookbar) {
                        if (docType === 'spreadsheet') {
-                               
this.map.addControl(L.control.notebookbarCalc());
+                               var notebookbar = L.control.notebookbarCalc();
                        } else if (docType === 'presentation') {
-                               
this.map.addControl(L.control.notebookbarImpress());
+                               notebookbar = L.control.notebookbarImpress();
                        } else {
-                               
this.map.addControl(L.control.notebookbarWriter());
+                               notebookbar = L.control.notebookbarWriter();
                        }
 
-                       var additionalOffset = 0;
-                       if (docType === 'spreadsheet') {
-                               additionalOffset = 56;
-                       }
+                       this.notebookbar = notebookbar;
+                       this.map.addControl(notebookbar);
 
-                       
this.moveObjectVertically($('#spreadsheet-row-column-frame'), 121);
-                       this.moveObjectVertically($('#document-container'), 84 
+ additionalOffset);
-                       
this.moveObjectVertically($('#presentation-controls-wrapper'), 84);
-                       this.moveObjectVertically($('#sidebar-dock-wrapper'), 
43);
+                       // makeSpaceForNotebookbar call in onUpdatePermission
                }
 
                if (docType === 'spreadsheet') {
@@ -176,6 +172,32 @@ L.Control.UIManager = L.Control.extend({
                return $('.loleaflet-ruler').is(':visible');
        },
 
+       // Notebookbar helpers
+
+       hasNotebookbarShown: function() {
+               return $('#map').hasClass('notebookbar-opened');
+       },
+
+       makeSpaceForNotebookbar: function(docType) {
+               if (this.hasNotebookbarShown())
+                       return;
+
+               var additionalOffset = 0;
+               if (docType === 'spreadsheet') {
+                       if (window.mode.isTablet())
+                               additionalOffset = -7;
+                       else
+                               additionalOffset = 53;
+               }
+
+               this.moveObjectVertically($('#spreadsheet-row-column-frame'), 
36);
+               this.moveObjectVertically($('#document-container'), 43 + 
additionalOffset);
+               this.moveObjectVertically($('#presentation-controls-wrapper'), 
43);
+               this.moveObjectVertically($('#sidebar-dock-wrapper'), 43);
+
+               $('#map').addClass('notebookbar-opened');
+       },
+
        // Event handlers
 
        onUpdatePermission: function(e) {
@@ -188,6 +210,22 @@ L.Control.UIManager = L.Control.extend({
                        }
                }
 
+               var enableNotebookbar = window.userInterfaceMode === 
'notebookbar';
+               if (enableNotebookbar) {
+                       if (e.perm === 'edit') {
+                               
this.makeSpaceForNotebookbar(this.map._docLayer._docType);
+                       } else if (e.perm === 'readonly' && 
$('#mobile-edit-button').is(':hidden')) {
+                               var menubar = L.control.menubar();
+                               this.map.menubar = menubar;
+                               this.map.addControl(menubar);
+
+                               if (this.notebookbar) {
+                                       
this.map.removeControl(this.notebookbar);
+                                       this.notebookbar = null;
+                               }
+                       }
+               }
+
                // We've resized the document container.
                this.map.invalidateSize();
        },
commit 8e18e60bf7b6ccbc2ad49bd21cf6b4760e98354f
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Jun 29 15:26:40 2020 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Jun 30 14:27:59 2020 +0200

    remove unnecesary debug print
    
    Change-Id: I89ced212050e2f4f79c8782539c56f6b15a89480
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97512
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/src/control/Control.NotebookbarBuilder.js 
b/loleaflet/src/control/Control.NotebookbarBuilder.js
index 306baaf3d..3c01a12aa 100644
--- a/loleaflet/src/control/Control.NotebookbarBuilder.js
+++ b/loleaflet/src/control/Control.NotebookbarBuilder.js
@@ -210,7 +210,6 @@ L.Control.NotebookbarBuilder = 
L.Control.JSDialogBuilder.extend({
                        var selected = parseInt(data.selectedEntries[0]) == 
index;
                        processedData.push({id: index, text: value, selected: 
selected});
                });
-               console.log(processedData);
 
                $(select).select2({
                        data: processedData,
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to