예제 #1
0
파일: ItemView.cs 프로젝트: balihb/basenji
        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);
                }
            }
        }