private void AppendDirRows(TreeStore store, TreeIter parent, DirectoryVolumeItem item) { bool parentIsRoot = (parent.Stamp == TreeIter.Zero.Stamp); DirectoryVolumeItem[] dirs = item.GetDirectories(); FileVolumeItem[] files = item.GetFiles(); // if no files or dirs have been found, add an empty node if (dirs.Length == 0 && files.Length == 0) { AppendDirValues(store, parent, parentIsRoot, null, STR_EMPTY, null); } else { foreach (DirectoryVolumeItem dir in dirs) { TreeIter iter = AppendDirValues(store, parent, parentIsRoot, GetImage(dir), dir.Name, dir); if (iter.Stamp != TreeIter.Zero.Stamp) { AppendDirValues(store, iter, false, loadingIcon, STR_LOADING, null); } } foreach (FileVolumeItem file in files) { AppendDirValues(store, parent, parentIsRoot, GetImage(file), file.Name, file); } } }