feature : add keyboard shortcuts

+ added shortcut to create new frames (n)
+ added shortcut to duplicate frame (shift+n)
This commit is contained in:
jdescottes 2013-11-20 22:58:20 +01:00
parent 6eabf01ffc
commit 0a05374af5
2 changed files with 20 additions and 6 deletions

View File

@ -20,6 +20,8 @@
ns.PiskelController.prototype.init = function () { ns.PiskelController.prototype.init = function () {
pskl.app.shortcutService.addShortcut('up', this.selectPreviousFrame.bind(this)); pskl.app.shortcutService.addShortcut('up', this.selectPreviousFrame.bind(this));
pskl.app.shortcutService.addShortcut('down', this.selectNextFrame.bind(this)); pskl.app.shortcutService.addShortcut('down', this.selectNextFrame.bind(this));
pskl.app.shortcutService.addShortcut('n', this.addFrameAtCurrentIndex.bind(this));
pskl.app.shortcutService.addShortcut('shift+n', this.duplicateCurrentFrame.bind(this));
$.publish(Events.PISKEL_RESET); $.publish(Events.PISKEL_RESET);
$.publish(Events.FRAME_SIZE_CHANGED); $.publish(Events.FRAME_SIZE_CHANGED);
@ -68,15 +70,21 @@
return !!this.getCurrentLayer().getFrameAt(index); return !!this.getCurrentLayer().getFrameAt(index);
}; };
// backward from framesheet ns.PiskelController.prototype.addFrame = function () {
ns.PiskelController.prototype.getFrameByIndex = this.addFrameAt(this.getFrameCount());
ns.PiskelController.prototype.getMergedFrameAt; };
ns.PiskelController.prototype.addEmptyFrame = function () { ns.PiskelController.prototype.addFrameAtCurrentIndex = function () {
this.addFrameAt(this.currentFrameIndex + 1);
};
ns.PiskelController.prototype.addFrameAt = function (index) {
var layers = this.getLayers(); var layers = this.getLayers();
layers.forEach(function (l) { layers.forEach(function (l) {
l.addFrame(this.createEmptyFrame_()); l.addFrameAt(this.createEmptyFrame_(), index);
}.bind(this)); }.bind(this));
$.publish(Events.PISKEL_RESET);
}; };
ns.PiskelController.prototype.createEmptyFrame_ = function () { ns.PiskelController.prototype.createEmptyFrame_ = function () {
@ -97,11 +105,17 @@
$.publish(Events.PISKEL_RESET); $.publish(Events.PISKEL_RESET);
}; };
ns.PiskelController.prototype.duplicateCurrentFrame = function () {
this.duplicateFrameAt(this.currentFrameIndex);
};
ns.PiskelController.prototype.duplicateFrameAt = function (index) { ns.PiskelController.prototype.duplicateFrameAt = function (index) {
var layers = this.getLayers(); var layers = this.getLayers();
layers.forEach(function (l) { layers.forEach(function (l) {
l.duplicateFrameAt(index); l.duplicateFrameAt(index);
}); });
$.publish(Events.PISKEL_RESET);
}; };
ns.PiskelController.prototype.moveFrame = function (fromIndex, toIndex) { ns.PiskelController.prototype.moveFrame = function (fromIndex, toIndex) {

View File

@ -19,7 +19,7 @@
}; };
ns.PreviewFilmController.prototype.addFrame = function () { ns.PreviewFilmController.prototype.addFrame = function () {
this.piskelController.addEmptyFrame(); this.piskelController.addFrame();
this.piskelController.setCurrentFrameIndex(this.piskelController.getFrameCount() - 1); this.piskelController.setCurrentFrameIndex(this.piskelController.getFrameCount() - 1);
this.updateScrollerOverflows(); this.updateScrollerOverflows();
}; };