[Libreoffice-commits] online.git: 10 commits - kit/ChildSession.cpp loleaflet/css loleaflet/images loleaflet/js loleaflet/src wsd/DocumentBroker.cpp wsd/protocol.txt wsd/Storage.cpp wsd/Storage.hpp
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Oct 31 17:16:34 UTC 2018
kit/ChildSession.cpp | 13 +
loleaflet/css/toolbar.css | 106 +++++++++++++++-
loleaflet/images/icon-set-bars-empty.svg | 1
loleaflet/images/icon-set-bars-full.svg | 1
loleaflet/images/icon-set-bars-half.svg | 1
loleaflet/images/icon-set-bars-one-quarter.svg | 1
loleaflet/images/icon-set-bars-three-quarters.svg | 1
loleaflet/images/icon-set-circles1-gray.svg | 1
loleaflet/images/icon-set-circles1-green.svg | 1
loleaflet/images/icon-set-circles1-red.svg | 1
loleaflet/images/icon-set-circles1-yellow.svg | 1
loleaflet/images/icon-set-circles2-dark-gray.svg | 1
loleaflet/images/icon-set-circles2-dark-red.svg | 1
loleaflet/images/icon-set-circles2-light-gray.svg | 1
loleaflet/images/icon-set-circles2-light-red.svg | 1
loleaflet/images/icon-set-colorarrows-down.svg | 1
loleaflet/images/icon-set-colorarrows-same.svg | 1
loleaflet/images/icon-set-colorarrows-slightly-down.svg | 1
loleaflet/images/icon-set-colorarrows-slightly-up.svg | 1
loleaflet/images/icon-set-colorarrows-up.svg | 1
loleaflet/images/icon-set-flags-green.svg | 1
loleaflet/images/icon-set-flags-red.svg | 1
loleaflet/images/icon-set-flags-yellow.svg | 1
loleaflet/images/icon-set-grayarrows-down.svg | 1
loleaflet/images/icon-set-grayarrows-same.svg | 1
loleaflet/images/icon-set-grayarrows-slightly-down.svg | 1
loleaflet/images/icon-set-grayarrows-slightly-up.svg | 1
loleaflet/images/icon-set-grayarrows-up.svg | 1
loleaflet/images/icon-set-negative-red-smilie.svg | 1
loleaflet/images/icon-set-negative-yellow-smilie.svg | 1
loleaflet/images/icon-set-neutral-yellow-smilie.svg | 1
loleaflet/images/icon-set-pies-empty.svg | 7 +
loleaflet/images/icon-set-pies-full.svg | 7 +
loleaflet/images/icon-set-pies-half.svg | 7 +
loleaflet/images/icon-set-pies-one-quarter.svg | 7 +
loleaflet/images/icon-set-pies-three-quarters.svg | 7 +
loleaflet/images/icon-set-positive-green-smilie.svg | 1
loleaflet/images/icon-set-positive-yellow-smilie.svg | 1
loleaflet/images/icon-set-shapes-circle.svg | 1
loleaflet/images/icon-set-shapes-diamond.svg | 1
loleaflet/images/icon-set-shapes-triangle.svg | 1
loleaflet/images/icon-set-squares-empty.svg | 1
loleaflet/images/icon-set-squares-full.svg | 1
loleaflet/images/icon-set-squares-half.svg | 1
loleaflet/images/icon-set-squares-one-quarter.svg | 1
loleaflet/images/icon-set-squares-three-quarters.svg | 1
loleaflet/images/icon-set-stars-empty.svg | 7 +
loleaflet/images/icon-set-stars-full.svg | 1
loleaflet/images/icon-set-stars-half.svg | 7 +
loleaflet/images/icon-set-symbols1-check.svg | 7 +
loleaflet/images/icon-set-symbols1-cross.svg | 7 +
loleaflet/images/icon-set-symbols1-exclamation-mark.svg | 7 +
loleaflet/images/icon-set-trafficlights-green.svg | 1
loleaflet/images/icon-set-trafficlights-red.svg | 1
loleaflet/images/icon-set-trafficlights-yellow.svg | 1
loleaflet/images/icon-set-triangles-down.svg | 8 +
loleaflet/images/icon-set-triangles-same.svg | 8 +
loleaflet/images/icon-set-triangles-up.svg | 8 +
loleaflet/images/lc_conditionalformatdialog.svg | 10 +
loleaflet/js/toolbar.js | 47 ++++++-
loleaflet/src/control/Control.Menubar.js | 12 +
loleaflet/src/control/Toolbar.js | 4
loleaflet/src/map/handler/Map.FileInserter.js | 29 ++++
loleaflet/src/map/handler/Map.WOPI.js | 9 +
loleaflet/src/unocommands.js | 1
wsd/DocumentBroker.cpp | 2
wsd/Storage.cpp | 6
wsd/Storage.hpp | 8 +
wsd/protocol.txt | 8 +
69 files changed, 381 insertions(+), 11 deletions(-)
New commits:
commit db60111676801dcdf4bd91ea5ec5cb93dd000fad
Author: Aron Budea <aron.budea at collabora.com>
AuthorDate: Wed Oct 31 17:30:01 2018 +0100
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
Force width for font size dropdown.
Change-Id: Ied2392c814dcda75cfcc0aa27c588e9255d3f960
Reviewed-on: https://gerrit.libreoffice.org/62702
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index 954672a5e..5e3cf0c7c 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -235,7 +235,7 @@ button.leaflet-control-search-next
width: 150px;
}
.fontsizes-select {
- width: 70px;
+ width: 70px !important;
}
.evo-cp-wrap {
/* hide the color pick div */
commit 2c265a05c02031cf439aa181a652b42b97848ab4
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Sat Aug 18 20:37:51 2018 -0400
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
loleaflet: wopi: add EnableShare
Change-Id: I1a2a86e671f97891855cc2bd8d8047829e819508
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index c44e1dd14..740d91378 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -18,6 +18,7 @@ L.Control.Menubar = L.Control.extend({
{name: _UNO('.uno:PickList', 'text'), id: 'file', type: 'menu', menu: [
{name: _UNO('.uno:Save', 'text'), id: 'save', type: 'action'},
{name: _UNO('.uno:SaveAs', 'text'), id: 'saveas', type: 'action'},
+ {name: _('Share...'), id:'shareas', type: 'action'},
{name: _UNO('.uno:Print', 'text'), id: 'print', type: 'action'},
{name: _('See revision history'), id: 'rev-history', type: 'action'},
{name: _('Download as'), id: 'downloadas', type: 'menu', menu: [
@@ -677,6 +678,8 @@ L.Control.Menubar = L.Control.extend({
this._map.save(true, true);
} else if (id === 'saveas') {
this._map.fire('postMessage', {msgId: 'UI_SaveAs'});
+ } else if (id === 'shareas') {
+ this._map.fire('postMessage', {msgId: 'UI_Share'});
} else if (id === 'print') {
this._map.print();
} else if (id.startsWith('downloadas-')) {
@@ -820,6 +823,9 @@ L.Control.Menubar = L.Control.extend({
if (menu[i].id === 'saveas' && this._map['wopi'].UserCanNotWriteRelative)
continue;
+ if (menu[i].id === 'shareas' && !this._map['wopi'].EnableShare)
+ continue;
+
if (menu[i].id === 'insertgraphicremote' && !this._map['wopi'].EnableInsertRemoteImage)
continue;
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index 4c66483a0..1b7806f59 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -21,6 +21,7 @@ L.Map.WOPI = L.Handler.extend({
DisableInactiveMessages: false,
UserCanNotWriteRelative: true,
EnableInsertRemoteImage: false,
+ EnableShare: false,
CallPythonScriptSource: null,
_appLoadedConditions: {
@@ -77,6 +78,7 @@ L.Map.WOPI = L.Handler.extend({
this.DisableInactiveMessages = !!wopiInfo['DisableInactiveMessages'];
this.UserCanNotWriteRelative = !!wopiInfo['UserCanNotWriteRelative'];
this.EnableInsertRemoteImage = !!wopiInfo['EnableInsertRemoteImage'];
+ this.EnableShare = !!wopiInfo['EnableShare'];
this._map.fire('postMessage', {
msgId: 'App_LoadingStatus',
commit 665863b50a72ea415a575733ad8b24549ecded6f
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Sat Aug 18 20:17:25 2018 -0400
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
wsd: wopi: introduce a "EnableShare" entry in the CheckFileInfo
Change-Id: Ia47d7e8f5c8cd8ae1eb314467c664b27b50e7fd3
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 1b7bae40f..dcef3df3e 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -524,6 +524,7 @@ bool DocumentBroker::load(const std::shared_ptr<ClientSession>& session, const s
wopiInfo->set("DisableInactiveMessages", wopifileinfo->_disableInactiveMessages);
wopiInfo->set("UserCanNotWriteRelative", wopifileinfo->_userCanNotWriteRelative);
wopiInfo->set("EnableInsertRemoteImage", wopifileinfo->_enableInsertRemoteImage);
+ wopiInfo->set("EnableShare", wopifileinfo->_enableShare);
if (wopifileinfo->_hideChangeTrackingControls != WopiStorage::WOPIFileInfo::TriState::Unset)
wopiInfo->set("HideChangeTrackingControls", wopifileinfo->_hideChangeTrackingControls == WopiStorage::WOPIFileInfo::TriState::True);
diff --git a/wsd/Storage.cpp b/wsd/Storage.cpp
index 830f60049..3abcc12fa 100644
--- a/wsd/Storage.cpp
+++ b/wsd/Storage.cpp
@@ -497,6 +497,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
std::string lastModifiedTime;
bool userCanNotWriteRelative = true;
bool enableInsertRemoteImage = false;
+ bool enableShare = false;
WOPIFileInfo::TriState disableChangeTrackingRecord = WOPIFileInfo::TriState::Unset;
WOPIFileInfo::TriState disableChangeTrackingShow = WOPIFileInfo::TriState::Unset;
WOPIFileInfo::TriState hideChangeTrackingControls = WOPIFileInfo::TriState::Unset;
@@ -576,6 +577,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
JsonUtil::findJSONValue(object, "LastModifiedTime", lastModifiedTime);
JsonUtil::findJSONValue(object, "UserCanNotWriteRelative", userCanNotWriteRelative);
JsonUtil::findJSONValue(object, "EnableInsertRemoteImage", enableInsertRemoteImage);
+ JsonUtil::findJSONValue(object, "EnableShare", enableShare);
bool booleanFlag = false;
if (JsonUtil::findJSONValue(object, "DisableChangeTrackingRecord", booleanFlag))
disableChangeTrackingRecord = (booleanFlag ? WOPIFileInfo::TriState::True : WOPIFileInfo::TriState::False);
@@ -603,7 +605,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
{userId, obfuscatedUserId, userName, userExtraInfo, watermarkText, canWrite,
postMessageOrigin, hidePrintOption, hideSaveOption, hideExportOption,
enableOwnerTermination, disablePrint, disableExport, disableCopy,
- disableInactiveMessages, userCanNotWriteRelative, enableInsertRemoteImage,
+ disableInactiveMessages, userCanNotWriteRelative, enableInsertRemoteImage, enableShare,
disableChangeTrackingShow, disableChangeTrackingRecord,
hideChangeTrackingControls, callDuration}));
}
diff --git a/wsd/Storage.hpp b/wsd/Storage.hpp
index 0049d678c..cbb6f9c42 100644
--- a/wsd/Storage.hpp
+++ b/wsd/Storage.hpp
@@ -287,6 +287,7 @@ public:
const bool disableInactiveMessages,
const bool userCanNotWriteRelative,
const bool enableInsertRemoteImage,
+ const bool enableShare,
const TriState disableChangeTrackingShow,
const TriState disableChangeTrackingRecord,
const TriState hideChangeTrackingControls,
@@ -307,6 +308,7 @@ public:
_disableInactiveMessages(disableInactiveMessages),
_userCanNotWriteRelative(userCanNotWriteRelative),
_enableInsertRemoteImage(enableInsertRemoteImage),
+ _enableShare(enableShare),
_disableChangeTrackingShow(disableChangeTrackingShow),
_disableChangeTrackingRecord(disableChangeTrackingRecord),
_hideChangeTrackingControls(hideChangeTrackingControls),
@@ -349,6 +351,8 @@ public:
bool _userCanNotWriteRelative;
/// if set to true, users can access the insert remote image functionality
bool _enableInsertRemoteImage;
+ /// if set to true, users can access the file share functionality
+ bool _enableShare;
/// If we should disable change-tracking visibility by default (meaningful at loading).
TriState _disableChangeTrackingShow;
/// If we should disable change-tracking ability by default (meaningful at loading).
commit f9a660e3ccd0eac18272c9347f85c267ebf79fbf
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Sat Aug 18 11:44:07 2018 -0400
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
loleaflet: wopi: add EnableInsertRemoteImage
Change-Id: I806c3a79813e77cba85e837aa188453a5b63cacc
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index 9e5b004b3..a1ebdea05 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -167,9 +167,12 @@ function onClick(e, id, item, subItem) {
var wrapType = id.substring('menu-wrap:wrap-'.length);
map.toggleCommandState(wrapType);
}
- else if (id === 'insertgraphic') {
+ else if (id === 'insertgraphic' || item.id === 'localgraphic') {
L.DomUtil.get('insertgraphic').click();
}
+ else if (item.id === 'remotegraphic') {
+ map.fire('postMessage', {msgId: 'UI_InsertGraphic'});
+ }
else if (id === 'fontcolor' && typeof e.color !== 'undefined') {
onColorPick(id, e.color);
}
@@ -674,6 +677,11 @@ function createToolbar() {
{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)},
+ {type: 'menu', id: 'menugraphic', img: 'insertgraphic', hint: _UNO('.uno:InsertGraphic', '', true), hidden: true,
+ items: [
+ {id: 'localgraphic', text: _UNO('.uno:InsertGraphic', '', true), icon: 'insertgraphic'},
+ {id: 'remotegraphic', text: _('Remote Image...'), icon: 'insertgraphic'}
+ ]},
{type: 'button', id: 'specialcharacter', img: 'specialcharacter', hint: _UNO('.uno:InsertSymbol', '', true), uno: '.uno:InsertSymbol'}
],
onClick: function (e) {
@@ -1158,6 +1166,10 @@ function onWopiProps(e) {
$('#document-name-input').removeClass('editable');
$('#document-name-input').off('keypress', onDocumentNameKeyPress);
}
+ if (e.EnableInsertRemoteImage === true) {
+ w2ui['toolbar-up'].hide('insertgraphic');
+ w2ui['toolbar-up'].show('menugraphic');
+ }
}
function onDocLayerInit() {
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index 28d17c40e..c44e1dd14 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -820,6 +820,9 @@ L.Control.Menubar = L.Control.extend({
if (menu[i].id === 'saveas' && this._map['wopi'].UserCanNotWriteRelative)
continue;
+ if (menu[i].id === 'insertgraphicremote' && !this._map['wopi'].EnableInsertRemoteImage)
+ continue;
+
if (menu[i].id && menu[i].id.startsWith('fullscreen-presentation') && this._map['wopi'].HideExportOption)
continue;
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index 984840de0..4c66483a0 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -20,6 +20,7 @@ L.Map.WOPI = L.Handler.extend({
DisableCopy: false,
DisableInactiveMessages: false,
UserCanNotWriteRelative: true,
+ EnableInsertRemoteImage: false,
CallPythonScriptSource: null,
_appLoadedConditions: {
@@ -75,6 +76,7 @@ L.Map.WOPI = L.Handler.extend({
this.DisableCopy = !!wopiInfo['DisableCopy'];
this.DisableInactiveMessages = !!wopiInfo['DisableInactiveMessages'];
this.UserCanNotWriteRelative = !!wopiInfo['UserCanNotWriteRelative'];
+ this.EnableInsertRemoteImage = !!wopiInfo['EnableInsertRemoteImage'];
this._map.fire('postMessage', {
msgId: 'App_LoadingStatus',
commit 8643128180242132b143d1e22f505b1d8f9df552
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Aug 17 17:33:15 2018 -0400
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
wsd: wopi: introduce a "EnableInsertRemoteImage" entry in the CheckFileInfo
Change-Id: I66e5f12fbd49509ce8e82ea07ae7a2cc75ddc665
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 2aa4edda8..1b7bae40f 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -523,6 +523,7 @@ bool DocumentBroker::load(const std::shared_ptr<ClientSession>& session, const s
wopiInfo->set("DisableCopy", wopifileinfo->_disableCopy);
wopiInfo->set("DisableInactiveMessages", wopifileinfo->_disableInactiveMessages);
wopiInfo->set("UserCanNotWriteRelative", wopifileinfo->_userCanNotWriteRelative);
+ wopiInfo->set("EnableInsertRemoteImage", wopifileinfo->_enableInsertRemoteImage);
if (wopifileinfo->_hideChangeTrackingControls != WopiStorage::WOPIFileInfo::TriState::Unset)
wopiInfo->set("HideChangeTrackingControls", wopifileinfo->_hideChangeTrackingControls == WopiStorage::WOPIFileInfo::TriState::True);
diff --git a/wsd/Storage.cpp b/wsd/Storage.cpp
index 8e46dc333..830f60049 100644
--- a/wsd/Storage.cpp
+++ b/wsd/Storage.cpp
@@ -496,6 +496,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
bool disableInactiveMessages = false;
std::string lastModifiedTime;
bool userCanNotWriteRelative = true;
+ bool enableInsertRemoteImage = false;
WOPIFileInfo::TriState disableChangeTrackingRecord = WOPIFileInfo::TriState::Unset;
WOPIFileInfo::TriState disableChangeTrackingShow = WOPIFileInfo::TriState::Unset;
WOPIFileInfo::TriState hideChangeTrackingControls = WOPIFileInfo::TriState::Unset;
@@ -574,6 +575,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
JsonUtil::findJSONValue(object, "DisableInactiveMessages", disableInactiveMessages);
JsonUtil::findJSONValue(object, "LastModifiedTime", lastModifiedTime);
JsonUtil::findJSONValue(object, "UserCanNotWriteRelative", userCanNotWriteRelative);
+ JsonUtil::findJSONValue(object, "EnableInsertRemoteImage", enableInsertRemoteImage);
bool booleanFlag = false;
if (JsonUtil::findJSONValue(object, "DisableChangeTrackingRecord", booleanFlag))
disableChangeTrackingRecord = (booleanFlag ? WOPIFileInfo::TriState::True : WOPIFileInfo::TriState::False);
@@ -601,7 +603,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au
{userId, obfuscatedUserId, userName, userExtraInfo, watermarkText, canWrite,
postMessageOrigin, hidePrintOption, hideSaveOption, hideExportOption,
enableOwnerTermination, disablePrint, disableExport, disableCopy,
- disableInactiveMessages, userCanNotWriteRelative,
+ disableInactiveMessages, userCanNotWriteRelative, enableInsertRemoteImage,
disableChangeTrackingShow, disableChangeTrackingRecord,
hideChangeTrackingControls, callDuration}));
}
diff --git a/wsd/Storage.hpp b/wsd/Storage.hpp
index 0fb906c77..0049d678c 100644
--- a/wsd/Storage.hpp
+++ b/wsd/Storage.hpp
@@ -286,6 +286,7 @@ public:
const bool disableCopy,
const bool disableInactiveMessages,
const bool userCanNotWriteRelative,
+ const bool enableInsertRemoteImage,
const TriState disableChangeTrackingShow,
const TriState disableChangeTrackingRecord,
const TriState hideChangeTrackingControls,
@@ -305,6 +306,7 @@ public:
_disableCopy(disableCopy),
_disableInactiveMessages(disableInactiveMessages),
_userCanNotWriteRelative(userCanNotWriteRelative),
+ _enableInsertRemoteImage(enableInsertRemoteImage),
_disableChangeTrackingShow(disableChangeTrackingShow),
_disableChangeTrackingRecord(disableChangeTrackingRecord),
_hideChangeTrackingControls(hideChangeTrackingControls),
@@ -345,6 +347,8 @@ public:
bool _disableInactiveMessages;
/// If set to false, users can access the save-as functionality
bool _userCanNotWriteRelative;
+ /// if set to true, users can access the insert remote image functionality
+ bool _enableInsertRemoteImage;
/// If we should disable change-tracking visibility by default (meaningful at loading).
TriState _disableChangeTrackingShow;
/// If we should disable change-tracking ability by default (meaningful at loading).
commit 8c9e126a233549e06f3540783f339c10e99d4258
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Fri Aug 3 05:15:19 2018 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
Insert graphic: Pass the remote url to the core for download & insertion.
Change-Id: I871de173c255dcb7b184582e486328d7f66a2fae
diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index dbdc2f250..af56584d5 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -768,20 +768,27 @@ bool ChildSession::insertFile(const char* /*buffer*/, int /*length*/, const std:
return false;
}
- if (type == "graphic")
+ if (type == "graphic" || type == "graphicurl")
{
- std::string fileName = "file://" + std::string(JAILED_DOCUMENT_ROOT) + "insertfile/" + name;
+ std::string url;
+ if (type == "graphic")
+ url = "file://" + std::string(JAILED_DOCUMENT_ROOT) + "insertfile/" + name;
+ else if (type == "graphicurl")
+ URI::decode(name, url);
+
std::string command = ".uno:InsertGraphic";
std::string arguments = "{"
"\"FileName\":{"
"\"type\":\"string\","
- "\"value\":\"" + fileName + "\""
+ "\"value\":\"" + url + "\""
"}}";
std::unique_lock<std::mutex> lock(_docManager.getDocumentMutex());
getLOKitDocument()->setView(_viewId);
+ LOG_TRC("Inserting graphic: '" << arguments.c_str() << "', '");
+
getLOKitDocument()->postUnoCommand(command.c_str(), arguments.c_str(), false);
}
diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js
index c6c8b4587..debc090d6 100644
--- a/loleaflet/src/control/Toolbar.js
+++ b/loleaflet/src/control/Toolbar.js
@@ -156,6 +156,10 @@ L.Map.include({
this.fire('insertfile', {file: file});
},
+ insertURL: function (url) {
+ this.fire('inserturl', {url: url});
+ },
+
cellEnterString: function (string) {
var command = {
'StringName': {
diff --git a/loleaflet/src/map/handler/Map.FileInserter.js b/loleaflet/src/map/handler/Map.FileInserter.js
index 7a2f1fffa..ce1e62146 100644
--- a/loleaflet/src/map/handler/Map.FileInserter.js
+++ b/loleaflet/src/map/handler/Map.FileInserter.js
@@ -15,6 +15,7 @@ L.Map.FileInserter = L.Handler.extend({
this._map = map;
this._childId = null;
this._toInsert = {};
+ this._toInsertURL = {};
var parser = document.createElement('a');
parser.href = map.options.server;
var wopiSrc = '';
@@ -27,11 +28,13 @@ L.Map.FileInserter = L.Handler.extend({
addHooks: function () {
this._map.on('insertfile', this._onInsertFile, this);
+ this._map.on('inserturl', this._onInsertURL, this);
this._map.on('childid', this._onChildIdMsg, this);
},
removeHooks: function () {
this._map.off('insertfile', this._onInsertFile, this);
+ this._map.off('inserturl', this._onInsertURL, this);
this._map.off('childid', this._onChildIdMsg, this);
},
@@ -45,12 +48,27 @@ L.Map.FileInserter = L.Handler.extend({
}
},
+ _onInsertURL: function (e) {
+ if (!this._childId) {
+ this._map._socket.sendMessage('getchildid');
+ this._toInsertURL[Date.now()] = e.url;
+ }
+ else {
+ this._sendURL(Date.now(), e.url);
+ }
+ },
+
_onChildIdMsg: function (e) {
this._childId = e.id;
for (var name in this._toInsert) {
this._sendFile(name, this._toInsert[name]);
}
this._toInsert = {};
+
+ for (name in this._toInsertURL) {
+ this._sendURL(name, this._toInsertURL[name]);
+ }
+ this._toInsertURL = {};
},
_sendFile: function (name, file) {
@@ -76,6 +94,10 @@ L.Map.FileInserter = L.Handler.extend({
formData.append('file', file);
}
xmlHttp.send(formData);
+ },
+
+ _sendURL: function (name, url) {
+ this._map._socket.sendMessage('insertfile name=' + encodeURIComponent(url) + ' type=graphicurl');
}
});
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index efdf61d10..984840de0 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -218,7 +218,7 @@ L.Map.WOPI = L.Handler.extend({
}
else if (msg.MessageId == 'Action_InsertGraphic') {
if (msg.Values) {
- this._map.insertFile(msg.Values);
+ this._map.insertURL(msg.Values.url);
}
}
else if (msg.MessageId === 'Action_ShowBusy') {
diff --git a/wsd/protocol.txt b/wsd/protocol.txt
index 7c8d7e6a2..8bd29e638 100644
--- a/wsd/protocol.txt
+++ b/wsd/protocol.txt
@@ -60,7 +60,13 @@ paste mimetype=<mimeType>
insertfile name=<name> type=<type>
- Inserts the file with the name <name> into the document, we currently support type = 'graphic'
+ Inserts the file with the name <name> into the document, we currently
+ support:
+
+ type = 'graphic': The file has been previously uploaded using insertfile POST
+
+ type = 'graphicurl': The file is supposed to be downloaded by the core
+ itself; it does so from the URL provided in 'name'
key type=<type> char=<charcode> key=<keycode>
commit 984a6df15611b9db7d8e4128f4cb635d4a1321fb
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Sat Jul 14 12:43:45 2018 -0400
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
loleaflet: add action to insert graphic
Change-Id: If3ab2de89625f44c4178da1146ca3834702a62ec
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index 9f0b8514c..28d17c40e 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -65,6 +65,7 @@ L.Control.Menubar = L.Control.extend({
},
{name: _UNO('.uno:InsertMenu', 'text'), type: 'menu', menu: [
{name: _UNO('.uno:InsertGraphic', 'text'), id: 'insertgraphic', type: 'action'},
+ {name: _('Remote Image...'), id: 'insertgraphicremote', type: 'action'},
{name: _UNO('.uno:InsertAnnotation', 'text'), id: 'insertcomment', type: 'action'},
{uno: '.uno:InsertObjectChart'},
{type: 'separator'},
@@ -688,6 +689,8 @@ L.Control.Menubar = L.Control.extend({
this._map.insertComment();
} else if (id === 'insertgraphic') {
L.DomUtil.get('insertgraphic').click();
+ } else if (id === 'insertgraphicremote') {
+ this._map.fire('postMessage', {msgId: 'UI_InsertGraphic'});
} else if (id === 'zoomin' && this._map.getZoom() < this._map.getMaxZoom()) {
this._map.zoomIn(1);
} else if (id === 'zoomout' && this._map.getZoom() > this._map.getMinZoom()) {
diff --git a/loleaflet/src/map/handler/Map.FileInserter.js b/loleaflet/src/map/handler/Map.FileInserter.js
index 028ea4649..7a2f1fffa 100644
--- a/loleaflet/src/map/handler/Map.FileInserter.js
+++ b/loleaflet/src/map/handler/Map.FileInserter.js
@@ -69,7 +69,12 @@ L.Map.FileInserter = L.Handler.extend({
var formData = new FormData();
formData.append('name', name);
formData.append('childid', this._childId);
- formData.append('file', file);
+ if (file.filename && file.url) {
+ formData.append('url', file.url);
+ formData.append('filename', file.filename);
+ } else {
+ formData.append('file', file);
+ }
xmlHttp.send(formData);
}
});
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index 10a866c82..efdf61d10 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -216,6 +216,11 @@ L.Map.WOPI = L.Handler.extend({
this._map.downloadAs(fileName + '.' + format, format);
}
}
+ else if (msg.MessageId == 'Action_InsertGraphic') {
+ if (msg.Values) {
+ this._map.insertFile(msg.Values);
+ }
+ }
else if (msg.MessageId === 'Action_ShowBusy') {
if (msg.Values && msg.Values.Label) {
this._map.fire('showbusy', {label: msg.Values.Label});
commit 05a183319ece170cafc3a7dd8c36fe46e7d12799
Author: Andras Timar <andras.timar at collabora.com>
AuthorDate: Wed Jun 27 14:51:24 2018 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
loleaflet: hide 'Conditional Formatting Menu' for Writer, Impress and Draw
Change-Id: I31d9f7b2b974213ea27af8aee6a752c61eb911cf
Reviewed-on: https://gerrit.libreoffice.org/56527
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index 403d13154..9e5b004b3 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -1205,7 +1205,7 @@ function onDocLayerInit() {
break;
case 'text':
- toolbarUp.remove('wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformatmenu');
+ toolbarUp.remove('wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformaticonset');
statusbar.insert('left', [
{type: 'break', id: 'break1'},
{type: 'html', id: 'StatePageNumber',
@@ -1236,7 +1236,7 @@ function onDocLayerInit() {
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', 'setborderstyle', 'conditionalformatmenu');
+ toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformaticonset');
statusbar.insert('left', [
{type: 'break', id:'break1'},
{type: 'html', id: 'PageStatus',
@@ -1252,7 +1252,7 @@ function onDocLayerInit() {
break;
case 'drawing':
- toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformatmenu');
+ toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformaticonset');
// Remove irrelevant toolbars
$('#formulabar').hide();
commit 548a02dce1d7e19a85ce8d057b8c736d0501cdfa
Author: Andras Timar <andras.timar at collabora.com>
AuthorDate: Wed Jun 27 14:48:06 2018 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
loleaflet: l10n of 'Conditional Formatting Menu' tooltip
Change-Id: I6f5060b3932221df382d77e9e68536788ed8df6e
Reviewed-on: https://gerrit.libreoffice.org/56526
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index d90d14ae2..403d13154 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -659,7 +659,7 @@ function createToolbar() {
'<td class="w2ui-tb-image w2ui-icon frame12" onclick="setBorderStyle(12)"></td></tr><tr>' +
'<td colspan="4" class="w2ui-tb-image w2ui-icon frame13" onclick="setBorderStyle(0)"><div id="div-frame13">' + _('More...') + '</div></td></tr></table>'
},
- {type: 'drop', id: 'conditionalformaticonset', img: 'conditionalformatdialog', hint: _UNO('.uno:ConditionalFormatMenu'),
+ {type: 'drop', id: 'conditionalformaticonset', img: 'conditionalformatdialog', hint: _UNO('.uno:ConditionalFormatMenu', 'spreadsheet', true),
html: '<table id="conditionalformatmenu-grid"><tr>' +
'<td class="w2ui-tb-image w2ui-icon iconset00" onclick="setConditionalFormatIconSet(0)"/><td class="w2ui-tb-image w2ui-icon iconset01" onclick="setConditionalFormatIconSet(1)"/><td class="w2ui-tb-image w2ui-icon iconset02" onclick="setConditionalFormatIconSet(2)"/></tr><tr>' +
'<td class="w2ui-tb-image w2ui-icon iconset03" onclick="setConditionalFormatIconSet(3)"/><td class="w2ui-tb-image w2ui-icon iconset04" onclick="setConditionalFormatIconSet(4)"/><td class="w2ui-tb-image w2ui-icon iconset05" onclick="setConditionalFormatIconSet(5)"/></tr><tr>' +
commit aa20e6c956c751947efa129f8c5560082f318b6e
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Wed Jun 27 00:29:58 2018 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 31 18:12:07 2018 +0100
Conditional formatting: Add toolbar button for the icon sets.
Change-Id: Ifa07f357d490de8b92e50d34d4124f90b1d9e304
Reviewed-on: https://gerrit.libreoffice.org/56505
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index da451d918..954672a5e 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -270,6 +270,19 @@ button.leaflet-control-search-next
border: 1px solid #888;
}
+#conditionalformatmenu-grid tr td {
+ box-sizing: border-box;
+ background: rgba(255, 255, 255, 0.5);
+ position: relative;
+ padding: 2px;
+ border: 1px solid #ccc;
+ overflow: auto; /* child margins otherwise don't expand *this* element (parent) */
+}
+
+#conditionalformatmenu-grid td:hover {
+ border: 1px solid #888;
+}
+
.w2ui-icon.basicshapes_rectangle { background: url('images/lc_rect.svg') no-repeat center !important; }
.w2ui-icon.basicshapes_round-rectangle { background: url('images/lc_rect_rounded.svg') no-repeat center !important; }
.w2ui-icon.basicshapes_quadrat { background: url('images/lc_square.svg') no-repeat center !important; }
@@ -413,6 +426,96 @@ button.leaflet-control-search-next
.w2ui-icon.frame13 { width: 108px !important; }
#div-frame13 { width: 102px; height: 18px; text-align: center; display: table-cell; vertical-align: middle; cursor: default; }
+.w2ui-icon.iconset00 { background: url('images/icon-set-colorarrows-down.svg') no-repeat, url('images/icon-set-colorarrows-same.svg') no-repeat, url('images/icon-set-colorarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset01 { background: url('images/icon-set-grayarrows-down.svg') no-repeat, url('images/icon-set-grayarrows-same.svg') no-repeat, url('images/icon-set-grayarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset02 { background: url('images/icon-set-flags-red.svg') no-repeat, url('images/icon-set-flags-yellow.svg') no-repeat, url('images/icon-set-flags-green.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset03 { background: url('images/icon-set-circles1-red.svg') no-repeat, url('images/icon-set-circles1-yellow.svg') no-repeat, url('images/icon-set-circles1-green.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset04 { background: url('images/icon-set-trafficlights-red.svg') no-repeat, url('images/icon-set-trafficlights-yellow.svg') no-repeat, url('images/icon-set-trafficlights-green.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset05 { background: url('images/icon-set-shapes-diamond.svg') no-repeat, url('images/icon-set-shapes-triangle.svg') no-repeat, url('images/icon-set-shapes-circle.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset06 { background: url('images/icon-set-symbols1-cross.svg') no-repeat, url('images/icon-set-symbols1-exclamation-mark.svg') no-repeat, url('images/icon-set-symbols1-check.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+/* Avoid the iconset07, the core renders it the same as iconset06, no need to support it in the online.
+.w2ui-icon.iconset07 { background: url('images/icon-set-symbols1-cross.svg') no-repeat, url('images/icon-set-symbols1-exclamation-mark.svg') no-repeat, url('images/icon-set-symbols1-check.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }*/
+.w2ui-icon.iconset08 { background: url('images/icon-set-positive-yellow-smilie.svg') no-repeat, url('images/icon-set-neutral-yellow-smilie.svg') no-repeat, url('images/icon-set-negative-yellow-smilie.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset09 { background: url('images/icon-set-stars-empty.svg') no-repeat, url('images/icon-set-stars-half.svg') no-repeat, url('images/icon-set-stars-full.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset10 { background: url('images/icon-set-triangles-down.svg') no-repeat, url('images/icon-set-triangles-same.svg') no-repeat, url('images/icon-set-triangles-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset11 { background: url('images/icon-set-positive-green-smilie.svg') no-repeat, url('images/icon-set-neutral-yellow-smilie.svg') no-repeat, url('images/icon-set-negative-red-smilie.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset12 { background: url('images/icon-set-colorarrows-down.svg') no-repeat, url('images/icon-set-colorarrows-slightly-down.svg') no-repeat, url('images/icon-set-colorarrows-slightly-up.svg') no-repeat, url('images/icon-set-colorarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset13 { background: url('images/icon-set-grayarrows-down.svg') no-repeat, url('images/icon-set-grayarrows-slightly-down.svg') no-repeat, url('images/icon-set-grayarrows-slightly-up.svg') no-repeat, url('images/icon-set-grayarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset14 { background: url('images/icon-set-circles2-dark-gray.svg') no-repeat, url('images/icon-set-circles2-light-gray.svg') no-repeat, url('images/icon-set-circles2-light-red.svg') no-repeat, url('images/icon-set-circles2-dark-red.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset15 { background: url('images/icon-set-bars-one-quarter.svg') no-repeat, url('images/icon-set-bars-half.svg') no-repeat, url('images/icon-set-bars-three-quarters.svg') no-repeat, url('images/icon-set-bars-full.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset16 { background: url('images/icon-set-circles1-gray.svg') no-repeat, url('images/icon-set-circles1-red.svg') no-repeat, url('images/icon-set-circles1-yellow.svg') no-repeat, url('images/icon-set-circles1-green.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset17 { background: url('images/icon-set-colorarrows-down.svg') no-repeat, url('images/icon-set-colorarrows-slightly-down.svg') no-repeat, url('images/icon-set-colorarrows-same.svg') no-repeat, url('images/icon-set-colorarrows-slightly-up.svg') no-repeat, url('images/icon-set-colorarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center, 74px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset18 { background: url('images/icon-set-grayarrows-down.svg') no-repeat, url('images/icon-set-grayarrows-slightly-down.svg') no-repeat, url('images/icon-set-grayarrows-same.svg') no-repeat, url('images/icon-set-grayarrows-slightly-up.svg') no-repeat, url('images/icon-set-grayarrows-up.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center, 74px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset19 { background: url('images/icon-set-bars-empty.svg') no-repeat, url('images/icon-set-bars-one-quarter.svg') no-repeat, url('images/icon-set-bars-half.svg') no-repeat, url('images/icon-set-bars-three-quarters.svg') no-repeat, url('images/icon-set-bars-full.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center, 74px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset20 { background: url('images/icon-set-pies-empty.svg') no-repeat, url('images/icon-set-pies-one-quarter.svg') no-repeat, url('images/icon-set-pies-half.svg') no-repeat, url('images/icon-set-pies-three-quarters.svg') no-repeat, url('images/icon-set-pies-full.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center, 74px center !important;
+ width: 94px !important; }
+.w2ui-icon.iconset21 { background: url('images/icon-set-squares-empty.svg') no-repeat, url('images/icon-set-squares-one-quarter.svg') no-repeat, url('images/icon-set-squares-half.svg') no-repeat, url('images/icon-set-squares-three-quarters.svg') no-repeat, url('images/icon-set-squares-full.svg') no-repeat !important;
+ background-size: 16px 16px, 16px 16px, 16px 16px, 16px 16px, 16px 16px !important;
+ background-position: 2px center, 20px center, 38px center, 56px center, 74px center !important;
+ width: 94px !important; }
+
.w2ui-icon.accepttrackedchanges{ background: url('images/lc_accepttrackedchanges.svg') no-repeat center !important; }
.w2ui-icon.alignblock{ background: url('images/lc_alignblock.svg') no-repeat center !important; }
.w2ui-icon.alignhorizontal{ background: url('images/lc_alignhorizontalcenter.svg') no-repeat center !important; }
@@ -438,6 +541,7 @@ button.leaflet-control-search-next
.w2ui-icon.insertgraphic{ background: url('images/lc_gallery.svg') no-repeat center !important; }
.w2ui-icon.inserttable{ background: url('images/lc_inserttable.svg') no-repeat center !important; }
.w2ui-icon.setborderstyle{ background: url('images/lc_setborderstyle.svg') no-repeat center !important; }
+.w2ui-icon.conditionalformatdialog{ background: url('images/lc_conditionalformatdialog.svg') no-repeat center !important; }
.w2ui-icon.next{ background: url('images/lc_downsearch.svg') no-repeat center !important; }
.w2ui-icon.numbering{ background: url('images/lc_defaultnumbering.svg') no-repeat center !important; }
.w2ui-icon.presentation{ background: url('images/lc_dia.svg') no-repeat center !important; }
diff --git a/loleaflet/images/icon-set-bars-empty.svg b/loleaflet/images/icon-set-bars-empty.svg
new file mode 100644
index 000000000..edccacb2a
--- /dev/null
+++ b/loleaflet/images/icon-set-bars-empty.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#808080"><path d="m1 10c-.554 0-1 .446-1 1v4c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-4c0-.554-.446-1-1-1zm0 1h1v4h-1z"/><path d="m1 11h1v4h-1z" opacity=".5"/><path d="m5 7c-.554 0-1 .446-1 1v7c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-7c0-.554-.446-1-1-1zm0 1h1v7h-1z"/><path d="m5 8h1v7h-1z" opacity=".5"/><path d="m9 3c-.554 0-1 .446-1 1v11c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-11c0-.554-.446-1-1-1zm0 1h1v11h-1z"/><path d="m9 4h1v11h-1z" opacity=".5"/><path d="m13 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-14c0-.554-.446-1-1-1zm0 1h1v14h-1z"/><path d="m13 1h1v14h-1z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-bars-full.svg b/loleaflet/images/icon-set-bars-full.svg
new file mode 100644
index 000000000..1cf2c3032
--- /dev/null
+++ b/loleaflet/images/icon-set-bars-full.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#4d82b8"><path d="m1 10c-.554 0-1 .446-1 1v4c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-4c0-.554-.446-1-1-1zm0 1h1v4h-1z"/><path d="m1 11h1v4h-1z" opacity=".5"/><path d="m5 7c-.554 0-1 .446-1 1v7c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-7c0-.554-.446-1-1-1zm0 1h1v7h-1z"/><path d="m5 8h1v7h-1z" opacity=".5"/><path d="m9 3c-.554 0-1 .446-1 1v11c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-11c0-.554-.446-1-1-1zm0 1h1v11h-1z"/><path d="m9 4h1v11h-1z" opacity=".5"/><path d="m13 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-14c0-.554-.446-1-1-1zm0 1h1v14h-1z"/><path d="m13 1h1v14h-1z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-bars-half.svg b/loleaflet/images/icon-set-bars-half.svg
new file mode 100644
index 000000000..e6d2f9287
--- /dev/null
+++ b/loleaflet/images/icon-set-bars-half.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#808080"><path d="m1 10c-.554 0-1 .446-1 1v4c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-4c0-.554-.446-1-1-1zm0 1h1v4h-1z"/><path d="m1 11h1v4h-1z" opacity=".5"/><path d="m5 7c-.554 0-1 .446-1 1v7c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-7c0-.554-.446-1-1-1zm0 1h1v7h-1z"/><path d="m5 8h1v7h-1z" opacity=".5"/></g><g fill="#4d82b8"><path d="m9 3c-.554 0-1 .446-1 1v11c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-11c0-.554-.446-1-1-1zm0 1h1v11h-1z"/><path d="m9 4h1v11h-1z" opacity=".5"/><path d="m13 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-14c0-.554-.446-1-1-1zm0 1h1v14h-1z"/><path d="m13 1h1v14h-1z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-bars-one-quarter.svg b/loleaflet/images/icon-set-bars-one-quarter.svg
new file mode 100644
index 000000000..5d0a325de
--- /dev/null
+++ b/loleaflet/images/icon-set-bars-one-quarter.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#808080"><path d="m1 10c-.554 0-1 .446-1 1v4c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-4c0-.554-.446-1-1-1zm0 1h1v4h-1z"/><path d="m1 11h1v4h-1z" opacity=".5"/><path d="m5 7c-.554 0-1 .446-1 1v7c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-7c0-.554-.446-1-1-1zm0 1h1v7h-1z"/><path d="m5 8h1v7h-1z" opacity=".5"/><path d="m9 3c-.554 0-1 .446-1 1v11c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-11c0-.554-.446-1-1-1zm0 1h1v11h-1z"/><path d="m9 4h1v11h-1z" opacity=".5"/></g><path d="m13 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-14c0-.554-.446-1-1-1zm0 1h1v14h-1z" fill="#4d82b8"/><path d="m13 1h1v14h-1z" fill="#4d82b8" opacity=".5"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-bars-three-quarters.svg b/loleaflet/images/icon-set-bars-three-quarters.svg
new file mode 100644
index 000000000..c0ac9caf2
--- /dev/null
+++ b/loleaflet/images/icon-set-bars-three-quarters.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#4d82b8"><path d="m1 10c-.554 0-1 .446-1 1v4c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-4c0-.554-.446-1-1-1zm0 1h1v4h-1z"/><path d="m1 11h1v4h-1z" opacity=".5"/><path d="m5 7c-.554 0-1 .446-1 1v7c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-7c0-.554-.446-1-1-1zm0 1h1v7h-1z"/><path d="m5 8h1v7h-1z" opacity=".5"/><path d="m9 3c-.554 0-1 .446-1 1v11c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-11c0-.554-.446-1-1-1zm0 1h1v11h-1z"/><path d="m9 4h1v11h-1z" opacity=".5"/></g><path d="m13 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1h1c .554 0 1-.446 1-1v-14c0-.554-.446-1-1-1zm0 1h1v14h-1z" fill="#808080"/><path d="m13 1h1v14h-1z" fill="#808080" opacity=".5"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles1-gray.svg b/loleaflet/images/icon-set-circles1-gray.svg
new file mode 100644
index 000000000..c511757bb
--- /dev/null
+++ b/loleaflet/images/icon-set-circles1-gray.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#808080" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles1-green.svg b/loleaflet/images/icon-set-circles1-green.svg
new file mode 100644
index 000000000..489ca6d2f
--- /dev/null
+++ b/loleaflet/images/icon-set-circles1-green.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#76a797" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#507c6e"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles1-red.svg b/loleaflet/images/icon-set-circles1-red.svg
new file mode 100644
index 000000000..8448ddd9f
--- /dev/null
+++ b/loleaflet/images/icon-set-circles1-red.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#d86344" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#a93f23"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles1-yellow.svg b/loleaflet/images/icon-set-circles1-yellow.svg
new file mode 100644
index 000000000..b1e9477cd
--- /dev/null
+++ b/loleaflet/images/icon-set-circles1-yellow.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#eac282" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#dea13e"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles2-dark-gray.svg b/loleaflet/images/icon-set-circles2-dark-gray.svg
new file mode 100644
index 000000000..3eabe1836
--- /dev/null
+++ b/loleaflet/images/icon-set-circles2-dark-gray.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#585858" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#303030"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles2-dark-red.svg b/loleaflet/images/icon-set-circles2-dark-red.svg
new file mode 100644
index 000000000..10e2fd40d
--- /dev/null
+++ b/loleaflet/images/icon-set-circles2-dark-red.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#d65532" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#99391f"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles2-light-gray.svg b/loleaflet/images/icon-set-circles2-light-gray.svg
new file mode 100644
index 000000000..9255dca2d
--- /dev/null
+++ b/loleaflet/images/icon-set-circles2-light-gray.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#a8a8a8" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-circles2-light-red.svg b/loleaflet/images/icon-set-circles2-light-red.svg
new file mode 100644
index 000000000..67ae439d8
--- /dev/null
+++ b/loleaflet/images/icon-set-circles2-light-red.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#f0c3b8" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#e38c75"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-colorarrows-down.svg b/loleaflet/images/icon-set-colorarrows-down.svg
new file mode 100644
index 000000000..f25092cbc
--- /dev/null
+++ b/loleaflet/images/icon-set-colorarrows-down.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m8 15.5 7.5-7h-4v-8h-7v8h-4z" fill="#e38c75" fill-rule="evenodd" stroke="#d65532" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-colorarrows-same.svg b/loleaflet/images/icon-set-colorarrows-same.svg
new file mode 100644
index 000000000..a0037a3ba
--- /dev/null
+++ b/loleaflet/images/icon-set-colorarrows-same.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5 7.9999818-6.9999998 7.5000002v-4h-8.00000039v-7.0000002h8.00000039v-3.99999999z" fill="#eac282" fill-rule="evenodd" stroke="#dea13e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-colorarrows-slightly-down.svg b/loleaflet/images/icon-set-colorarrows-slightly-down.svg
new file mode 100644
index 000000000..d5bd069c5
--- /dev/null
+++ b/loleaflet/images/icon-set-colorarrows-slightly-down.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5 15.499998h-11.1715943l3.1715943-3-7-5.8999807 5.9497252-6.10001904 6.0502748 5.99999974 3-2.6065977z" fill="#eac282" fill-rule="evenodd" stroke="#dea13e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-colorarrows-slightly-up.svg b/loleaflet/images/icon-set-colorarrows-slightly-up.svg
new file mode 100644
index 000000000..e252e16c1
--- /dev/null
+++ b/loleaflet/images/icon-set-colorarrows-slightly-up.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5.50001926h-11.1715943l3.1715943 3.00000004-7 5.8999807 5.9497252 6.100019 6.0502748-5.9999997 3 2.6065977z" fill="#eac282" fill-rule="evenodd" stroke="#dea13e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-colorarrows-up.svg b/loleaflet/images/icon-set-colorarrows-up.svg
new file mode 100644
index 000000000..926a22741
--- /dev/null
+++ b/loleaflet/images/icon-set-colorarrows-up.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m8 .49998161 7.5 6.99999999h-4v8.0000004h-7v-8.0000004h-4z" fill="#76a797" fill-rule="evenodd" stroke="#507c6e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-flags-green.svg b/loleaflet/images/icon-set-flags-green.svg
new file mode 100644
index 000000000..c7e24ef32
--- /dev/null
+++ b/loleaflet/images/icon-set-flags-green.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m5.5136411.0000351c-.2826966-.00348741-.5134911.2532544-.5136411.5712738v7.8572248c.0003644.3914471.3424145.6666763.6718345.5405141l8.9857805-3.4298459c.436841-.1695915.46197-.8538975.03906-1.0634501l-8.9838294-4.4273788c-.0628333-.0310838-.1305756-.0475313-.1992067-.0483413z" fill="#76a797"/><path d="m3 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1s1-.446 1-1v-14c0-.554-.446-1-1-1z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-flags-red.svg b/loleaflet/images/icon-set-flags-red.svg
new file mode 100644
index 000000000..914bc0f02
--- /dev/null
+++ b/loleaflet/images/icon-set-flags-red.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m5.5136411.0000351c-.2826966-.00348741-.5134911.2532544-.5136411.5712738v7.8572248c.0003644.3914471.3424145.6666763.6718345.5405141l8.9857805-3.4298459c.436841-.1695915.46197-.8538975.03906-1.0634501l-8.9838294-4.4273788c-.0628333-.0310838-.1305756-.0475313-.1992067-.0483413z" fill="#d86344"/><path d="m3 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1s1-.446 1-1v-14c0-.554-.446-1-1-1z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-flags-yellow.svg b/loleaflet/images/icon-set-flags-yellow.svg
new file mode 100644
index 000000000..c0e5ea26b
--- /dev/null
+++ b/loleaflet/images/icon-set-flags-yellow.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m5.5136411.0000351c-.2826966-.00348741-.5134911.2532544-.5136411.5712738v7.8572248c.0003644.3914471.3424145.6666763.6718345.5405141l8.9857805-3.4298459c.436841-.1695915.46197-.8538975.03906-1.0634501l-8.9838294-4.4273788c-.0628333-.0310838-.1305756-.0475313-.1992067-.0483413z" fill="#eac282"/><path d="m3 0c-.554 0-1 .446-1 1v14c0 .554.446 1 1 1s1-.446 1-1v-14c0-.554-.446-1-1-1z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-grayarrows-down.svg b/loleaflet/images/icon-set-grayarrows-down.svg
new file mode 100644
index 000000000..7a014410d
--- /dev/null
+++ b/loleaflet/images/icon-set-grayarrows-down.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m8 15.5 7.5-7h-4v-8h-7v8h-4z" fill="#808080" fill-rule="evenodd" stroke="#585858" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-grayarrows-same.svg b/loleaflet/images/icon-set-grayarrows-same.svg
new file mode 100644
index 000000000..3368f34f3
--- /dev/null
+++ b/loleaflet/images/icon-set-grayarrows-same.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5 7.9999818-6.9999998 7.5000002v-4h-8.00000039v-7.0000002h8.00000039v-3.99999999z" fill="#808080" fill-rule="evenodd" stroke="#585858" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-grayarrows-slightly-down.svg b/loleaflet/images/icon-set-grayarrows-slightly-down.svg
new file mode 100644
index 000000000..ca60585fb
--- /dev/null
+++ b/loleaflet/images/icon-set-grayarrows-slightly-down.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5 15.499998h-11.1715943l3.1715943-3-7-5.8999807 5.9497252-6.10001904 6.0502748 5.99999974 3-2.6065977z" fill="#808080" fill-rule="evenodd" stroke="#585858" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-grayarrows-slightly-up.svg b/loleaflet/images/icon-set-grayarrows-slightly-up.svg
new file mode 100644
index 000000000..68e879d3a
--- /dev/null
+++ b/loleaflet/images/icon-set-grayarrows-slightly-up.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m15.5.50001926h-11.1715943l3.1715943 3.00000004-7 5.8999807 5.9497252 6.100019 6.0502748-5.9999997 3 2.6065977z" fill="#808080" fill-rule="evenodd" stroke="#585858" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-grayarrows-up.svg b/loleaflet/images/icon-set-grayarrows-up.svg
new file mode 100644
index 000000000..62a076fb0
--- /dev/null
+++ b/loleaflet/images/icon-set-grayarrows-up.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m8 .49998161 7.5 6.99999999h-4v8.0000004h-7v-8.0000004h-4z" fill="#808080" fill-rule="evenodd" stroke="#585858" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-negative-red-smilie.svg b/loleaflet/images/icon-set-negative-red-smilie.svg
new file mode 100644
index 000000000..cb7a0a2d7
--- /dev/null
+++ b/loleaflet/images/icon-set-negative-red-smilie.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#f4d1c8" r="7"/><g fill="#d86344"><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z"/><path d="m5.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m10.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m3 12a5 4 0 0 1 5-4 5 4 0 0 1 5 4h-1a4 3 0 0 0 -4-3 4 3 0 0 0 -4 3z"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-negative-yellow-smilie.svg b/loleaflet/images/icon-set-negative-yellow-smilie.svg
new file mode 100644
index 000000000..81c01f710
--- /dev/null
+++ b/loleaflet/images/icon-set-negative-yellow-smilie.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#fbf4e9" r="7"/><g fill="#eac282"><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z"/><path d="m5.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m10.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m3 12a5 4 0 0 1 5-4 5 4 0 0 1 5 4h-1a4 3 0 0 0 -4-3 4 3 0 0 0 -4 3z"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-neutral-yellow-smilie.svg b/loleaflet/images/icon-set-neutral-yellow-smilie.svg
new file mode 100644
index 000000000..a2968bd0a
--- /dev/null
+++ b/loleaflet/images/icon-set-neutral-yellow-smilie.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#fbf4e9" r="7"/><g fill="#eac282"><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z"/><path d="m5.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m10.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m3 10v1h10v-1z"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-pies-empty.svg b/loleaflet/images/icon-set-pies-empty.svg
new file mode 100644
index 000000000..3f8382c45
--- /dev/null
+++ b/loleaflet/images/icon-set-pies-empty.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#fff" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-pies-full.svg b/loleaflet/images/icon-set-pies-full.svg
new file mode 100644
index 000000000..732e18bab
--- /dev/null
+++ b/loleaflet/images/icon-set-pies-full.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#808080" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-pies-half.svg b/loleaflet/images/icon-set-pies-half.svg
new file mode 100644
index 000000000..7a05aa61d
--- /dev/null
+++ b/loleaflet/images/icon-set-pies-half.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7z" fill="#fff"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/><path d="m8 1v14a7 7 0 0 0 7-7 7 7 0 0 0 -7-7z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-pies-one-quarter.svg b/loleaflet/images/icon-set-pies-one-quarter.svg
new file mode 100644
index 000000000..a559066be
--- /dev/null
+++ b/loleaflet/images/icon-set-pies-one-quarter.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#fff" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/><circle cx="8" cy="8" fill="#fff" r="7"/><path d="m8 1v7h7a7 7 0 0 0 -7-7z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-pies-three-quarters.svg b/loleaflet/images/icon-set-pies-three-quarters.svg
new file mode 100644
index 000000000..1779ae34d
--- /dev/null
+++ b/loleaflet/images/icon-set-pies-three-quarters.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#fff" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#585858"/><path d="m8 1v7h-7a7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7z" fill="#808080"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-positive-green-smilie.svg b/loleaflet/images/icon-set-positive-green-smilie.svg
new file mode 100644
index 000000000..540ff70e8
--- /dev/null
+++ b/loleaflet/images/icon-set-positive-green-smilie.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#d7e5e1" r="7"/><g fill="#76a797"><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z"/><path d="m5.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m10.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m3 9a5 4 0 0 0 5 4 5 4 0 0 0 5-4h-1a4 3 0 0 1 -4 3 4 3 0 0 1 -4-3z"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-positive-yellow-smilie.svg b/loleaflet/images/icon-set-positive-yellow-smilie.svg
new file mode 100644
index 000000000..2ce55d3bd
--- /dev/null
+++ b/loleaflet/images/icon-set-positive-yellow-smilie.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#fbf4e9" r="7"/><g fill="#eac282"><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z"/><path d="m5.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m10.5 4a1.5 1.5 0 0 0 -1.5 1.5 1.5 1.5 0 0 0 1.5 1.5 1.5 1.5 0 0 0 1.5-1.5 1.5 1.5 0 0 0 -1.5-1.5zm0 1a .5.5 0 0 1 .5.5.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5.5.5 0 0 1 .5-.5z"/><path d="m3 9a5 4 0 0 0 5 4 5 4 0 0 0 5-4h-1a4 3 0 0 1 -4 3 4 3 0 0 1 -4-3z"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-shapes-circle.svg b/loleaflet/images/icon-set-shapes-circle.svg
new file mode 100644
index 000000000..980fd3075
--- /dev/null
+++ b/loleaflet/images/icon-set-shapes-circle.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><circle cx="8" cy="8" fill="#76a797" r="6.5" stroke="#507c6e" stroke-linecap="square" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-shapes-diamond.svg b/loleaflet/images/icon-set-shapes-diamond.svg
new file mode 100644
index 000000000..1ba042536
--- /dev/null
+++ b/loleaflet/images/icon-set-shapes-diamond.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m8 0-8 8 8 8 8-8zm0 1.4140625 6.585938 6.5859375-6.585938 6.585938-6.5859375-6.585938z" fill="#a93f23" fill-rule="evenodd"/><path d="m8 1.4140625 6.585938 6.5859375-6.585938 6.585938-6.5859375-6.585938z" fill="#d86344" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-shapes-triangle.svg b/loleaflet/images/icon-set-shapes-triangle.svg
new file mode 100644
index 000000000..706ce4dab
--- /dev/null
+++ b/loleaflet/images/icon-set-shapes-triangle.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m .5 15.5h15l-7.5-15z" fill="#eac282" fill-rule="evenodd" stroke="#dea13e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-squares-empty.svg b/loleaflet/images/icon-set-squares-empty.svg
new file mode 100644
index 000000000..30e9a000e
--- /dev/null
+++ b/loleaflet/images/icon-set-squares-empty.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#808080"><path d="m1 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 10h5v5h-5z" opacity=".5"/><path d="m1 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 1h5v5h-5z" opacity=".5"/><path d="m10 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 10h5v5h-5z" opacity=".5"/><path d="m10 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 1h5v5h-5z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-squares-full.svg b/loleaflet/images/icon-set-squares-full.svg
new file mode 100644
index 000000000..e57355f0e
--- /dev/null
+++ b/loleaflet/images/icon-set-squares-full.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#4d82b8"><path d="m1 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 10h5v5h-5z" opacity=".5"/><path d="m1 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 1h5v5h-5z" opacity=".5"/><path d="m10 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 10h5v5h-5z" opacity=".5"/><path d="m10 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 1h5v5h-5z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-squares-half.svg b/loleaflet/images/icon-set-squares-half.svg
new file mode 100644
index 000000000..15bc1a7f8
--- /dev/null
+++ b/loleaflet/images/icon-set-squares-half.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m1 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#4d82b8"/><path d="m1 10h5v5h-5z" fill="#4d82b8" opacity=".5"/><path d="m1 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#808080"/><path d="m1 1h5v5h-5z" fill="#808080" opacity=".5"/><path d="m10 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#4d82b8"/><path d="m10 10h5v5h-5z" fill="#4d82b8" opacity=".5"/><path d="m10 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#808080"/><path d="m10 1h5v5h-5z" fill="#808080" opacity=".5"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-squares-one-quarter.svg b/loleaflet/images/icon-set-squares-one-quarter.svg
new file mode 100644
index 000000000..48dcc9a61
--- /dev/null
+++ b/loleaflet/images/icon-set-squares-one-quarter.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m1 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#4d82b8"/><path d="m1 10h5v5h-5z" fill="#4d82b8" opacity=".5"/><g fill="#808080"><path d="m1 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 1h5v5h-5z" opacity=".5"/><path d="m10 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 10h5v5h-5z" opacity=".5"/><path d="m10 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 1h5v5h-5z" opacity=".5"/></g></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-squares-three-quarters.svg b/loleaflet/images/icon-set-squares-three-quarters.svg
new file mode 100644
index 000000000..6b154682b
--- /dev/null
+++ b/loleaflet/images/icon-set-squares-three-quarters.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><g fill="#4d82b8"><path d="m1 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 10h5v5h-5z" opacity=".5"/><path d="m1 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m1 1h5v5h-5z" opacity=".5"/><path d="m10 9c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z"/><path d="m10 10h5v5h-5z" opacity=".5"/></g><path d="m10 0c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h5c .554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm0 1h5v5h-5z" fill="#808080"/><path d="m10 1h5v5h-5z" fill="#808080" opacity=".5"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-stars-empty.svg b/loleaflet/images/icon-set-stars-empty.svg
new file mode 100644
index 000000000..2790941ef
--- /dev/null
+++ b/loleaflet/images/icon-set-stars-empty.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <path d="m7.9999293.50004856-2.8125 5.99995144h-4.68749998l4.00007068 3-1 6.000049 4.4999293-3.000049 4.5000707 3.000049-1-6.000049 3.999929-3h-4.6875z" fill="#808080" opacity=".5"/><path d="m7.9999293.50004822-2.8125 5.99995148h-4.68749998l4.00007068 3-1 6.0000493 4.4999293-3.000049 4.5000707 3.000049-1-6.0000493 3.999929-3h-4.6875z" fill="none" stroke="#808080" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-stars-full.svg b/loleaflet/images/icon-set-stars-full.svg
new file mode 100644
index 000000000..eceb26a15
--- /dev/null
+++ b/loleaflet/images/icon-set-stars-full.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><path d="m7.9999293.50004856-2.8125 5.99995144h-4.68749998l4.00007068 3-1 6.000049 4.4999293-3.000049 4.5000707 3.000049-1-6.000049 3.999929-3h-4.6875z" fill="#eac282" stroke="#dea13e" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-stars-half.svg b/loleaflet/images/icon-set-stars-half.svg
new file mode 100644
index 000000000..5bda75f08
--- /dev/null
+++ b/loleaflet/images/icon-set-stars-half.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <path d="m8 0v1.6796875l2.359375 5.0332031a.50005.50005 0 0 0 .453125.2871094h3.185547l-2.798828 2.0996094a.50005.50005 0 0 0 -.19336.4824218l.810547 4.8613278-3.5390622-2.359375a.50005.50005 0 0 0 -.2773438-.083984v1.101562l4.222656 2.814454a.50005.50005 0 0 0 .771485-.498047l-.951172-5.7011721 3.757812-2.8164063a.50005.50005 0 0 0 -.300781-.9003906h-4.369141l-2.677734-5.71289062a.50005.50005 0 0 0 -.4375-.28710938.50005.50005 0 0 0 -.015625 0z" fill="#808080"/><path d="m8 .5v12l4.5 3-1-6 4-3h-4.6875z" fill="#808080" opacity=".5"/><path d="m7.9999293.50004822-2.8125 5.99995148h-4.68749998l4.00007068 3-1 6.0000493 4.4999293-3.000049 4.5000707 3.000049-1-6.0000493 3.999929-3h-4.6875z" fill="none"/><path d="m8 .5-2.8125 6h-4.6875l4 3-1 6 4.5-3z" fill="#eac282"/><path d="m7.9648438 0a .50005.50005 0 0 0 -.4179688.28710938l-2.6777344 5.71289062h-4.3691406a.50005.50005 0 0 0 -.30078125.9003906l3.75781245 2.8164063-.9511718 5.7011721a.50005.50005 0 0 0 .7714844.498047l4.2226562-2.8144
54v-1.101562a.50005.50005 0 0 0 -.2773438.083984l-3.5390624 2.359375.8105468-4.8613278a.50005.50005 0 0 0 -.1933594-.4824218l-2.7988281-2.0996094h3.1855469a.50005.50005 0 0 0 .453125-.2871094l2.359375-5.0332031v-1.6796875a.50005.50005 0 0 0 -.0351562 0z" fill="#dea13e"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-symbols1-check.svg b/loleaflet/images/icon-set-symbols1-check.svg
new file mode 100644
index 000000000..3123b166d
--- /dev/null
+++ b/loleaflet/images/icon-set-symbols1-check.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#76a797" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#507c6e"/><path d="m2.9743327 8.6823554 4.017513 3.3539126 8.0350293-10.061733" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.927546"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-symbols1-cross.svg b/loleaflet/images/icon-set-symbols1-cross.svg
new file mode 100644
index 000000000..48db8f397
--- /dev/null
+++ b/loleaflet/images/icon-set-symbols1-cross.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#d86344" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#a93f23"/><path d="m4 12 8-8" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m12 12-8-7.9999998" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-symbols1-exclamation-mark.svg b/loleaflet/images/icon-set-symbols1-exclamation-mark.svg
new file mode 100644
index 000000000..160bc7620
--- /dev/null
+++ b/loleaflet/images/icon-set-symbols1-exclamation-mark.svg
@@ -0,0 +1,7 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+ />
+ <circle cx="8" cy="8" fill="#eac282" r="7"/><path d="m8 0a8 8 0 0 0 -8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0 -8-8zm0 1a7 7 0 0 1 7 7 7 7 0 0 1 -7 7 7 7 0 0 1 -7-7 7 7 0 0 1 7-7z" fill="#dea13e"/><rect fill="#fff" height="9" ry="1" width="2" x="7" y="2"/><rect fill="#fff" height="2" ry="1" width="2" x="7" y="12"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-trafficlights-green.svg b/loleaflet/images/icon-set-trafficlights-green.svg
new file mode 100644
index 000000000..44a53b085
--- /dev/null
+++ b/loleaflet/images/icon-set-trafficlights-green.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><rect fill="#808080" height="16" ry="1" width="16"/><circle cx="8" cy="8" fill="#fff" r="7"/><circle cx="8" cy="8" fill="#76a797" r="6"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-trafficlights-red.svg b/loleaflet/images/icon-set-trafficlights-red.svg
new file mode 100644
index 000000000..aec54d0ba
--- /dev/null
+++ b/loleaflet/images/icon-set-trafficlights-red.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><rect fill="#808080" height="16" ry="1" width="16"/><circle cx="8" cy="8" fill="#fff" r="7"/><circle cx="8" cy="8" fill="#d86344" r="6"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-trafficlights-yellow.svg b/loleaflet/images/icon-set-trafficlights-yellow.svg
new file mode 100644
index 000000000..829478cbe
--- /dev/null
+++ b/loleaflet/images/icon-set-trafficlights-yellow.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">/><rect fill="#808080" height="16" ry="1" width="16"/><circle cx="8" cy="8" fill="#fff" r="7"/><circle cx="8" cy="8" fill="#eac282" r="6"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-triangles-down.svg b/loleaflet/images/icon-set-triangles-down.svg
new file mode 100644
index 000000000..49b1c7e94
--- /dev/null
+++ b/loleaflet/images/icon-set-triangles-down.svg
@@ -0,0 +1,8 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+
+ />
+ <path d="m15.499912 7.5000048h-14.99999958l7.50008758 7.0000132z" fill="#d86344" fill-rule="evenodd" stroke="#a93f23" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-triangles-same.svg b/loleaflet/images/icon-set-triangles-same.svg
new file mode 100644
index 000000000..5c5f6d7f7
--- /dev/null
+++ b/loleaflet/images/icon-set-triangles-same.svg
@@ -0,0 +1,8 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+
+ />
+ <rect fill="#eac282" height="3.000499" ry="1.000166" width="15.112699" x=".44365" y="6.499751"/><path d="m1.5 6c-.82244347 0-1.5.6775566-1.5 1.5v1c0 .8224434.67755653 1.5 1.5 1.5h13c .822443 0 1.5-.6775566 1.5-1.5v-1c0-.8224434-.677557-1.5-1.5-1.5zm0 1h13c .28574 0 .5.2142593.5.5v1c0 .2857407-.21426.5-.5.5h-13c-.2857407 0-.50000001-.2142593-.50000001-.5v-1c0-.2857407.21425931-.5.50000001-.5z" fill="#dea13e"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/icon-set-triangles-up.svg b/loleaflet/images/icon-set-triangles-up.svg
new file mode 100644
index 000000000..13d4a9270
--- /dev/null
+++ b/loleaflet/images/icon-set-triangles-up.svg
@@ -0,0 +1,8 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+
+
+
+
+
+ />
+ <path d="m15.499912 8.5h-14.99999958l7.50008758-7.0000136z" fill="#76a797" fill-rule="evenodd" stroke="#507c6e" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/loleaflet/images/lc_conditionalformatdialog.svg b/loleaflet/images/lc_conditionalformatdialog.svg
new file mode 100644
index 000000000..421ff9da6
--- /dev/null
+++ b/loleaflet/images/lc_conditionalformatdialog.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <path
+ style="fill:#4d4d4d"
+ d="M 8 4 C 6.9282 7.8182 4 10.072941 4 12.181641 C 4 14.290341 5.79086 16 8 16 C 10.20914 16 12 14.290341 12 12.181641 C 12 10.072941 9.0718 7.8182 8 4 z M 10.75 10.232422 A 3.4285713 3.2727273 0 0 1 11.427734 12.181641 A 3.4285713 3.2727273 0 0 1 8 15.455078 A 3.4285713 3.2727273 0 0 1 5.9628906 14.808594 A 3.9999998 3.8181818 0 0 0 6.8574219 14.908203 A 3.9999998 3.8181818 0 0 0 10.857422 11.091797 A 3.9999998 3.8181818 0 0 0 10.75 10.232422 z "
+ />
+ <path
+ style="fill:#1d99f3"
+ d="M 18.4375 13 L 17.283203 15 L 14 15 L 14 16 L 16.707031 16 L 16.128906 17 L 14 17 L 14 18 L 15.552734 18 L 14.6875 19.5 L 15.5625 20 L 16.716797 18 L 20 18 L 20 17 L 17.292969 17 L 17.871094 16 L 20 16 L 20 15 L 18.447266 15 L 19.3125 13.5 L 18.4375 13 z "
+ />
+ </svg>
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index 258aad8cd..d90d14ae2 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -288,6 +288,23 @@ function setBorderStyle(num) {
global.setBorderStyle = setBorderStyle;
+function setConditionalFormatIconSet(num) {
+ var params = {
+ IconSet: {
+ type : 'short',
+ value : num
+ }};
+ map.sendUnoCommand('.uno:IconSetFormatDialog', params);
+
+ // close the popup
+ if ($('#w2ui-overlay-toolbar-up').length > 0) {
+ $('#w2ui-overlay-toolbar-up').removeData('keepOpen')[0].hide();
+ }
+ map.focus();
+}
+
+global.setConditionalFormatIconSet = setConditionalFormatIconSet;
+
function insertTable() {
var rows = 10;
var cols = 10;
@@ -642,6 +659,16 @@ function createToolbar() {
'<td class="w2ui-tb-image w2ui-icon frame12" onclick="setBorderStyle(12)"></td></tr><tr>' +
'<td colspan="4" class="w2ui-tb-image w2ui-icon frame13" onclick="setBorderStyle(0)"><div id="div-frame13">' + _('More...') + '</div></td></tr></table>'
},
+ {type: 'drop', id: 'conditionalformaticonset', img: 'conditionalformatdialog', hint: _UNO('.uno:ConditionalFormatMenu'),
+ html: '<table id="conditionalformatmenu-grid"><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset00" onclick="setConditionalFormatIconSet(0)"/><td class="w2ui-tb-image w2ui-icon iconset01" onclick="setConditionalFormatIconSet(1)"/><td class="w2ui-tb-image w2ui-icon iconset02" onclick="setConditionalFormatIconSet(2)"/></tr><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset03" onclick="setConditionalFormatIconSet(3)"/><td class="w2ui-tb-image w2ui-icon iconset04" onclick="setConditionalFormatIconSet(4)"/><td class="w2ui-tb-image w2ui-icon iconset05" onclick="setConditionalFormatIconSet(5)"/></tr><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset06" onclick="setConditionalFormatIconSet(6)"/><td class="w2ui-tb-image w2ui-icon iconset08" onclick="setConditionalFormatIconSet(8)"/><td class="w2ui-tb-image w2ui-icon iconset09" onclick="setConditionalFormatIconSet(9)"/></tr><tr>' + // iconset07 deliberately left out, see the .css for the reason
+ '<td class="w2ui-tb-image w2ui-icon iconset10" onclick="setConditionalFormatIconSet(10)"/><td class="w2ui-tb-image w2ui-icon iconset11" onclick="setConditionalFormatIconSet(11)"/><td class="w2ui-tb-image w2ui-icon iconset12" onclick="setConditionalFormatIconSet(12)"/></tr><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset13" onclick="setConditionalFormatIconSet(13)"/><td class="w2ui-tb-image w2ui-icon iconset14" onclick="setConditionalFormatIconSet(14)"/><td class="w2ui-tb-image w2ui-icon iconset15" onclick="setConditionalFormatIconSet(15)"/></tr><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset16" onclick="setConditionalFormatIconSet(16)"/><td class="w2ui-tb-image w2ui-icon iconset17" onclick="setConditionalFormatIconSet(17)"/><td class="w2ui-tb-image w2ui-icon iconset18" onclick="setConditionalFormatIconSet(18)"/></tr><tr>' +
+ '<td class="w2ui-tb-image w2ui-icon iconset19" onclick="setConditionalFormatIconSet(19)"/><td class="w2ui-tb-image w2ui-icon iconset20" onclick="setConditionalFormatIconSet(20)"/><td class="w2ui-tb-image w2ui-icon iconset21" onclick="setConditionalFormatIconSet(21)"/></tr></table>'
+ },
{type: 'drop', id: 'insertshapes', img: 'basicshapes_ellipse', hint: _('Insert shapes'), overlay: {onShow: insertShapes},
html: '<div id="insertshape-wrapper"><div id="insertshape-popup" class="insertshape-pop ui-widget ui-widget-content ui-corner-all"><div class="insertshape-grid"></div></div></div>'},
{type: 'button', id: 'insertobjectchart', img: 'insertobjectchart', hint: _UNO('.uno:InsertObjectChart', '', true), uno: 'InsertObjectChart'},
@@ -1178,7 +1205,7 @@ function onDocLayerInit() {
break;
case 'text':
- toolbarUp.remove('wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle');
+ toolbarUp.remove('wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformatmenu');
statusbar.insert('left', [
{type: 'break', id: 'break1'},
{type: 'html', id: 'StatePageNumber',
@@ -1209,7 +1236,7 @@ function onDocLayerInit() {
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', 'setborderstyle');
+ toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformatmenu');
statusbar.insert('left', [
{type: 'break', id:'break1'},
{type: 'html', id: 'PageStatus',
@@ -1225,7 +1252,7 @@ function onDocLayerInit() {
break;
case 'drawing':
- toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle');
+ toolbarUp.remove('insertannotation', 'wraptextseparator', 'wraptext', 'togglemergecells', 'break-toggle', 'numberformatcurrency', 'numberformatpercent', 'numberformatdecimal', 'numberformatdate', 'numberformatincdecimals', 'numberformatdecdecimals', 'break-number', 'sortascending', 'sortdescending', 'setborderstyle', 'conditionalformatmenu');
// Remove irrelevant toolbars
$('#formulabar').hide();
diff --git a/loleaflet/src/unocommands.js b/loleaflet/src/unocommands.js
index b0b83f249..60cd2cc88 100644
--- a/loleaflet/src/unocommands.js
+++ b/loleaflet/src/unocommands.js
@@ -27,6 +27,7 @@ var unoCommandsArray = {
CommonAlignRight:{global:{menu:_('Right'),},},
CommonAlignTop:{global:{menu:_('Top'),},},
CommonAlignVerticalCenter:{global:{menu:_('Center'),},},
+ ConditionalFormatMenu:{spreadsheet:{menu:_('C~onditional Formatting'),},},
ContinueNumbering:{text:{menu:_('Continue previous numbering'),},},
ControlCodes:{text:{menu:_('For~matting Marks'),},},
Copy:{global:{menu:_('Cop~y'),},},
More information about the Libreoffice-commits
mailing list