"bool hexpand" : true,
"bool vexpand" : true,
"id" : "WindowLeftTree",
+ "int last_error_counter" : "-1",
"items" : [
{
"$ xns" : "Gtk",
" border-top-style: solid;",
" border-top-color: #88a3bc;",
"}",
+ ".node-err {",
+ " border-top-width: 5px;",
+ " border-top-style: solid;",
+ " border-top-color: red;",
+ " border-bottom-width: 5px; ",
+ " border-bottom-style: solid;",
+ " border-bottom-color: red;",
+ "}",
+ ".node-warn {",
+ " border-top-width: 5px;",
+ " border-top-style: solid;",
+ " border-top-color: #ABF4EB;",
+ " border-bottom-width: 5px; ",
+ " border-bottom-style: solid;",
+ " border-bottom-color: #ABF4EB;",
+ "}",
+ ".node-depr {",
+ " border-top-width: 5px;",
+ " border-top-style: solid;",
+ " border-top-color: #EEA9FF;",
+ " border-bottom-width: 5px; ",
+ " border-bottom-style: solid;",
+ " border-bottom-color: #EEA9FF;",
+ "}",
+ "",
"#left-tree-view indent {",
"-gtk-icon-size : 2px;",
"}",
"\treturn this.el;",
"}"
],
+ "| int nodeToRow" : [
+ "(JsRender.Node node) ",
+ "{",
+ "\tvar row = -1;",
+ "\tvar s = _this.view.el.model as Gtk.SingleSelection;",
+ "\tfor (var i = 0; i < s.n_items; i++) {",
+ "\t\t//GLib.debug(\"check node %s\", s.get_item(i).get_type().name());",
+ "\t\tvar lr = s.get_item(i) as Gtk.TreeListRow;",
+ "\t\tGLib.debug(\"check node %s\", lr.get_item().get_type().name());",
+ "\t\tif ((lr.get_item() as JsRender.Node).oid == node.oid) {",
+ "\t\t\treturn i;",
+ "\t\t\t",
+ "\t\t}",
+ "\t}",
+ "\treturn -1;\t\t\t",
+ "\t",
+ "",
+ "}"
+ ],
"| void deleteSelected" : [
"() {",
"",
" _this.main_window.windowstate.leftTreeNodeSelected(null);",
" // needed???",
" _this.main_window.windowstate.file = f;",
- " ",
+ " _this.last_error_counter = -1;",
" ",
" if (f.tree == null) {",
"\t try {",
" // if it's still null?",
" if (f.tree == null) {",
"\t\t_this.main_window.windowstate.showAddObject(_this.view.el, null);",
- " ",
+ " \t_this.updateErrors();",
" return;",
" }",
" \tm.append(f.tree);",
- " \t",
- " \t// expand???",
- "",
- "/*",
- " if (f.tree.readItems().size < 1) {",
- " // single item..",
- " ",
- " //this.get('/Window.leftvpaned').el.set_position(80);",
- " // select first...",
- " _this.view.el.set_cursor( ",
- " new Gtk.TreePath.from_string(\"0\"), null, false);",
- " ",
- " ",
- " } else {",
- " //this.get('/Window.leftvpaned').el.set_position(200);",
- " }",
- " */ ",
- " ",
- " ",
- "",
- " //_this.maincol.el.set_max_width(_this.viewwin.el.get_allocated_width() - 32);",
+ "\t_this.updateErrors();",
" ",
" _this.selmodel.el.set_selected(Gtk.INVALID_LIST_POSITION);",
- " _this.updateErrors();",
+ " ",
" return;",
" ",
" ",
"| void selectNode" : [
"(JsRender.Node node) ",
"{",
- "\tvar row = -1;",
- "\tvar s = (Gtk.SingleSelection)_this.view.el.model;",
- "\tfor (var i = 0; i < s.n_items; i++) {",
- "\t\t//GLib.debug(\"check node %s\", s.get_item(i).get_type().name());",
- "\t\tvar lr = (Gtk.TreeListRow)s.get_item(i);",
- "\t\tGLib.debug(\"check node %s\", lr.get_item().get_type().name());",
- "\t\tif (((JsRender.Node)lr.get_item()).oid == node.oid) {",
- "\t\t\trow = i;",
- "\t\t\tbreak;",
- "\t\t}",
- "\t}",
+ "\tvar row = this.nodeToRow(node);",
+ "\tvar s = _this.view.el.model as Gtk.SingleSelection;",
+ "\t ",
"\tif (row < 0) {",
"\t\t// select none?",
"\t\tGLib.debug(\"Could not find node\");",
"}",
"",
""
+ ],
+ "| void removeErrors" : [
+ "() {",
+ "\tvar child = this.view.el.get_first_child(); ",
+ " ",
+ "\tvar reading_header = true;",
+ " ",
+ "\twhile (child != null) {",
+ "\t\tGLib.debug(\"Got %s\", child.get_type().name());",
+ "\t ",
+ "\t if (reading_header) {",
+ "\t\t\t",
+ "",
+ "\t\t\tif (child.get_type().name() != \"GtkColumnListView\") {",
+ "\t\t\t ",
+ "\t\t\t\tchild = child.get_next_sibling();",
+ "\t\t\t\tcontinue;",
+ "\t\t\t}",
+ "\t\t\t// should be columnlistview",
+ "\t\t\tchild = child.get_first_child(); ",
+ "\t\t ",
+ "\t\t ",
+ "\t\t\t",
+ "\t\t\treading_header = false;",
+ "\t\t\t ",
+ "\t }",
+ "\t ",
+ "\t \tif (!child.has_css_class(\"node-err\")) {",
+ "\t\t\tchild.remove_css_class(\"node-err\");",
+ "\t\t}",
+ "\t\tif (!child.has_css_class(\"node-warn\")) {",
+ "\t\t\tchild.remove_css_class(\"node-warn\");",
+ "\t\t}",
+ "\t\t",
+ "\t\tif (!child.has_css_class(\"node-depr\")) {",
+ "\t\t\tchild.remove_css_class(\"node-depr\");",
+ "\t\t}",
+ "\t\t",
+ " child = child.get_next_sibling(); ",
+ "\t}",
+ "\t//GLib.debug(\"Rturning null\");",
+ " ",
+ "}"
+ ],
+ "| void updateErrors" : [
+ "() {",
+ "\tvar file = this.getActiveFile();",
+ "\tvar ar = file.getErrors();",
+ "\tif (ar.size < 1) {",
+ "\t\tthis.removeErrors();",
+ "\t\tthis.last_error_counter = file.error_counter ;",
+ "",
+ "\t\treturn;",
+ "\t}",
+ " \tif (this.last_error_counter == file.error_counter) {",
+ "\t\treturn;",
+ "\t}",
+ "\tthis.removeErrors();",
+ "\t",
+ "\tforeach(var diag in ar) { ",
+ "\t",
+ "\t\t ",
+ "// print(\"get inter\\n\");",
+ "\t var node= file.lineToNode( (int)diag.range.start.line) ;",
+ "\t if (node == null) {",
+ "\t \tcontinue;",
+ " \t}",
+ " \tvar row = _this.model.nodeToRow(node);",
+ " \tif (row < 0) {",
+ " \t\tcontinue;",
+ "\t\t}",
+ " \tvar w = this.view.getWidgetAtRow(row);",
+ " \tif (w == null) {",
+ " \t\treturn;",
+ "\t\t}",
+ "\t\t// always show errors.",
+ "\t\tvar ed = diag.category.down();",
+ "\t\tif (ed != \"err\" && w.has_css_class(\"node-err\")) {",
+ "\t\t\tcontinue;",
+ "\t\t}",
+ "\t\tif (ed == \"err\" && w.has_css_class(\"node-warn\")) {",
+ "\t\t\tw.remove_css_class(\"node-warn\");",
+ "\t\t}",
+ "\t\tif (ed == \"err\" && w.has_css_class(\"node-depr\")) {",
+ "\t\t\tw.remove_css_class(\"node-depr\");",
+ "\t\t}",
+ "\t\tif (!w.has_css_class(\"node-\"+ ed)) {",
+ "\t\t\tw.add_css_class(\"node-\" + ed);",
+ "\t\t}",
+ "\t\t",
+ "\t}",
+ "\t",
+ "}"
]
}
],