X-Git-Url: http://git.roojs.org/?p=app.Builder.js;a=blobdiff_plain;f=src%2FBuilder4%2FPopoverFileDetails.vala;h=9bfab0a8ecc3fe275a9b9ee57bf7ee84abcca97a;hp=30e94c0901f081e5694aab5a9feee85b8a89c61d;hb=HEAD;hpb=fb36271f15ab8e2495854a84c26d64effad28619 diff --git a/src/Builder4/PopoverFileDetails.vala b/src/Builder4/PopoverFileDetails.vala index 30e94c090..9bfab0a8e 100644 --- a/src/Builder4/PopoverFileDetails.vala +++ b/src/Builder4/PopoverFileDetails.vala @@ -117,14 +117,6 @@ public class Xcls_PopoverFileDetails : Object - if (c.path.length > 0) { - - this.save_btn.el.set_label("Save"); - } else { - this.save_btn.el.set_label("Create"); - - - } var ar = new Gee.ArrayList(); _this.dbmodel.loadData(ar,""); @@ -161,11 +153,12 @@ public class Xcls_PopoverFileDetails : Object if (c.path.length > 0) { + this.save_btn.el.set_label("Save"); _this.filetype.el.hide(); _this.filetypelbl.el.hide(); - + _this.filetype.showhide(true); // as we only work on bjs files currently } else { - + this.save_btn.el.set_label("Create"); _this.ftdbmodel.loadData("bjs"); // fixme - need to determine type.. _this.filetype.el.show(); _this.filetypelbl.el.show(); @@ -373,36 +366,45 @@ public class Xcls_PopoverFileDetails : Object is_bjs = ((string)vfname) == "bjs"; } - for (var i = 2; i < 9;i++) { - var el = _this.grid.el.get_child_at(0,i); - - var showhide= is_bjs; - if (i> 7) { - showhide = !showhide; - } - - if (showhide) { - el.show(); - } else { - el.hide(); - } - el = _this.grid.el.get_child_at(1,i); - if (showhide) { - el.show(); - } else { - el.hide(); - } - } + // directory is only available for non-bjs - + this.showhide(is_bjs); }); } // user defined functions - public void showhide () { - + public void showhide (bool is_bjs) { + for (var i = 2; i < 9;i++) { + var el = _this.grid.el.get_child_at(0,i); + + var showhide= is_bjs; + if (i> 7) { + showhide = !showhide; + } + + if (showhide) { + el.show(); + } else { + el.hide(); + } + el = _this.grid.el.get_child_at(1,i); + if (showhide) { + el.show(); + } else { + el.hide(); + } + } + // load up the directories + //??? why can we not create bjs files in other directories?? + if (!is_bjs && _this.file.path.length < 1) { + _this.dirmodel.loadData(); + + + } + + } } public class Xcls_ftdbcellrenderer : Object @@ -1032,8 +1034,17 @@ public class Xcls_PopoverFileDetails : Object } // user defined functions - public void loadData (Gee.ArrayList data, string cur) { + public void loadData () { + + + this.el.clear(); + + if (!(_this.project is Project.Gtk)) { + return; + } + var sd = ((Project.Gtk)_this.project).sourcedirs(); + Gtk.TreeIter iter; var el = this.el; @@ -1043,27 +1054,27 @@ public class Xcls_PopoverFileDetails : Object // el.set_value(iter, 0, ""); // el.set_value(iter, 1, "aaa - Just add Element - aaa"); - el.append(out iter); + // el.append(out iter); - el.set_value(iter, 0, ""); - el.set_value(iter, 1, "-- select a module --"); - _this.build_module.el.set_active_iter(iter); + // el.set_value(iter, 0, ""); + // el.set_value(iter, 1, "-- select a directoyr --"); + //_this.build_module.el.set_active_iter(iter); - for (var i = 0; i < data.size;i++) { + for (var i = 0; i < sd.length;i++) { el.append(out iter); - el.set_value(iter, 0, data.get(i)); - el.set_value(iter, 1, data.get(i)); + el.set_value(iter, 0, sd[i]); + el.set_value(iter, 1, sd[i]); - if (data.get(i) == cur) { - _this.build_module.el.set_active_iter(iter); - } + //if (data.get(i) == cur) { + // _this.build_module.el.set_active_iter(iter); + // } } - this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); + // this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); } } @@ -1204,13 +1215,6 @@ public class Xcls_PopoverFileDetails : Object } // ---------------- NEW FILES... - - var fn = _this.name.el.get_text(); - var dir = _this.project.firstPath(); // fixme.. should be based on a pulldown? - - var targetfile = dir + "/" + fn; - - // strip the file type off the end.. Gtk.TreeIter iter; if (!_this.filetype.el.get_active_iter(out iter)) { @@ -1220,10 +1224,37 @@ public class Xcls_PopoverFileDetails : Object _this.mainwindow.el, "You must select a file type. " ); + return; + } + + + var fn = _this.name.el.get_text(); + Value ftypename; _this.ftdbmodel.el.get_value (iter, 0, out ftypename); var ext = ((string)ftypename); + var dir = _this.project.firstPath(); + if (ext != "bjs") { + + if (!_this.dir.el.get_active_iter(out iter)) { + // should not happen... + // so we are jut going to return without + StandardErrorDialog.show( + _this.mainwindow.el, + "You must select a directory " + ); + return; + } + Value vdir; + _this.dirmodel.el.get_value (iter, 0, out vdir); + dir = (string)vdir; + } + + var targetfile = dir + "/" + fn; + + // strip the file type off the end.. + var rx = new GLib.Regex("\\." + ext + "$",GLib.RegexCompileFlags.CASELESS); targetfile = rx.replace(targetfile, targetfile.length, 0, "");