jenkins-bot has submitted this change and it was merged.
Change subject: [BREAKING CHANGE] Allow tools to specify which selection types
they support
......................................................................
[BREAKING CHANGE] 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(-)
Approvals:
Catrope: Looks good to me, approved
jenkins-bot: Verified
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: merged
Gerrit-Change-Id: I3adb071b04461f630d1e2f66f3c141f297a3b91e
Gerrit-PatchSet: 7
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits