Skip to content

Commit 4e6b4de

Browse files
committed
Improve and bug fix for reload function
1 parent 689026a commit 4e6b4de

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/PicView.Avalonia/Navigation/ErrorHandling.cs

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ void Start()
6666

6767
public static async Task ReloadAsync(MainViewModel vm)
6868
{
69+
vm.IsLoading = true;
70+
6971
if (vm.ImageSource is null)
7072
{
7173
await Dispatcher.UIThread.InvokeAsync(() =>
@@ -89,11 +91,25 @@ await Dispatcher.UIThread.InvokeAsync(() =>
8991
});
9092
return;
9193
}
92-
93-
await vm.ImageIterator.ClearAsync().ConfigureAwait(false);
94-
await vm.ImageIterator.ReloadFileList().ConfigureAwait(false);
95-
var index = vm.ImageIterator.ImagePaths.IndexOf(vm.FileInfo.FullName);
96-
await NavigationHelper.Navigate(index, vm).ConfigureAwait(false);
94+
95+
try
96+
{
97+
var index = vm.ImageIterator.CurrentIndex;
98+
await vm.ImageIterator.DisposeAsync().ConfigureAwait(false);
99+
vm.ImageIterator = new ImageIterator(vm.FileInfo, vm.ImageIterator.ImagePaths, index, vm);
100+
await NavigationHelper.Navigate(index, vm).ConfigureAwait(false);
101+
}
102+
catch (Exception e)
103+
{
104+
#if DEBUG
105+
Console.WriteLine(e);
106+
#endif
107+
await Dispatcher.UIThread.InvokeAsync(() => { ShowStartUpMenu(vm); });
108+
}
109+
finally
110+
{
111+
vm.IsLoading = false;
112+
}
97113
}
98114

99115
public static async Task ReloadImageAsync(MainViewModel vm)

0 commit comments

Comments
 (0)