fix(save): move slap code from EditorWidget

This commit is contained in:
Dan Kaplun 2015-06-25 21:52:12 -04:00
parent a30ab82592
commit 35f0fcb7e2
2 changed files with 18 additions and 2 deletions

View File

@ -86,12 +86,28 @@ Pane.prototype.requestClose = function () {
}
};
Pane.prototype.save = function (path) {
var self = this;
var header = self.screen.slap.header;
var editor = self.editor;
return editor.save(path)
.tap(function () { header.message("saved to " + editor.textBuf.getPath(), 'success'); })
.catch(function (err) {
switch ((err.cause || err).code) {
case 'EACCES': case 'EISDIR':
header.message(err.message, 'error');
break;
default: throw err;
}
});
};
Pane.prototype._initHandlers = function () {
var self = this;
var editor = self.editor;
self.on('element keypress', function (el, ch, key) {
switch (self.resolveBinding(key)) {
case 'save': if (!editor.readOnly()) editor.textBuf.getPath() ? editor.save().done() : self.saveAsForm.show(); return false;
case 'save': if (!editor.readOnly()) editor.textBuf.getPath() ? self.save().done() : self.saveAsForm.show(); return false;
case 'saveAs': if (!editor.readOnly()) self.saveAsForm.show(); return false;
case 'close': self.requestClose(); return false;
case 'find': self.findForm.show(); return false;

View File

@ -48,7 +48,7 @@ SaveAsForm.prototype._initHandlers = function () {
self.screen.slap.header.message("couldn't save, no filename passed", 'error');
return;
}
self.pane.editor.save(path).done(function (newPath) {
self.pane.save(path).done(function (newPath) {
if (newPath) {
self.hide();
self.emit('save', newPath);