resources/RooUsage.txt
[app.Builder.js] / src / Builder4 / PopoverFileDetails.vala
index c6a181d..9bfab0a 100644 (file)
@@ -117,12 +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<string>();
          _this.dbmodel.loadData(ar,"");
@@ -159,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();
@@ -401,6 +396,15 @@ public class Xcls_PopoverFileDetails : Object
                                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
@@ -1030,8 +1034,17 @@ public class Xcls_PopoverFileDetails : Object
         }
 
         // user defined functions
-        public void loadData (Gee.ArrayList<string> 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;
             
@@ -1041,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);          
                                              
         }
     }
@@ -1202,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)) {
@@ -1218,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, "");