jenkins-bot has submitted this change and it was merged.
Change subject: Add keyboard shortcuts for formatting tools
......................................................................
Add keyboard shortcuts for formatting tools
Objective:
* Add keyboard shortcuts for paragraph, heading 1-6 and pre-formatted
Testing:
* Using [control+num] triggers appears to work well on Chrome, Safari, Firefox
and Opera on Mac
Changes:
ve.init.Target.js, ve.init.mw.ViewPageTarget.js
* Add formatting commands to targets
ve.ui.MWFormatTool.js
* Add mediawiki specific format tools and commands
ve.ui.CommandRegistry.js
* Add commands for all formatting tools
ve.ui.TriggerRegistry.js
* Add triggers for formatting tools
Bug: 33512
Change-Id: I5d6176eff50aa3cea72aed226ca06512629412d4
---
M modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js
M modules/ve/init/ve.init.Target.js
M modules/ve/ui/ve.ui.CommandRegistry.js
M modules/ve/ui/ve.ui.TriggerRegistry.js
4 files changed, 72 insertions(+), 43 deletions(-)
Approvals:
Catrope: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js
b/modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js
index 580703e..673e49a 100644
--- a/modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js
+++ b/modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js
@@ -21,6 +21,7 @@
ve.ui.MWHeading1FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading1';
ve.ui.MWHeading1FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 1 } };
ve.ui.toolFactory.register( ve.ui.MWHeading1FormatTool );
+ve.ui.commandRegistry.register( 'heading1', 'format', 'convert', 'mwHeading',
{ 'level': 1 } );
/**
* MediaWiki UserInterface heading 2 tool.
@@ -38,6 +39,7 @@
ve.ui.MWHeading2FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading2';
ve.ui.MWHeading2FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 2 } };
ve.ui.toolFactory.register( ve.ui.MWHeading2FormatTool );
+ve.ui.commandRegistry.register( 'heading2', 'format', 'convert', 'mwHeading',
{ 'level': 2 } );
/**
* MediaWiki UserInterface heading 3 tool.
@@ -55,6 +57,7 @@
ve.ui.MWHeading3FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading3';
ve.ui.MWHeading3FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 3 } };
ve.ui.toolFactory.register( ve.ui.MWHeading3FormatTool );
+ve.ui.commandRegistry.register( 'heading3', 'format', 'convert', 'mwHeading',
{ 'level': 3 } );
/**
* MediaWiki UserInterface heading 4 tool.
@@ -72,6 +75,7 @@
ve.ui.MWHeading4FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading4';
ve.ui.MWHeading4FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 4 } };
ve.ui.toolFactory.register( ve.ui.MWHeading4FormatTool );
+ve.ui.commandRegistry.register( 'heading4', 'format', 'convert', 'mwHeading',
{ 'level': 4 } );
/**
* MediaWiki UserInterface heading 5 tool.
@@ -89,6 +93,7 @@
ve.ui.MWHeading5FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading5';
ve.ui.MWHeading5FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 5 } };
ve.ui.toolFactory.register( ve.ui.MWHeading5FormatTool );
+ve.ui.commandRegistry.register( 'heading5', 'format', 'convert', 'mwHeading',
{ 'level': 5 } );
/**
* MediaWiki UserInterface heading 6 tool.
@@ -106,6 +111,7 @@
ve.ui.MWHeading6FormatTool.static.titleMessage =
'visualeditor-formatdropdown-format-mw-heading6';
ve.ui.MWHeading6FormatTool.static.format = { 'type' : 'mwHeading',
'attributes': { 'level': 6 } };
ve.ui.toolFactory.register( ve.ui.MWHeading6FormatTool );
+ve.ui.commandRegistry.register( 'heading6', 'format', 'convert', 'mwHeading',
{ 'level': 6 } );
/**
* MediaWiki UserInterface preformatted tool.
@@ -122,3 +128,4 @@
ve.inheritClass( ve.ui.MWPreformattedFormatTool, ve.ui.PreformattedFormatTool
);
ve.ui.MWPreformattedFormatTool.static.format = { 'type' : 'mwPreformatted' };
ve.ui.toolFactory.register( ve.ui.MWPreformattedFormatTool );
+ve.ui.commandRegistry.register( 'preformatted', 'format', 'convert',
'mwPreformatted' );
diff --git a/modules/ve/init/ve.init.Target.js
b/modules/ve/init/ve.init.Target.js
index 091f372..540103d 100644
--- a/modules/ve/init/ve.init.Target.js
+++ b/modules/ve/init/ve.init.Target.js
@@ -44,5 +44,20 @@
];
ve.init.Target.static.surfaceCommands = [
- 'undo', 'redo', 'bold', 'italic', 'link', 'clear', 'indent', 'outdent'
+ 'undo',
+ 'redo',
+ 'bold',
+ 'italic',
+ 'link',
+ 'clear',
+ 'indent',
+ 'outdent',
+ 'paragraph',
+ 'heading1',
+ 'heading2',
+ 'heading3',
+ 'heading4',
+ 'heading5',
+ 'heading6',
+ 'preformatted'
];
diff --git a/modules/ve/ui/ve.ui.CommandRegistry.js
b/modules/ve/ui/ve.ui.CommandRegistry.js
index 71c7deb..58d3500 100644
--- a/modules/ve/ui/ve.ui.CommandRegistry.js
+++ b/modules/ve/ui/ve.ui.CommandRegistry.js
@@ -53,45 +53,27 @@
ve.ui.commandRegistry = new ve.ui.CommandRegistry();
-ve.ui.commandRegistry.register(
- 'bold', 'annotation', 'toggle', 'textStyle/bold'
-);
-ve.ui.commandRegistry.register(
- 'italic', 'annotation', 'toggle', 'textStyle/italic'
-);
-ve.ui.commandRegistry.register(
- 'code', 'annotation', 'toggle', 'textStyle/code'
-);
-ve.ui.commandRegistry.register(
- 'strikethrough', 'annotation', 'toggle', 'textStyle/strike'
-);
-ve.ui.commandRegistry.register(
- 'underline', 'annotation', 'toggle', 'textStyle/underline'
-);
-ve.ui.commandRegistry.register(
- 'subscript', 'annotation', 'toggle', 'textStyle/subscript'
-);
-ve.ui.commandRegistry.register(
- 'superscript', 'annotation', 'toggle', 'textStyle/superscript'
-);
-ve.ui.commandRegistry.register(
- 'clear', 'annotation', 'clearAll'
-);
-ve.ui.commandRegistry.register(
- 'indent', 'indentation', 'increase'
-);
-ve.ui.commandRegistry.register(
- 'outdent', 'indentation', 'decrease'
-);
-ve.ui.commandRegistry.register(
- 'link', 'inspector', 'open', 'link'
-);
-ve.ui.commandRegistry.register(
- 'language', 'inspector', 'open', 'language'
-);
-ve.ui.commandRegistry.register(
- 'redo', 'history', 'redo'
-);
-ve.ui.commandRegistry.register(
- 'undo', 'history', 'undo'
-);
+/* Registrations */
+
+ve.ui.commandRegistry.register( 'bold', 'annotation', 'toggle',
'textStyle/bold' );
+ve.ui.commandRegistry.register( 'italic', 'annotation', 'toggle',
'textStyle/italic' );
+ve.ui.commandRegistry.register( 'code', 'annotation', 'toggle',
'textStyle/code' );
+ve.ui.commandRegistry.register( 'strikethrough', 'annotation', 'toggle',
'textStyle/strike' );
+ve.ui.commandRegistry.register( 'underline', 'annotation', 'toggle',
'textStyle/underline' );
+ve.ui.commandRegistry.register( 'subscript', 'annotation', 'toggle',
'textStyle/subscript' );
+ve.ui.commandRegistry.register( 'superscript', 'annotation', 'toggle',
'textStyle/superscript' );
+ve.ui.commandRegistry.register( 'clear', 'annotation', 'clearAll' );
+ve.ui.commandRegistry.register( 'indent', 'indentation', 'increase' );
+ve.ui.commandRegistry.register( 'outdent', 'indentation', 'decrease' );
+ve.ui.commandRegistry.register( 'link', 'inspector', 'open', 'link' );
+ve.ui.commandRegistry.register( 'language', 'inspector', 'open', 'language' );
+ve.ui.commandRegistry.register( 'redo', 'history', 'redo' );
+ve.ui.commandRegistry.register( 'undo', 'history', 'undo' );
+ve.ui.commandRegistry.register( 'paragraph', 'format', 'convert', 'paragraph'
);
+ve.ui.commandRegistry.register( 'heading1', 'format', 'convert', 'heading', {
'level': 1 } );
+ve.ui.commandRegistry.register( 'heading2', 'format', 'convert', 'heading', {
'level': 2 } );
+ve.ui.commandRegistry.register( 'heading3', 'format', 'convert', 'heading', {
'level': 3 } );
+ve.ui.commandRegistry.register( 'heading4', 'format', 'convert', 'heading', {
'level': 4 } );
+ve.ui.commandRegistry.register( 'heading5', 'format', 'convert', 'heading', {
'level': 5 } );
+ve.ui.commandRegistry.register( 'heading6', 'format', 'convert', 'heading', {
'level': 6 } );
+ve.ui.commandRegistry.register( 'preformatted', 'format', 'convert',
'preformatted' );
diff --git a/modules/ve/ui/ve.ui.TriggerRegistry.js
b/modules/ve/ui/ve.ui.TriggerRegistry.js
index b926df7..92e9764 100644
--- a/modules/ve/ui/ve.ui.TriggerRegistry.js
+++ b/modules/ve/ui/ve.ui.TriggerRegistry.js
@@ -84,3 +84,28 @@
ve.ui.triggerRegistry.register(
'undo', { 'mac': new ve.ui.Trigger( 'cmd+z' ), 'pc': new ve.ui.Trigger(
'ctrl+z' ) }
);
+// Ctrl+0-7 below are not mapped to Cmd+0-7 on Mac because Chrome reserves
those for switching tabs
+ve.ui.triggerRegistry.register(
+ 'paragraph', { 'mac': new ve.ui.Trigger( 'ctrl+0' ), 'pc': new
ve.ui.Trigger ( 'ctrl+0' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading1', { 'mac': new ve.ui.Trigger( 'ctrl+1' ), 'pc': new
ve.ui.Trigger ( 'ctrl+1' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading2', { 'mac': new ve.ui.Trigger( 'ctrl+2' ), 'pc': new
ve.ui.Trigger ( 'ctrl+2' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading3', { 'mac': new ve.ui.Trigger( 'ctrl+3' ), 'pc': new
ve.ui.Trigger ( 'ctrl+3' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading4', { 'mac': new ve.ui.Trigger( 'ctrl+4' ), 'pc': new
ve.ui.Trigger ( 'ctrl+4' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading5', { 'mac': new ve.ui.Trigger( 'ctrl+5' ), 'pc': new
ve.ui.Trigger ( 'ctrl+5' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'heading6', { 'mac': new ve.ui.Trigger( 'ctrl+6' ), 'pc': new
ve.ui.Trigger ( 'ctrl+6' ) }
+);
+ve.ui.triggerRegistry.register(
+ 'preformatted', { 'mac': new ve.ui.Trigger( 'ctrl+7' ), 'pc': new
ve.ui.Trigger ( 'ctrl+7' ) }
+);
--
To view, visit https://gerrit.wikimedia.org/r/81605
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I5d6176eff50aa3cea72aed226ca06512629412d4
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Trevor Parscal <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits