Skip to content
This repository has been archived by the owner on Sep 6, 2021. It is now read-only.

fix #2957. fix unit tests by re-enabling multiple bindings. #4338

Merged
merged 1 commit into from
Jun 25, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,8 @@ module.exports = function (grunt) {
grunt.registerTask('install', ['write-config']);

// task: test
//grunt.registerTask('test', ['jshint', 'jasmine']);
// grunt.registerTask('test', ['jshint', 'jasmine-node']);
grunt.registerTask('test', ['jshint']);
grunt.registerTask('test', ['jshint:all', 'jasmine']);
//grunt.registerTask('test', ['jshint:all', 'jasmine', jasmine-node']);

// task: set-sprint
// Update sprint number in package.json and rewrite src/config.json
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"grunt-cli": "0.1.6",
"phantomjs": "1.9.0-1",
"grunt-lib-phantomjs": "0.3.0",
"grunt-contrib-jshint": "0.2.0",
"grunt-contrib-jshint": "0.6.0",
"grunt-contrib-watch": "0.3.1",
"grunt-contrib-jasmine": "0.4.2",
"grunt-template-jasmine-requirejs": "0.1.0",
Expand All @@ -35,4 +35,4 @@
"url": "https://github.com/adobe/brackets/blob/master/LICENSE"
}
]
}
}
33 changes: 24 additions & 9 deletions src/command/KeyBindingManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
*/


/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50, regexp: true, boss: true */
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50, regexp: true*/
/*global define, $, brackets, window */
/*unittests: KeyBindingManager */

Expand All @@ -40,6 +40,10 @@ define(function (require, exports, module) {
Strings = require("strings");

var KeyboardPrefs = JSON.parse(require("text!base-config/keyboard.json"));

var ADD_BINDING_ERROR = {
EXPLICIT_BINDING_EXISTS: 1
};

/**
* @private
Expand Down Expand Up @@ -415,8 +419,7 @@ define(function (require, exports, module) {
removeBinding(normalized);
} else {
// do not re-assign a key binding
console.error("Cannot assign " + normalized + " to " + commandID + ". It is already assigned to " + _keyMap[normalized].commandID);
return null;
return { errorType: ADD_BINDING_ERROR.EXPLICIT_BINDING_EXISTS, keyBinding: normalized };
}
}

Expand Down Expand Up @@ -551,7 +554,7 @@ define(function (require, exports, module) {
}

if (Array.isArray(keyBindings)) {
var keyBinding;
var keyBinding, errors = [];
results = [];

keyBindings.sort(function (a, b) {
Expand All @@ -572,17 +575,29 @@ define(function (require, exports, module) {
}
});

keyBindings.some(function addSingleBinding(keyBindingRequest) {
keyBindings.forEach(function addSingleBinding(keyBindingRequest) {
// attempt to add keybinding
keyBinding = _addBinding(commandID, keyBindingRequest, keyBindingRequest.platform);

if (keyBinding) {
results.push(keyBinding);
return true;
if (keyBinding.errorType) {
errors.push(keyBinding);
} else {
results.push(keyBinding);
}
}

return false;
});

if (errors.length) {
// only use console.error if no bindings were assigned
var logType = (results.length === 0) ? "error" : "log";

errors.forEach(function (error) {
if (error.errorType === ADD_BINDING_ERROR.EXPLICIT_BINDING_EXISTS) {
console[logType]("Cannot assign " + error.keyBinding + " to " + commandID + ". It is already assigned to " + _keyMap[error.keyBinding].commandID);
}
});
}
} else {
results = _addBinding(commandID, keyBindings, platform);
}
Expand Down
2 changes: 1 addition & 1 deletion src/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"grunt-cli": "0.1.6",
"phantomjs": "1.9.0-1",
"grunt-lib-phantomjs": "0.3.0",
"grunt-contrib-jshint": "0.2.0",
"grunt-contrib-jshint": "0.6.0",
"grunt-contrib-watch": "0.3.1",
"grunt-contrib-jasmine": "0.4.2",
"grunt-template-jasmine-requirejs": "0.1.0",
Expand Down