Fix #7959 - new project flow - use void func to callback after each step, tidy up...
[roobuilder] / src / Project / Project.vala
index fe034ff..716a252 100644 (file)
@@ -40,15 +40,21 @@ namespace Project {
                INVALID_FORMAT
        }
 
+
+       
        // static array of all projects.
        private Gee.ArrayList<Project>  projects;
        
        
        
        public bool  projects_loaded = false;
-
        
        
+       // used to pass around callbacks with project as a return
+       public class Callback : Object {
+               public signal void call(Project project);
+       }
+       
        public abstract class Project : Object {
                
                public signal void on_changed (); 
@@ -930,7 +936,8 @@ namespace Project {
                        return false;
                        
                }
-               public void loadDirsToStringList( global::Gtk.StringList sl) 
+               
+               public void loadDirsToStringList( global::Gtk.StringList sl, string prefix) 
                {
                         
                        while (sl.get_n_items() > 0) {
@@ -938,8 +945,11 @@ namespace Project {
                        }
                        
                        foreach(var sp in this.sub_paths) {
-                                
-                               sl.append( sp.path == this.path ? "/" : sp.path.substring(this.path.length));
+                                var add = sp.path == this.path ? "/" : sp.path.substring(this.path.length);
+                               if (prefix.length > 0 && !add.has_prefix(prefix)) {
+                                       continue;
+                               }
+                               sl.append(add);
                        }
                
                }