Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/166768
Change subject: Allow tools to specify which selection types they support ...................................................................... Allow tools to specify which selection types they support Change-Id: I3adb071b04461f630d1e2f66f3c141f297a3b91e --- M src/ui/tools/ve.ui.AnnotationTool.js M src/ui/tools/ve.ui.ClearAnnotationTool.js M src/ui/tools/ve.ui.FormatTool.js M src/ui/tools/ve.ui.IndentationTool.js M src/ui/tools/ve.ui.InspectorTool.js M src/ui/tools/ve.ui.ListTool.js M src/ui/ve.ui.Tool.js 7 files changed, 16 insertions(+), 10 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/68/166768/1 diff --git a/src/ui/tools/ve.ui.AnnotationTool.js b/src/ui/tools/ve.ui.AnnotationTool.js index c9b4903..c758abc 100644 --- a/src/ui/tools/ve.ui.AnnotationTool.js +++ b/src/ui/tools/ve.ui.AnnotationTool.js @@ -35,7 +35,7 @@ */ ve.ui.AnnotationTool.static.annotation = { name: '' }; -ve.ui.AnnotationTool.static.requiresRange = true; +ve.ui.AnnotationTool.static.requiresSelection = [ 'linear' ]; ve.ui.AnnotationTool.static.deactivateOnSelect = false; diff --git a/src/ui/tools/ve.ui.ClearAnnotationTool.js b/src/ui/tools/ve.ui.ClearAnnotationTool.js index 494bc64..9ea0a25 100644 --- a/src/ui/tools/ve.ui.ClearAnnotationTool.js +++ b/src/ui/tools/ve.ui.ClearAnnotationTool.js @@ -36,7 +36,7 @@ ve.ui.ClearAnnotationTool.static.title = OO.ui.deferMsg( 'visualeditor-clearbutton-tooltip' ); -ve.ui.ClearAnnotationTool.static.requiresRange = true; +ve.ui.ClearAnnotationTool.static.requiresSelection = [ 'linear' ]; ve.ui.ClearAnnotationTool.static.commandName = 'clear'; diff --git a/src/ui/tools/ve.ui.FormatTool.js b/src/ui/tools/ve.ui.FormatTool.js index 7f6059f..5bbbfc7 100644 --- a/src/ui/tools/ve.ui.FormatTool.js +++ b/src/ui/tools/ve.ui.FormatTool.js @@ -40,7 +40,7 @@ */ ve.ui.FormatTool.static.format = null; -ve.ui.FormatTool.static.requiresRange = true; +ve.ui.FormatTool.static.requiresSelection = [ 'linear' ]; /* Methods */ diff --git a/src/ui/tools/ve.ui.IndentationTool.js b/src/ui/tools/ve.ui.IndentationTool.js index e9e6fe1..d65883e 100644 --- a/src/ui/tools/ve.ui.IndentationTool.js +++ b/src/ui/tools/ve.ui.IndentationTool.js @@ -25,7 +25,7 @@ /* Static Properties */ -ve.ui.IndentationTool.static.requiresRange = true; +ve.ui.IndentationTool.static.requiresSelection = [ 'linear' ]; /* Methods */ diff --git a/src/ui/tools/ve.ui.InspectorTool.js b/src/ui/tools/ve.ui.InspectorTool.js index d3444e9..bd60083 100644 --- a/src/ui/tools/ve.ui.InspectorTool.js +++ b/src/ui/tools/ve.ui.InspectorTool.js @@ -36,7 +36,7 @@ */ ve.ui.InspectorTool.static.modelClasses = []; -ve.ui.InspectorTool.static.requiresRange = true; +ve.ui.InspectorTool.static.requiresSelection = [ 'linear' ]; ve.ui.InspectorTool.static.deactivateOnSelect = false; diff --git a/src/ui/tools/ve.ui.ListTool.js b/src/ui/tools/ve.ui.ListTool.js index d122267..b87aa82 100644 --- a/src/ui/tools/ve.ui.ListTool.js +++ b/src/ui/tools/ve.ui.ListTool.js @@ -38,7 +38,7 @@ */ ve.ui.ListTool.static.style = ''; -ve.ui.ListTool.static.requiresRange = true; +ve.ui.ListTool.static.requiresSelection = [ 'linear' ]; ve.ui.ListTool.static.deactivateOnSelect = false; diff --git a/src/ui/ve.ui.Tool.js b/src/ui/ve.ui.Tool.js index 1d553d2..ed6b4e6 100644 --- a/src/ui/ve.ui.Tool.js +++ b/src/ui/ve.ui.Tool.js @@ -27,10 +27,13 @@ /* Static Properties */ /** - * This tool requires this surface to be focused to work - * @type {boolean} + * Selection types this tool requires. + * + * If the tool doesn't require a specific selection type, use null. + * + * @type {string[]|null} */ -ve.ui.Tool.static.requiresRange = false; +ve.ui.Tool.static.requiresSelection = null; /** * Command to execute when tool is selected. @@ -72,7 +75,10 @@ * @param {Object} direction Context direction with 'inline' & 'block' properties */ ve.ui.Tool.prototype.onUpdateState = function ( fragment ) { - this.setDisabled( this.constructor.static.requiresRange && fragment.isNull() ); + this.setDisabled( + this.constructor.static.requiresSelection && + ve.indexOf( fragment.getSelection().constructor.static.name, this.constructor.static.requiresSelection ) === -1 + ); }; /** -- To view, visit https://gerrit.wikimedia.org/r/166768 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3adb071b04461f630d1e2f66f3c141f297a3b91e Gerrit-PatchSet: 1 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits