[Libreoffice-commits] online.git: loleaflet/css loleaflet/src

Marco Cecchetti (via logerrit) logerrit at kemper.freedesktop.org
Thu Dec 5 12:46:02 UTC 2019


 loleaflet/css/toolbar.css                        |    2 -
 loleaflet/src/control/Control.JSDialogBuilder.js |   27 ++++++++++++++++++----
 loleaflet/src/control/Control.Menubar.js         |   28 ++++++++++++++++-------
 loleaflet/src/control/Control.MobileWizard.js    |    8 ++++--
 loleaflet/src/control/Control.Toolbar.js         |   27 ++++++++++++++++++++++
 5 files changed, 76 insertions(+), 16 deletions(-)

New commits:
commit 4c3ef4c504e4111e9009a567e0b160404407471a
Author:     Marco Cecchetti <marco.cecchetti at collabora.com>
AuthorDate: Thu Dec 5 13:44:28 2019 +0100
Commit:     Marco Cecchetti <marco.cecchetti at collabora.com>
CommitDate: Thu Dec 5 13:44:45 2019 +0100

    move shapes palette from vex dialog to mobile wizard
    
    Change-Id: I76e136140e9268706f53ffc799703bbc72f70099

diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index d53a3e612..d2d4048d6 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -760,7 +760,7 @@ button.leaflet-control-search-next
 		position: relative;
 		padding: 2px;
 		display: inline-block;
-		width:  350px;
+		width:  100%;
 		height: 100%;
 }
 
diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js
index 782eb826c..e60ec7bb0 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -39,6 +39,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		this._controlHandlers['listbox'] = this._comboboxControl;
 		this._controlHandlers['valueset'] = this._valuesetControl;
 		this._controlHandlers['fixedtext'] = this._fixedtextControl;
+		this._controlHandlers['htmlcontrol'] = this._htmlControl;
 		this._controlHandlers['grid'] = this._gridHandler;
 		this._controlHandlers['frame'] = this._frameHandler;
 		this._controlHandlers['panel'] = this._panelHandler;
@@ -1123,6 +1124,20 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		return false;
 	},
 
+	_htmlControl: function(parentContainer, data) {
+		var container = L.DomUtil.create('div', 'mobile-wizard', parentContainer);
+		container.appendChild(data.content);
+		container.id = data.id;
+		if (data.style && data.style.length) {
+			L.DomUtil.addClass(container, data.style);
+		}
+
+		if (data.hidden)
+			$(container).hide();
+
+		return false;
+	},
+
 	_createIconPath: function(name) {
 		if (!name)
 			return '';
@@ -1399,11 +1414,6 @@ L.Control.JSDialogBuilder = L.Control.extend({
 
 		if (builder.wizard) {
 			$(menuEntry).click(function() {
-				if (data.executionType === 'action') {
-					builder.map.menubar._executeAction(undefined, data.id);
-				} else {
-					builder.map.sendUnoCommand(data.command)
-				}
 				if (window.insertionMobileWizard)
 					window.onClick(null, 'insertion_mobile_wizard');
 				else if (window.mobileMenuWizard)
@@ -1412,6 +1422,13 @@ L.Control.JSDialogBuilder = L.Control.extend({
 					window.contextMenuWizard = false;
 					builder.map.fire('closemobilewizard');
 				}
+
+				// before close the wizard then execute the action
+				if (data.executionType === 'action') {
+					builder.map.menubar._executeAction(undefined, data.id);
+				} else {
+					builder.map.sendUnoCommand(data.command)
+				}
 			});
 		} else {
 			console.debug('Builder used outside of mobile wizard: please implement the click handler');
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index dee207243..91b0b3eb2 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -1031,13 +1031,25 @@ L.Control.Menubar = L.Control.extend({
 		});
 	},
 
-	_openInsertShapesDialog: function() {
-		vex.open({
-			unsafeContent: '<div id="insertshape-wrapper"><div id="insertshape-popup" class="insertshape-pop ui-widget ui-corner-all"><div class="insertshape-grid"></div></div></div>',
-			afterOpen: function() {
-				window.insertShapes(true);
-			}
-		});
+	_openInsertShapesWizard: function() {
+		var content = window.createShapesPanel();
+		var data = {
+			id: 'insertshape',
+			type: '',
+			text: 'Insert Shape',
+			enabled: true,
+			children: []
+		};
+
+		var container = {
+			id: '',
+			type: 'htmlcontrol',
+			content: content,
+			enabled: true
+		};
+
+		data.children.push(container);
+		this._map._docLayer._openMobileWizard(data);
 	},
 
 	_executeAction: function(item, id) {
@@ -1091,7 +1103,7 @@ L.Control.Menubar = L.Control.extend({
 		} else if (id === 'insertpage') {
 			this._map.insertPage();
 		} else if (id === 'insertshape') {
-			this._openInsertShapesDialog();
+			this._openInsertShapesWizard();
 		} else if (id === 'duplicatepage') {
 			this._map.duplicatePage();
 		} else if (id === 'deletepage') {
diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js
index c02e6d5fc..8837b2f3b 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -191,9 +191,13 @@ L.Control.MobileWizard = L.Control.extend({
 			this._mainTitle = data.text ? data.text : '';
 			this._setTitle(this._mainTitle);
 
-			if (data.id === 'menubar') {
+			if (data.id === 'menubar' || data.id === 'insertshape') {
 				$('#mobile-wizard').height('100%');
-				$('#mobile-wizard').addClass('menuwizard');
+				if (data.id === 'menubar')
+					$('#mobile-wizard').addClass('menuwizard');
+				else if (data.id === 'insertshape') {
+					$('#mobile-wizard').addClass('shapeswizard');
+				}
 				if (this.map .getDocType() === 'spreadsheet')
 					$('#mobile-wizard').css('top', $('#spreadsheet-row-column-frame').css('top'));
 				else
diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index fc5fa8197..5d9de3baf 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -648,6 +648,32 @@ var shapes = {
 	]
 };
 
+function createShapesPanel() {
+	var $grid = $('<div/>').addClass('insertshape-grid');
+
+	for (var s in shapes) {
+		var $rowHeader = $('<div/>').addClass('row-header loleaflet-font').append(_(s));
+		$grid.append($rowHeader);
+		var $row = $('<div/>').addClass('row');
+		$grid.append($row);
+		for (var idx = 0; idx < shapes[s].length; ++idx) {
+			var shape = shapes[s][idx];
+			var $col = $('<div/>').addClass('col w2ui-icon').addClass(shape.img);
+			$col.data('uno', shape.uno);
+			$row.append($col);
+		}
+	}
+
+	$grid.on({
+		click: function(e) {
+			map.sendUnoCommand('.uno:' + $(e.target).data().uno);
+			map._docLayer._closeMobileWizard();
+		}
+	});
+
+	return $grid.get(0);
+}
+
 function insertShapes(mobile) {
 	var width = 10;
 	var $grid = $('.insertshape-grid');
@@ -2568,6 +2594,7 @@ global.updateCommandValues = updateCommandValues;
 global.onStyleSelect = onStyleSelect;
 global.insertTable = insertTable;
 global.insertShapes = insertShapes;
+global.createShapesPanel = createShapesPanel;
 global.onUpdatePermission = onUpdatePermission;
 global.onSearch = onSearch;
 global.onSearchKeyDown = onSearchKeyDown;


More information about the Libreoffice-commits mailing list