X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FBuilder4%2FWindowState.vala;h=08dd43b2dc4b8bf73a75238d7be2d4a031d64088;hb=071e6176bacac9fcc0f47eab7c4b6af448d0a654;hp=9b36ce06dd2e6e805cb41709d0b77f1d010bace8;hpb=44530a5fd56f5bc19133f1acb17e2bfdc4e8dbe5;p=app.Builder.js diff --git a/src/Builder4/WindowState.vala b/src/Builder4/WindowState.vala index 9b36ce06d..08dd43b2d 100644 --- a/src/Builder4/WindowState.vala +++ b/src/Builder4/WindowState.vala @@ -8,7 +8,7 @@ public class WindowState : Object { public Xcls_MainWindow win; - + public enum State { NONE, PREVIEW, @@ -30,8 +30,7 @@ public class WindowState : Object public Project.Project project; public JsRender.JsRender file; - - + public Xcls_WindowLeftTree left_tree; public Xcls_WindowAddProp add_props; @@ -94,15 +93,9 @@ public class WindowState : Object this.template_select = new DialogTemplateSelect(); this.children_loaded = true; - this.left_tree.node_selected.connect((sel) => { - if (this.file.xtype == "Roo") { - this.window_rooview.sourceview.nodeSelected(sel); - } else { - this.window_gladeview.sourceview.nodeSelected(sel); - } - }); + this.valasource = new Palete.ValaSource(); - this.valasource.compiled.connect(this.valaCompiled); + this.valasource.compiled.connect(this.showCompileResult); this.compile_results = new Xcls_ValaCompileResults(); this.compile_results.window = this.win; @@ -127,16 +120,31 @@ public class WindowState : Object this.left_tree.el.show_all(); this.left_tree.before_node_change.connect(() => { + // if the node change is caused by the editor (code preview) + if (this.left_tree.view.lastEventSource == "editor") { + return true; + } return this.leftTreeBeforeChange(); }); - - this.left_tree.node_selected.connect((sel) => { - this.leftTreeNodeSelected(sel); + + this.left_tree.node_selected.connect((sel, source) => { + if (source == "editor") { + return; + } + if (this.file.xtype == "Roo") { + this.window_rooview.sourceview.nodeSelected(sel,true); // foce scroll. + } else { + this.window_gladeview.sourceview.nodeSelected(sel); + } + }); + + this.left_tree.node_selected.connect((sel, source) => { + this.leftTreeNodeSelected(sel, source); }); this.left_tree.changed.connect(() => { - + print("LEFT TREE: Changed fired\n"); this.file.save(); if (this.left_tree.getActiveFile().xtype == "Roo" ) { this.window_rooview.requestRedraw(); @@ -160,7 +168,7 @@ public class WindowState : Object return false; } - public void leftTreeNodeSelected(JsRender.Node? sel) + public void leftTreeNodeSelected(JsRender.Node? sel, string source) { print("node_selected called %s\n", (sel == null) ? "NULL" : "a value"); @@ -504,6 +512,7 @@ public class WindowState : Object } + // our project properties is different for Roo and Gtk // it would be better to change the above code to use this, public void attachProjectSettings() { @@ -520,9 +529,16 @@ public class WindowState : Object ctr_p.add(this.vala_projectsettings.el); this.vala_projectsettings.el.show_all(); } - - + } + /* + public void fileViewOpenPlain(string fname) + { + + this.switchState (State.CODEONLY); + this.code_editor.showPlainFile(fname); } + */ + // --------- webkit view public void webkitViewInit() { @@ -1119,7 +1135,7 @@ public class WindowState : Object } - public void valaCompiled(Json.Object obj) + public void showCompileResult(Json.Object obj) { // vala has finished compiling... print("vala compiled"); @@ -1159,11 +1175,11 @@ public class WindowState : Object this.win.statusbar_compilestatus_label.el.hide(); this.win.statusbar_run.el.hide(); if (!has_errors) { + this.win.statusbar_compilestatus_label.el.show(); this.win.statusbar_run.el.show(); } if (this.file.xtype == "Gtk") { - this.win.statusbar_compilestatus_label.el.show(); - + // not sure how this is working ok? - as highlighting is happening on the vala files at present.. var gbuf = this.window_gladeview.sourceview; gbuf.highlightErrorsJson("ERR", obj); gbuf.highlightErrorsJson("WARN", obj);