| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | 
							- using PicView.Core.FileHandling;
 
- using PicView.WPF.ImageHandling;
 
- using PicView.WPF.PicGallery;
 
- using PicView.WPF.Properties;
 
- using PicView.WPF.SystemIntegration;
 
- using PicView.WPF.UILogic;
 
- using System.Diagnostics;
 
- using System.IO;
 
- using System.Windows;
 
- using System.Windows.Input;
 
- using System.Windows.Media.Imaging;
 
- using System.Windows.Threading;
 
- using XamlAnimatedGif;
 
- using static PicView.WPF.ChangeImage.LoadPic;
 
- using static PicView.WPF.ChangeImage.Navigation;
 
- using static PicView.WPF.ChangeImage.PreLoader;
 
- using static PicView.WPF.ChangeTitlebar.SetTitle;
 
- using static PicView.WPF.FileHandling.FileLists;
 
- using static PicView.WPF.UILogic.Sizing.ScaleImage;
 
- namespace PicView.WPF.ChangeImage
 
- {
 
-     internal static class QuickLoad
 
-     {
 
-         /// <summary>
 
-         /// Load Image from blank values and show loading preview
 
-         /// </summary>
 
-         /// <param name="file"></param>
 
-         internal static async Task QuickLoadAsync(string file, FileInfo? fileInfo = null, BitmapSource? preparedSource = null) => await Task.Run(async () =>
 
-         {
 
-             var mainWindow = ConfigureWindows.GetMainWindow;
 
-             fileInfo ??= new FileInfo(file);
 
-             if (preparedSource is not null)
 
-             {
 
-                 if (!fileInfo.Exists) // If not file, try to load if URL, base64 or directory
 
-                 {
 
-                     await LoadPicFromStringAsync(file, fileInfo).ConfigureAwait(false);
 
-                     return;
 
-                 }
 
-                 if (file.IsArchive()) // Handle if file exist and is archive
 
-                 {
 
-                     await LoadPicFromArchiveAsync(file).ConfigureAwait(false);
 
-                     return;
 
-                 }
 
-             }
 
-             var bitmapSource = preparedSource ?? await Image2BitmapSource.ReturnBitmapSourceAsync(fileInfo).ConfigureAwait(false);
 
-             await mainWindow.MainImage.Dispatcher.InvokeAsync(() =>
 
-             {
 
-                 mainWindow.MainImage.Source = bitmapSource;
 
-             }, DispatcherPriority.Send);
 
-             if (fileInfo.Extension.Equals(".gif", StringComparison.OrdinalIgnoreCase))
 
-             {
 
-                 var frames = ImageFunctions.GetImageFrames(fileInfo.FullName);
 
-                 if (frames > 1)
 
-                 {
 
-                     var uri = new Uri(fileInfo.FullName);
 
-                     await mainWindow.Dispatcher.InvokeAsync(
 
-                         () => { AnimationBehavior.SetSourceUri(mainWindow.MainImage, uri); },
 
-                         DispatcherPriority.Normal);
 
-                 }
 
-             }
 
-             Pics = await Task.FromResult(FileList(fileInfo)).ConfigureAwait(false);
 
-             FolderIndex = Pics.IndexOf(fileInfo.FullName);
 
-             var shouldLoadBottomGallery = Settings.Default.IsBottomGalleryShown;
 
-             if (Settings.Default.ShowInterface == false)
 
-             {
 
-                 shouldLoadBottomGallery = Settings.Default.ShowAltInterfaceBottomGallery;
 
-             }
 
-             await mainWindow.Dispatcher.InvokeAsync(() =>
 
-             {
 
-                 SetTitleString(bitmapSource.PixelWidth, bitmapSource.PixelHeight, FolderIndex, fileInfo);
 
-                 UC.GetSpinWaiter.Visibility = Visibility.Collapsed;
 
-                 mainWindow.MainImage.Cursor = Cursors.Arrow;
 
-                 if (shouldLoadBottomGallery)
 
-                 {
 
-                     GalleryToggle.ShowBottomGallery();
 
-                 }
 
-                 if (preparedSource is not null)
 
-                 {
 
-                     FitImage(bitmapSource.Width, bitmapSource.Height);
 
-                 }
 
-             }, DispatcherPriority.Normal);
 
-             if (FolderIndex > 0)
 
-             {
 
-                 Taskbar.Progress((double)FolderIndex / Pics.Count);
 
-                 _ = PreLoadAsync(FolderIndex, Pics.Count).ConfigureAwait(false);
 
-             }
 
-             _ = AddAsync(FolderIndex, fileInfo, bitmapSource).ConfigureAwait(false);
 
-             if (shouldLoadBottomGallery)
 
-             {
 
-                 _ = Task.Run(async () =>
 
-                 {
 
-                     try
 
-                     {
 
-                         await GalleryLoad.LoadAsync().ConfigureAwait(false);
 
-                         // Update gallery selections
 
-                         await UC.GetPicGallery.Dispatcher.InvokeAsync(() =>
 
-                         {
 
-                             // Select current item
 
-                             GalleryNavigation.SetSelected(FolderIndex, true);
 
-                             GalleryNavigation.SelectedGalleryItem = FolderIndex;
 
-                             GalleryNavigation.ScrollToGalleryCenter();
 
-                         });
 
-                     }
 
-                     catch (TaskCanceledException exception)
 
-                     {
 
- #if DEBUG
 
-                         Trace.WriteLine($"{nameof(QuickLoadAsync)}  exception:\n{exception.Message}");
 
- #endif
 
-                         if (ConfigureWindows.GetMainWindow.Visibility == Visibility.Hidden)
 
-                         {
 
-                             Environment.Exit(0);
 
-                         }
 
-                     }
 
-                     catch (Exception)
 
-                     {
 
-                         //
 
-                     }
 
-                 });
 
-             }
 
-             // Add recent files, except when browsing archive
 
-             if (string.IsNullOrWhiteSpace(ArchiveExtraction.TempZipFile) && Pics.Count > FolderIndex)
 
-             {
 
-                 GetFileHistory ??= new FileHistory();
 
-                 GetFileHistory.Add(Pics[FolderIndex]);
 
-             }
 
-         });
 
-     }
 
- }
 
 
  |