loleaflet/dist/menubar.css               |   16 +++++++++++++++-
 loleaflet/src/control/Control.Menubar.js |   17 +++++++----------
 2 files changed, 22 insertions(+), 11 deletions(-)

New commits:
commit ba8bcf59cdd289527e59663a625906aa7c69adc7
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Wed May 3 21:18:36 2017 +0530

    tdf#106447: Support checked items in menubar
    
    Bin the internal command state recorder to Menubar and use the global
    state recorder available in the map.
    
    Change-Id: I32e81700e38c2d544b2d874e6a30fbe58e8d43bd
    Reviewed-on: https://gerrit.libreoffice.org/37505
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/dist/menubar.css b/loleaflet/dist/menubar.css
index 70fdaee7..eb115d77 100644
--- a/loleaflet/dist/menubar.css
+++ b/loleaflet/dist/menubar.css
@@ -62,7 +62,7 @@
     cursor: default;
 }
 .lo-menu a, .lo-menu a:hover, .lo-menu a:focus, .lo-menu a:active, .lo-menu 
a.highlighted {
-    padding: 5px 15px;
+    padding: 5px 22px;
     color: #000;
 }
 .lo-menu a:hover, .lo-menu a:focus, .lo-menu a:active, .lo-menu a.highlighted {
@@ -226,3 +226,17 @@
        top: 3px; /* This is not a menu, plain action, but we want it to appear 
like a menu */
     }
 }
+
+/* Some more lo-menu specific customizations */
+
+/* The smartmenus plugin doesn't seem to have support for icons, so implement 
our own pseudo-elements */
+.lo-menu-item-checked::before {
+    position: absolute;
+    content: '\2713';
+    left: 5px;
+    top: 5px;
+}
+
+.lo-menu-item-checked:hover::before {
+    color: #fff;
+}
diff --git a/loleaflet/src/control/Control.Menubar.js 
b/loleaflet/src/control/Control.Menubar.js
index 4cbc6b71..89048a3b 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -296,15 +296,6 @@ L.Control.Menubar = L.Control.extend({
                this._menubarCont = L.DomUtil.get('main-menu');
 
                map.on('doclayerinit', this._onDocLayerInit, this);
-               map.on('commandstatechanged', this._onCommandStateChanged, 
this);
-       },
-
-       _onCommandStateChanged: function(e) {
-               // Store information about enabled/disabled commands
-               // Used later just before showing menu to enable/disable menu 
items
-               if (e.state === 'enabled' || e.state === 'disabled') {
-                       this.options.commandStates[e.commandName] = e.state;
-               }
        },
 
        _onDocLayerInit: function() {
@@ -382,11 +373,17 @@ L.Control.Menubar = L.Control.extend({
                        if (map._permission === 'edit') {
                                if (type === 'unocommand') { // enable all 
depending on stored commandStates
                                        var unoCommand = $(aItem).data('uno');
-                                       if 
(self.options.commandStates[unoCommand] === 'disabled') {
+                                       if 
(map['stateChangeHandler'].getItemValue(unoCommand) === 'disabled') {
                                                $(aItem).addClass('disabled');
                                        } else {
                                                
$(aItem).removeClass('disabled');
                                        }
+
+                                       if 
(map['stateChangeHandler'].getItemValue(unoCommand) === 'true') {
+                                               
$(aItem).addClass('lo-menu-item-checked');
+                                       } else {
+                                               
$(aItem).removeClass('lo-menu-item-checked');
+                                       }
                                } else if (type === 'action') { // enable all 
except fullscreen on windows
                                        if (id === 'fullscreen' && 
(L.Browser.ie || L.Browser.edge)) { // Full screen works weirdly on IE 11 and 
on Edge
                                                $(aItem).addClass('disabled');
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to