summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Pinto Silva <pedro.silva@collabora.com>2020-10-22 12:49:19 +0200
committerPedro Pinto Silva <pedro.silva@collabora.com>2020-10-22 12:49:19 +0200
commit5805dc004cf71d655717830fe5722b944f5e4763 (patch)
tree2353e6fc06aab339462ba3ac10cbce1067780f40
parentMenubar: Use listitem as svg object and style it via css (diff)
downloadonline-private/pedropintosilva/listitem-as-svgobject.tar.gz
online-private/pedropintosilva/listitem-as-svgobject.zip
Change-Id: I5233b78e6e574db5855947983c1762c8c98ec372
-rw-r--r--loleaflet/css/menubar.css14
-rw-r--r--loleaflet/src/control/Control.Menubar.js31
2 files changed, 29 insertions, 16 deletions
diff --git a/loleaflet/css/menubar.css b/loleaflet/css/menubar.css
index 18d0e8bfa6..814e465634 100644
--- a/loleaflet/css/menubar.css
+++ b/loleaflet/css/menubar.css
@@ -252,15 +252,21 @@
/* 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 > .svg-object {
+.lo-menu-item-checked > svg {
float: left;
margin-left: -20px;
margin-top: -2px;
}
-path#listitem-selected {
- fill: #0b87e7;
+.text-color-indicator .lo-menu-item-checked path {
+ fill: rgb(var(--blue1-txt-primary-color));
}
-.lo-menu-item-checked:hover .svg-object{
+.spreadsheet-color-indicator .lo-menu-item-checked path {
+ fill: rgb(var(--green0-txt-primary-color));
+}
+.presentation-color-indicator .lo-menu-item-checked path {
+ fill: rgb(var(--orange1-txt-primary-color));
+}
+.lo-menu-item-checked:hover svg {
-webkit-filter: saturate(0) brightness(100);
filter: saturate(0) brightness(100)
}
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index b0aaaed235..5cff42beef 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -1018,6 +1018,7 @@ L.Control.Menubar = L.Control.extend({
},
_beforeShow: function(e, menu) {
+ var listitemSelected = '<svg height="20" viewBox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"><path fill="#0b87e7" id="listitem-selected" d="m7.7417 13.575-2.9917-2.9917c-.325-.325-.325-.85 0-1.175s.85-.325 1.175 0l2.4083 2.4 5.7333-5.7333c.325-.325.85-.325 1.175 0s.325.85 0 1.175l-6.325 6.325c-.31667.325-.85.325-1.175 0z"/></svg>';
var self = e.data.self;
var items = $(menu).children().children('a').not('.has-submenu');
$(items).each(function() {
@@ -1049,12 +1050,15 @@ L.Control.Menubar = L.Control.extend({
languageAndCode = self._map[constState].getItemValue(unoCommand);
lang = languageAndCode.split(';')[0];
data = decodeURIComponent($(aItem).data(constUno));
- if (data.indexOf(lang) !== -1) {
+ if (data.indexOf(lang) !== -1 && $(aItem).hasClass(constChecked) === false) {
$(aItem).addClass(constChecked);
- } else if (data.indexOf('LANGUAGE_NONE') !== -1 && lang === '[None]') {
+ $(aItem).prepend(listitemSelected);
+ } else if (data.indexOf('LANGUAGE_NONE') !== -1 && lang === '[None]' && $(aItem).hasClass(constChecked) === false) {
$(aItem).addClass(constChecked);
+ $(aItem).prepend(listitemSelected);
} else {
$(aItem).removeClass(constChecked);
+ $('#listitem-selected').remove();
}
}
else if (unoCommand.startsWith(constPageHeader)) {
@@ -1065,10 +1069,13 @@ L.Control.Menubar = L.Control.extend({
unoCommand = constPageFooter;
self._checkedMenu(unoCommand, this);
}
- else if (itemState === 'true') {
+ else if (itemState === 'true' && $(aItem).hasClass(constChecked) === false) {
$(aItem).addClass(constChecked);
+ $(aItem).remove('#listitem-selected');
+ $(aItem).prepend(listitemSelected);
} else {
$(aItem).removeClass(constChecked);
+ $(aItem).remove('#listitem-selected');
}
} 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
@@ -1078,23 +1085,21 @@ L.Control.Menubar = L.Control.extend({
self.options.allowedViewModeActions.splice(index, 1);
}
} else if (id === 'showruler') {
- if (self._map.uiManager.isRulerVisible()) {
+ if (self._map.uiManager.isRulerVisible() && $(aItem).hasClass(constChecked) === false) {
$(aItem).addClass(constChecked);
- if ($('#menu-showruler .svg-object').length < 1)
- $(aItem).prepend('<object class="svg-object" width="20" data="images/lc_listitem-selected.svg" type="image/svg+xml"></object>');
+ $(aItem).prepend(listitemSelected);
} else {
$(aItem).removeClass(constChecked);
- $('#menu-showruler .svg-object').remove('.svg-object');
+ $('#menu-showruler > .lo-menu-item-checked').remove('#listitem-selected');
}
} else if (id === 'showstatusbar') {
- if (self._map.uiManager.isStatusBarVisible()) {
+ if (self._map.uiManager.isStatusBarVisible() && $(aItem).hasClass(constChecked) === false) {
$(aItem).addClass(constChecked);
- if ($('#menu-showstatusbar .svg-object').length < 1)
- $(aItem).prepend('<object class="svg-object" width="20" data="images/lc_listitem-selected.svg" type="image/svg+xml"></object>');
+ $(aItem).prepend(listitemSelected);
} else {
$(aItem).removeClass(constChecked);
- $('#menu-showstatusbar .svg-object').remove('.svg-object');
+ $('#menu-showstatusbar > .lo-menu-item-checked').remove('#listitem-selected');
}
} else if (self._map.getDocType() === 'presentation' && (id === 'deletepage' || id === 'insertpage' || id === 'duplicatepage')) {
@@ -1113,12 +1118,14 @@ L.Control.Menubar = L.Control.extend({
} else if (id === 'showresolved') {
if (self._map._docLayer._annotations._items.length === 0) {
$(aItem).addClass('disabled');
- } else if (self._map._docLayer._annotations._showResolved) {
+ } else if (self._map._docLayer._annotations._showResolved && $(aItem).hasClass(constChecked) === false) {
$(aItem).removeClass('disabled');
$(aItem).addClass(constChecked);
+ $(aItem).prepend(listitemSelected);
} else {
$(aItem).removeClass('disabled');
$(aItem).removeClass(constChecked);
+ $(aItem).remove('#listitem-selected');
}
} else {
$(aItem).removeClass('disabled');