Skip to content

Commit

Permalink
Show both image titles in side by side mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Ruben2776 committed Oct 20, 2024
1 parent fa043f6 commit 89ccce2
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/PicView.Avalonia/Navigation/ImageIterator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public sealed class ImageIterator : IDisposable
public List<string> 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; }
Expand Down
11 changes: 9 additions & 2 deletions src/PicView.Avalonia/Navigation/QuickLoad.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
10 changes: 9 additions & 1 deletion src/PicView.Avalonia/Navigation/UpdateImage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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(); });
Expand Down
35 changes: 35 additions & 0 deletions src/PicView.Avalonia/UI/SetTitleHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down

0 comments on commit 89ccce2

Please sign in to comment.