Esempio n. 1
0
        private async Task RebuildSubFolderList(FolderReadingDialog dialog)
        {
            foreach (var item in this.NavigationPane.MenuItems)
            {
                if (item is NavigationViewItem nv)
                {
                    if (nv.Content is FolderListItem fd)
                    {
                        fd.Release();
                    }
                }
            }

            this.NavigationPane.MenuItems.Clear();

            if (this.thumbnailPages != null)
            {
                foreach (var page in this.thumbnailPages)
                {
                    page.Release();
                }
            }

            this.thumbnailPages = new List <ThumbnailPage>();

            var count = MediaManager.FolderEntries.Length;

            dialog.IsIndeterminate = false;
            dialog.Maximum         = count;

            var trees = FolderListItem.BuildTreeString(MediaManager.FolderEntries);

            for (int i = 0; i < count; i++)
            {
                var folder = MediaManager.FolderEntries[i];

                dialog.Value = i;

                var item = new FolderListItem {
                    FolderEntry = folder, TreeText = trees[i]
                };
                var navigationitem = new NavigationViewItem()
                {
                    Content = item
                };

                this.NavigationPane.MenuItems.Add(navigationitem);

                var cover = await MediaManager.FindFolderThumbnailEntry(folder);

                if (cover != null)
                {
                    _ = this.UpdateFolderThumbnail(cover, item);
                }
            }

            dialog.Value = count;

            this.NavigationPane.SelectedItem = this.NavigationPane.MenuItems[0];
        }
Esempio n. 2
0
        private async Task UpdateFolderThumbnail(string entry, FolderListItem item)
        {
            var bitmap = await MediaManager.CreateThumbnail(entry, 20, 32);

            SoftwareBitmapSource source = new SoftwareBitmapSource();
            await source.SetBitmapAsync(bitmap);

            item.SetImageSourceAsync(source);
        }
Esempio n. 3
0
        private void RebuildSubFolderList()
        {
            Array.Sort(folderList, (string s1, string s2) =>
            {
                if (s1 == "\\")
                {
                    return(-1);
                }
                else if (s2 == "\\")
                {
                    return(1);
                }
                else
                {
                    return(s1.CompareTo(s2));
                }
            });

            foreach (var f in folderList)
            {
                var folder = f;
                if (folder != "\\")
                {
                    char separator = folder.Contains("\\") ? '\\' : '/';
                    int  count     = folder.Count(c => c == separator);

                    if (folder.EndsWith("" + separator))
                    {
                        folder = folder.Substring(0, folder.Length - 1);
                    }

                    folder = folder.Substring(folder.LastIndexOf(separator) + 1);

                    var prefix = "";
                    for (int i = 0; i < count; i++)
                    {
                        prefix += "  ";
                    }
                    folder = prefix + "\u25CF " + folder;
                }
                var item = new FolderListItem(folder, f);
                subFolderListCtrl.Items.Add(item);
            }
        }