diff --git a/src/PicView.Avalonia/Navigation/ImageIterator.cs b/src/PicView.Avalonia/Navigation/ImageIterator.cs index 5f979cdf..f027509b 100644 --- a/src/PicView.Avalonia/Navigation/ImageIterator.cs +++ b/src/PicView.Avalonia/Navigation/ImageIterator.cs @@ -22,6 +22,8 @@ public sealed class ImageIterator : IDisposable public List ImagePaths { get; private set; } public int CurrentIndex { get; private set; } + + public int NextIndex => GetIteration(CurrentIndex, NavigateTo.Next); public FileInfo InitialFileInfo { get; private set; } = null!; public bool IsReversed { get; private set; } diff --git a/src/PicView.Avalonia/Navigation/QuickLoad.cs b/src/PicView.Avalonia/Navigation/QuickLoad.cs index aa0040aa..07aa8e7e 100644 --- a/src/PicView.Avalonia/Navigation/QuickLoad.cs +++ b/src/PicView.Avalonia/Navigation/QuickLoad.cs @@ -63,8 +63,15 @@ await Dispatcher.UIThread.InvokeAsync(() => ExifHandling.UpdateExifValues(imageModel, vm); vm.ImageIterator ??= new ImageIterator(fileInfo, vm); vm.GetIndex = vm.ImageIterator.CurrentIndex + 1; - - SetTitleHelper.SetTitle(vm, imageModel); + + if (SettingsHelper.Settings.ImageScaling.ShowImageSideBySide) + { + SetTitleHelper.SetSideBySideTitle(vm, imageModel, secondaryPreloadValue?.ImageModel); + } + else + { + SetTitleHelper.SetTitle(vm, imageModel); + } if (SettingsHelper.Settings.UIProperties.IsTaskbarProgressEnabled) { diff --git a/src/PicView.Avalonia/Navigation/UpdateImage.cs b/src/PicView.Avalonia/Navigation/UpdateImage.cs index 58873aef..a705a73d 100644 --- a/src/PicView.Avalonia/Navigation/UpdateImage.cs +++ b/src/PicView.Avalonia/Navigation/UpdateImage.cs @@ -74,8 +74,16 @@ await Dispatcher.UIThread.InvokeAsync(() => }, DispatcherPriority.Send); vm.IsLoading = false; - SetTitleHelper.SetTitle(vm, preLoadValue.ImageModel); + if (SettingsHelper.Settings.ImageScaling.ShowImageSideBySide) + { + SetTitleHelper.SetSideBySideTitle(vm, preLoadValue.ImageModel, nextPreloadValue?.ImageModel); + } + else + { + SetTitleHelper.SetTitle(vm, preLoadValue.ImageModel); + } + if (SettingsHelper.Settings.WindowProperties.KeepCentered) { await Dispatcher.UIThread.InvokeAsync(() => { WindowFunctions.CenterWindowOnScreen(); }); diff --git a/src/PicView.Avalonia/UI/SetTitleHelper.cs b/src/PicView.Avalonia/UI/SetTitleHelper.cs index 7a3dd7cf..e8f0f94d 100644 --- a/src/PicView.Avalonia/UI/SetTitleHelper.cs +++ b/src/PicView.Avalonia/UI/SetTitleHelper.cs @@ -88,6 +88,41 @@ void ReturnError() vm.TitleTooltip = TranslationHelper.GetTranslation("UnableToRender"); } } + + public static void SetSideBySideTitle(MainViewModel vm, ImageModel? imageModel1, ImageModel? imageModel2) + { + if (imageModel1 is null || imageModel2 is null) + { + ReturnError(); + return; + } + + if (imageModel1.FileInfo is null || imageModel2.FileInfo is null) + { + ReturnError(); + return; + } + + var firstWindowTitles = ImageTitleFormatter.GenerateTitleStrings(imageModel1.PixelWidth, imageModel1.PixelHeight, vm.ImageIterator.CurrentIndex, + imageModel1.FileInfo, vm.ZoomValue, vm.ImageIterator.ImagePaths); + var secondWindowTitles = ImageTitleFormatter.GenerateTitleStrings(imageModel2.PixelWidth, imageModel2.PixelHeight, vm.ImageIterator.NextIndex, + imageModel2.FileInfo, vm.ZoomValue, vm.ImageIterator.ImagePaths); + var windowTitle = $"{firstWindowTitles.BaseTitle} \u21dc || \u21dd {secondWindowTitles.BaseTitle} - PicView"; + var title = $"{firstWindowTitles.BaseTitle} \u21dc || \u21dd {secondWindowTitles.BaseTitle}"; + var titleTooltip = $"{firstWindowTitles.FilePathTitle} \u21dc || \u21dd {secondWindowTitles.FilePathTitle}"; + vm.WindowTitle = windowTitle; + vm.Title = title; + vm.TitleTooltip = titleTooltip; + + return; + + void ReturnError() + { + vm.WindowTitle = + vm.Title = + vm.TitleTooltip = TranslationHelper.GetTranslation("UnableToRender"); + } + } public static void ResetTitle(MainViewModel vm) {