"\t}",
"\t//var pos = \"\";",
"\t// find left tree selected node",
- "\tvar addto = _this.mainwindow.windowstate.left_tree.selmodel.getSelectedNode();",
+ "\tvar ws =_this.mainwindow.windowstate;",
+ "\tvar lt = ws.left_tree;",
+ "",
+ "\tvar add = _this.selmodel.getSelectedNode().deepClone();",
+ "\tif (lt.model.el.n_items < 1) {",
+ "\t\tws.file.tree = add; ",
+ " \tadd.updated_count++;",
+ " \tvar m = (GLib.ListStore) lt.model.el.model;",
+ "\t\tm.append(add);",
+ "\t\tlt.model.selectNode(add); \t",
+ "\t\tlt.changed();",
+ "\t\tlt.node_selected(add);",
+ "\t\treturn;",
+ "\t}",
+ "\tvar addto = _this.mainwindow.windowstate.left_tree.selmodel.getSelectedNode();\t",
"\t//var row = _this.view.getRowAt(x,y, out pos);",
"\t",
- " \t var add = _this.selmodel.getSelectedNode().deepClone();",
+ "",
"\taddto.appendChild(add);",
"\t_this.mainwindow.windowstate.left_props.changed();",
"\t_this.mainwindow.windowstate.left_tree.model.selectNode(add);",
}
//var pos = "";
// find left tree selected node
- var addto = _this.mainwindow.windowstate.left_tree.selmodel.getSelectedNode();
+ var ws =_this.mainwindow.windowstate;
+ var lt = ws.left_tree;
+
+ var add = _this.selmodel.getSelectedNode().deepClone();
+ if (lt.model.el.n_items < 1) {
+ ws.file.tree = add;
+ add.updated_count++;
+ var m = (GLib.ListStore) lt.model.el.model;
+ m.append(add);
+ lt.model.selectNode(add);
+ lt.changed();
+ lt.node_selected(add);
+ return;
+ }
+ var addto = _this.mainwindow.windowstate.left_tree.selmodel.getSelectedNode();
//var row = _this.view.getRowAt(x,y, out pos);
- var add = _this.selmodel.getSelectedNode().deepClone();
+
addto.appendChild(add);
_this.mainwindow.windowstate.left_props.changed();
_this.mainwindow.windowstate.left_tree.model.selectNode(add);
" ",
" var pal = _this.file.project.palete;",
" ",
- " string[] opts;",
- " var has_opts = pal.typeOptions(_this.node.fqn(), prop.name, prop.rtype, out opts);",
+ " string[] opts = {};",
+ " ",
+ " var has_opts = prop.ptype.can_have_opt_list() ? ",
+ " \tpal.typeOptions(_this.node.fqn(), prop.name, prop.rtype, out opts)",
+ " \t: false;",
" ",
" if (!has_opts && prop.ptype == JsRender.NodePropType.RAW) {",
" \tuse_textarea = true;",
var pal = _this.file.project.palete;
- string[] opts;
- var has_opts = pal.typeOptions(_this.node.fqn(), prop.name, prop.rtype, out opts);
+ string[] opts = {};
+
+ var has_opts = prop.ptype.can_have_opt_list() ?
+ pal.typeOptions(_this.node.fqn(), prop.name, prop.rtype, out opts)
+ : false;
if (!has_opts && prop.ptype == JsRender.NodePropType.RAW) {
use_textarea = true;
"\t\tm.append(dropNode);",
"\t\t_this.model.selectNode(dropNode); \t",
"\t\t_this.changed();",
+ "\t\t_this.node_selected(dropNode);",
"\t\treturn true; // no need to highlight?",
" ",
" }",
{
"$ xns" : "Gtk",
"* prop" : "model",
+ "bool can_unselect" : true,
"id" : "selmodel",
"items" : [
{
"\t return;",
" }",
" _this.selmodel.el.unselect_all();",
- " ",
- " node.remove();",
- " \tGLib.debug(\"delete Selected - done\");",
- " _this.changed();",
+ " if (node.parent != null) {",
+ "\t\tnode.remove();",
+ "\t \tGLib.debug(\"delete Selected - done\");",
+ "\t\t_this.changed();",
+ "\t\treturn;",
+ "\t}",
+ "\tthis.updateModel(null);",
+ "\t_this.main_window.windowstate.file.tree = null;",
+ "\t_this.changed();",
+ "\t_this.node_selected(null);",
"/* ",
" print(\"DELETE SELECTED?\");",
" //_this.view.blockChanges = true;",
m.append(dropNode);
_this.model.selectNode(dropNode);
_this.changed();
+ _this.node_selected(dropNode);
return true; // no need to highlight?
}
// my vars (dec)
// set gobject values
+ this.el.can_unselect = true;
//listeners
this.el.selection_changed.connect( (position, n_items) => {
return;
}
_this.selmodel.el.unselect_all();
-
- node.remove();
- GLib.debug("delete Selected - done");
- _this.changed();
+ if (node.parent != null) {
+ node.remove();
+ GLib.debug("delete Selected - done");
+ _this.changed();
+ return;
+ }
+ this.updateModel(null);
+ _this.main_window.windowstate.file.tree = null;
+ _this.changed();
+ _this.node_selected(null);
/*
print("DELETE SELECTED?");
//_this.view.blockChanges = true;
};
}
+ public bool can_have_opt_list()
+ {
+ switch (this) {
+ case RAW:
+ case METHOD :
+ case SIGNAL :
+ case SPECIAL :
+ case LISTENER :
+ case NONE:
+ case CTOR:
+ return false;
+ case USER :
+ case PROP:
+ return true;
+ default:
+ return false;
+ }
+
+
+ }
+
public static NodePropType nameToType(string str)
{
foreach(var np in alltypes()) {
global::Gtk.TextIter begin, end , pos;
if (!context.get_bounds(out begin, out end)) {
- return false;
+ return true;
}
var line = end.get_line();
var offset = end.get_line_offset();
display.append(new global::Gtk.Label(str));
return true;
}
- return false;
+ // return false seems to crash things.
+ return true;
}
public bool populate (GtkSource.HoverContext context, GtkSource.HoverDisplay display) throws Error
{