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

László Németh laszlo.nemeth at collabora.com
Tue Nov 3 09:09:17 PST 2015


 loleaflet/src/map/handler/Map.Keyboard.js |  169 ++++++++++++++++++++++++++----
 1 file changed, 147 insertions(+), 22 deletions(-)

New commits:
commit 9ab64a14468a4190cc06227757431c224f65415a
Author: László Németh <laszlo.nemeth at collabora.com>
Date:   Tue Nov 3 18:04:53 2015 +0100

    tdf#94608 Calc Ctrl shortcuts
    
    Basic Calc navigation and selection shortcuts
    
    + fix Ctrl+- (soft hyphen) in Firefox
    + fix Ctrl-L/R/E/J alignations in Calc
    + other shortcuts

diff --git a/loleaflet/src/map/handler/Map.Keyboard.js b/loleaflet/src/map/handler/Map.Keyboard.js
index a9c9ff7..3532795 100644
--- a/loleaflet/src/map/handler/Map.Keyboard.js
+++ b/loleaflet/src/map/handler/Map.Keyboard.js
@@ -69,6 +69,7 @@ L.Map.Keyboard = L.Handler.extend({
 		122 : 778,  // f11		: F11
 		144 : 1313, // num lock		: NUMLOCK
 		145 : 1314, // scroll lock	: SCROLLLOCK
+		173 : 5,    // dash		: DASH (on Firefox)
 		186 : 1317, // semi-colon	: SEMICOLON
 		187 : 1295, // equal sign	: EQUAL
 		188 : 1292, // comma		: COMMA
@@ -190,7 +191,7 @@ L.Map.Keyboard = L.Handler.extend({
 		var ctrl = e.originalEvent.ctrlKey ? this.keyModifier.ctrl : 0;
 		var alt = e.originalEvent.altKey ? this.keyModifier.alt : 0;
 		this.modifier = shift | ctrl | alt;
-		if (e.originalEvent.ctrlKey) {
+		if (ctrl) {
 			this._handleCtrlCommand(e);
 			return;
 		}
@@ -214,8 +215,16 @@ L.Map.Keyboard = L.Handler.extend({
 		var keyCode = e.originalEvent.keyCode;
 		var unoKeyCode = this._toUNOKeyCode(keyCode);
 
-		if (e.originalEvent.shiftKey) {
+		if (shift) {
 			unoKeyCode |= this.keyModifier.shift;
+
+			switch (e.originalEvent.keyCode) {
+				case 32: // space
+					if (this._map.getDocType() === 'spreadsheet') {
+						L.Socket.sendMessage('uno .uno:SelectRow');
+						return;
+					}
+			}
 		}
 
 		if (docLayer._permission === 'edit') {
@@ -262,6 +271,11 @@ L.Map.Keyboard = L.Handler.extend({
 		L.DomEvent.stopPropagation(e.originalEvent);
 	},
 
+
+    _getUno: function (calc, writer) {
+		return this._map.getDocType() === 'spreadsheet' ? calc : writer;
+	},
+
 	_handleCtrlCommand: function (e) {
 		if (e.type !== 'keydown' && e.originalEvent.key !== 'c' && e.originalEvent.key !== 'v') {
 			e.originalEvent.preventDefault();
@@ -273,6 +287,9 @@ L.Map.Keyboard = L.Handler.extend({
 			// Ctrl + Alt
 			if (!e.originalEvent.shiftKey) {
 				switch (e.originalEvent.keyCode) {
+					case 53: // 5
+						L.Socket.sendMessage('uno .uno:Strikeout');
+						break;
 					case 70: // f
 						L.Socket.sendMessage('uno .uno:InsertFootnote');
 						break;
@@ -289,23 +306,76 @@ L.Map.Keyboard = L.Handler.extend({
 			// Ctrl + Shift
 			if (!e.originalEvent.altKey) {
 				switch (e.originalEvent.keyCode) {
+					case 8: // backspace
+						L.Socket.sendMessage('uno .uno:DelToStartOfSentence');
+					break;
+					case 13: // return
+						L.Socket.sendMessage( this._getUno(
+							'',
+							'uno .uno:InsertColumnBreak'
+						));
+					case 32: // space
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:SelectColumn',
+							'uno .uno:InsertNonBreakingSpace'
+						));
+						break;
 					case 35: // end
-						L.Socket.sendMessage('uno .uno:EndOfDocumentSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoToEndOfData {"Sel":{"type":"string", "value": "1"}}',
+							'uno .uno:EndOfDocumentSel'
+						));
 						break;
 					case 36: // home
-						L.Socket.sendMessage('uno .uno:StartOfDocumentSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoToStart {"Sel":{"type":"string", "value":"1"}}',
+							'uno .uno:StartOfDocumentSel'
+						));
 						break;
 					case 37: // left arrow
-						L.Socket.sendMessage('uno .uno:WordLeftSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoLeftToStartOfDataSel',
+							'uno .uno:WordLeftSel'
+						));
 						break;
 					case 38: // up arrow
-						L.Socket.sendMessage('uno .uno:StartOfParaSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoUpToStartOfDataSel',
+							'uno .uno:StartOfParaSel'
+						));
 						break;
 					case 39: // right arrow
-						L.Socket.sendMessage('uno .uno:WordRightSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoRightToEndOfDataSel',
+							'uno .uno:WordRightSel'
+						));
 						break;
 					case 40: // down arrow
-						L.Socket.sendMessage('uno .uno:EndOfParaSel');
+						L.Socket.sendMessage( this._getUno(
+							'uno .uno:GoDownToEndOfDataSel',
+							'uno .uno:EndOfParaSel'
+						));
+						break;
+					case 46: // delete
+						L.Socket.sendMessage('uno .uno:DelToEndOfSentence');
+						break;
+					case 49: // 1
+						L.Socket.sendMessage('uno .uno:NumberFormatValue {"NumberFormatValue":{"type":"unsigned short", "value":"2"}}');
+						break;
+					case 50: // 2
+						L.Socket.sendMessage('uno .uno:NumberFormatTime');
+						break;
+					case 51: // 3
+						L.Socket.sendMessage('uno .uno:NumberFormatDate');
+						break;
+					case 52: // 4
+						L.Socket.sendMessage('uno .uno:NumberFormatCurrency');
+						break;
+					case 53: // 5
+						L.Socket.sendMessage('uno .uno:NumberFormatPercent');
+						break;
+					case 54: // 6
+						L.Socket.sendMessage('uno .uno:NumberFormatScientific');
 						break;
 					case 66: // b
 						L.Socket.sendMessage('uno .uno:SubScript');
@@ -313,6 +383,10 @@ L.Map.Keyboard = L.Handler.extend({
 					case 80: // p
 						L.Socket.sendMessage('uno .uno:SuperScript');
 						break;
+					case 173: // -
+					case 189: // -
+						L.Socket.sendMessage('uno .uno:InsertHardHyphen');
+						break;
 				}
 			}
 
@@ -321,6 +395,9 @@ L.Map.Keyboard = L.Handler.extend({
 		}
 
 		switch (e.originalEvent.keyCode) {
+			case 8: // backspace
+				L.Socket.sendMessage('uno .uno:DelToStartOfWord');
+				break;
 			case 13: // enter
 				L.Socket.sendMessage('uno .uno:InsertPagebreak');
 				break;
@@ -329,22 +406,43 @@ L.Map.Keyboard = L.Handler.extend({
 				L.Socket.sendMessage('uno .uno:ResetAttributes');
 				break;
 			case 35: // end
-				L.Socket.sendMessage('uno .uno:GoToEndOfDoc');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoToEndOfData',
+						'uno .uno:GoToEndOfDoc'
+				));
 				break;
 			case 36: // home
-				L.Socket.sendMessage('uno .uno:GoToStartOfDoc');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoToStart',
+						'uno .uno:GoToStartOfDoc'
+				));
 				break;
 			case 37: // left arrow
-				L.Socket.sendMessage('uno .uno:GoToPrevWord');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoLeftToStartOfData',
+						'uno .uno:GoToPrevWord'
+				));
 				break;
 			case 38: // up arrow
-				L.Socket.sendMessage('uno .uno:GoToPrevPara');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoUpToStartOfData',
+						'uno .uno:GoToPrevPara'
+				));
 				break;
 			case 39: // right arrow
-				L.Socket.sendMessage('uno .uno:GoToNextWord');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoRightToEndOfData',
+						'uno .uno:GoToNextWord'
+				));
 				break;
 			case 40: // down arrow
-				L.Socket.sendMessage('uno .uno:GoToNextPara');
+				L.Socket.sendMessage( this._getUno(
+						'uno .uno:GoDownToEndOfData',
+						'uno .uno:GoToNextPara'
+				));
+				break;
+			case 46: // delete
+				L.Socket.sendMessage('uno .uno:DelToEndOfWord');
 				break;
 			case 48: // 0
 				this._map.applyStyle('Text body', 'ParagraphStyles');
@@ -358,14 +456,19 @@ L.Map.Keyboard = L.Handler.extend({
 			case 51: // 3
 				this._map.applyStyle('Heading 3', 'ParagraphStyles');
 				break;
-			case 52: // 2
+			case 52: // 4
 				this._map.applyStyle('Heading 4', 'ParagraphStyles');
 				break;
-			case 53: // 2
-				this._map.applyStyle('Heading 5', 'ParagraphStyles');
+			case 53: // 5
+				if (this._map.getDocType() === 'spreadsheet') {
+					L.Socket.sendMessage('uno .uno:Strikeout');
+				}
+				else {
+					this._map.applyStyle('Heading 5', 'ParagraphStyles');
+				}
 				break;
 			case 65: // a
-				L.Socket.sendMessage('uno .uno:Selectall');
+				L.Socket.sendMessage('uno .uno:SelectAll');
 				break;
 			case 66: // b
 				L.Socket.sendMessage('uno .uno:Bold');
@@ -376,33 +479,55 @@ L.Map.Keyboard = L.Handler.extend({
 				this._map._docLayer._textArea.focus();
 				this._map._docLayer._textArea.select();
 				break;
+			case 68: // d
+				L.Socket.sendMessage( this._getUno(
+					'uno .uno:FillDown',
+					'uno .uno:UnderlineDouble'
+				));
+				break;
 			case 69: // e
-				L.Socket.sendMessage('uno .uno:CenterPara');
+				L.Socket.sendMessage( this._getUno(
+					'uno .uno:HorizontalAlignment {"HorizontalAlignment":{"type":"unsigned short", "value":"2"}}',
+					'uno .uno:CenterPara'
+				));
 				break;
 			case 73: // i
 				L.Socket.sendMessage('uno .uno:Italic');
 				break;
 			case 74: // j
-				L.Socket.sendMessage('uno .uno:JustifyPara');
+				L.Socket.sendMessage( this._getUno(
+					'uno .uno:HorizontalAlignment {"HorizontalAlignment":{"type":"unsigned short", "value":"4"}}',
+					'uno .uno:JustifyPara'
+				));
 				break;
 			case 76: // l
-				L.Socket.sendMessage('uno .uno:LeftPara');
+				L.Socket.sendMessage( this._getUno(
+					'uno .uno:HorizontalAlignment {"HorizontalAlignment":{"type":"unsigned short", "value":"1"}}',
+					'uno .uno:LeftPara'
+				));
 				break;
 			case 80: // p
 				this._map.print();
 				break;
 			case 82: // r
-				L.Socket.sendMessage('uno .uno:RightPara');
+				L.Socket.sendMessage( this._getUno(
+					'uno .uno:HorizontalAlignment {"HorizontalAlignment":{"type":"unsigned short", "value":"3"}}',
+					'uno .uno:RightPara'
+				));
 				break;
 			case 85: // u
 				L.Socket.sendMessage('uno .uno:Underline');
 				break;
+			case 89: // y
+				L.Socket.sendMessage('uno .uno:Redo');
+				break;
 			case 90: // z
 				L.Socket.sendMessage('uno .uno:Undo');
 				break;
 			case 188: // ,
 				L.Socket.sendMessage('uno .uno:SubScript');
 				break;
+			case 173: // -
 			case 189: // -
 				L.Socket.sendMessage('uno .uno:InsertSoftHyphen');
 				break;


More information about the Libreoffice-commits mailing list