/// <summary> /// Add the folder into the media library. /// </summary> public void AddFolder(string path) { // make sure the folder isnt already in the list bool exists = false; this.Foreach (delegate (TreeModel model, TreePath tree_path, TreeIter iter) { Folder node = (Folder) model.GetValue (iter, 0); if (node.Path == path) exists = true; return exists; }); // add the folder if it isnt already in the list if (exists) library.MainPage.ThrowError ("The folder is already in the library:\n" + path); else { Folder folder = new Folder (path); this.AppendValues (root_iter, folder); library.MainPage.DataManager.AddFolder (folder); // load the files within the directory Progress progress = new Progress (library.MediaBox); progress.Start (Utils.FileCount (path)); progress.Push ("Waiting in queue: " + Utils.GetFolderName (path)); // queue process delegate_queue.Enqueue (delegate { addDirRecurse (path, progress, folder); progress.End (); }); } }