items : [
{
xtype: Gtk.Button,
+ listeners : {
+ clicked : function (self) {
+ this.get('/Editor.RightEditor').save();
+ }
+ },
+ id : "save_button",
label : "Save"
}
]
id : "RightEditor",
pack : "add",
save : function() {
+ var str = this.get('/Editor.buffer').toString();
this.get('/LeftPanel.model').changed( str , false);
+ this.get('/Editor').dirty = false;
+ this.get('/Editor.save_button').el.sensitive = false;
},
items : [
{
xtype: GtkSource.View,
listeners : {
key_release_event : function (self, event) {
- if (event.key.keyval != 115 || !(Gdk.ModifierType.CONTROL_MASK & 4) ) {
- return;
+
+ if (event.key.keyval == 115 && (event.key.state & Gdk.ModifierType.CONTROL_MASK ) ) {
+ print("SAVE: ctrl-S pressed");
+ this.save();
+ return false;
}
- print(event.key.keyval)
- this.save();
+ // print(event.key.keyval)
+
return false;
}
},
buf.move_mark(cursor, iter);
this.get('/Editor').dirty = false;
this.el.grab_focus();
+ this.get('/Editor.save_button').el.sensitive = false;
},
save : function() {
- var str = this.get('buffer').toString();
- print("SAVE" + str);
- this.get('/LeftPanel.model').changed( str , false);
+
+ this.get('/Editor.RightEditor').save();
},
show_line_numbers : true,
items : [
listeners : {
changed : function (self) {
- this.checkSyntax();
- print("EDITOR CHANGED");
+ if(this.checkSyntax()) {
+ this.get('/Editor.save_button').el.sensitive = true;
+ }
+ // print("EDITOR CHANGED");
this.get('/Editor').dirty = true;
- // this.get('/LeftPanel.model').changed( str , false);
+ // this.get('/LeftPanel.model').changed( str , false);
+ return false;
}
},
id : "buffer",
pack : "set_buffer",
checkSyntax : function() {
var str = this.toString();
+ var res = '';
try {
- Seed.check_syntax('var e = ' + str);
+ // print('var res = ' + str);
+ Seed.check_syntax('var res = ' + str);
+
+ this.get('/RightEditor.view').el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({
+ red: 0xFFFF, green: 0xFFFF , blue : 0xFFFF
+ }));
+
return true;
} catch (e) {
}));
print("SYNTAX ERROR IN EDITOR");
print(e);
- print(str);
+ // print(str);
//console.dump(e);
return false;
}
},
toString : function() {
- var s = new Gtk.TextIter();
+
+ var s = new Gtk.TextIter();
var e = new Gtk.TextIter();
this.el.get_start_iter(s);
this.el.get_end_iter(e);
- return this.el.get_text(s,e,true);
+ var ret = this.el.get_text(s,e,true);
+ //print("TO STRING? " + ret);
+ return ret;
}
}
]