Skip to content

Commit e3480d3

Browse files
committed
refactor: Centralize image opening logic
Refactored the image opening logic by creating a centralized `ShowImageBrowser` method in `UiUtil` class. This reduces redundancy and improves maintainability across the `ProSearchResultViewModel`, `PosterPickerViewModel`, and `ManualExplorerViewModel` classes.
1 parent af8f445 commit e3480d3

File tree

4 files changed

+23
-34
lines changed

4 files changed

+23
-34
lines changed

FoliCon/Modules/UI/UIUtil.cs

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using NLog;
2+
using Logger = NLog.Logger;
3+
4+
namespace FoliCon.Modules.UI;
5+
6+
public static class UiUtil
7+
{
8+
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
9+
public static void ShowImageBrowser(string imageLocation)
10+
{
11+
Logger.Trace("Opening Image {Image}", imageLocation);
12+
var browser = new ImageBrowser(imageLocation)
13+
{
14+
ShowTitle = false,
15+
IsFullScreen = true
16+
};
17+
browser.Show();
18+
}
19+
}

FoliCon/ViewModels/ManualExplorerViewModel.cs

+2-14
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using FoliCon.Models.Api;
33
using FoliCon.Models.Data;
44
using FoliCon.Modules.DeviantArt;
5+
using FoliCon.Modules.UI;
56
using NLog;
67

78
namespace FoliCon.ViewModels;
@@ -14,7 +15,7 @@ public ManualExplorerViewModel()
1415
{
1516
Directory = [];
1617
PickCommand = new DelegateCommand<object>(PickMethod);
17-
OpenImageCommand = new DelegateCommand<object>(OpenImageMethod);
18+
OpenImageCommand = new DelegateCommand<object>((link)=> UiUtil.ShowImageBrowser(link as string));
1819
CancelCommand = new DelegateCommand(CancelMethod);
1920
}
2021

@@ -49,19 +50,6 @@ private void CancelMethod()
4950
_cts.Cancel();
5051
}
5152

52-
53-
private static void OpenImageMethod(object parameter)
54-
{
55-
Logger.Debug("Opening Image {Image}", parameter);
56-
var link = (string)parameter;
57-
var browser = new ImageBrowser(link)
58-
{
59-
ShowTitle = false,
60-
IsFullScreen = true
61-
};
62-
browser.Show();
63-
}
64-
6553
#region DialogMethods
6654

6755
public event Action<IDialogResult> RequestClose;

FoliCon/ViewModels/PosterPickerViewModel.cs

+1-7
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,7 @@ private void OpenImageMethod(DArtImageList selectedImage)
6060
link = Result.MediaType == MediaTypes.Game
6161
? IgdbDataTransformer.GetPosterUrl(selectedImage.DeviationId, ImageSize.HD720)
6262
: link;
63-
Logger.Info("Opening Image: {Link}", link);
64-
var browser = new ImageBrowser(link)
65-
{
66-
ShowTitle = false,
67-
IsFullScreen = true
68-
};
69-
browser.Show();
63+
UiUtil.ShowImageBrowser(link);
7064
}
7165

7266
protected virtual void CloseDialog(string parameter)

FoliCon/ViewModels/ProSearchResultViewModel.cs

+1-13
Original file line numberDiff line numberDiff line change
@@ -86,25 +86,13 @@ public ProSearchResultViewModel(IDialogService dialogService)
8686
ImageUrl = [];
8787
StopSearchCommand = new DelegateCommand(delegate { StopSearch = true; });
8888
PickCommand = new DelegateCommand<object>(PickMethod);
89-
OpenImageCommand = new DelegateCommand<object>(OpenImageMethod);
89+
OpenImageCommand = new DelegateCommand<object>((link)=> UiUtil.ShowImageBrowser(link as string));
9090
ExtractManuallyCommand = new DelegateCommand<object>(ExtractManually);
9191
SkipCommand = new DelegateCommand(SkipMethod);
9292
SearchAgainCommand = new DelegateCommand(PrepareForSearch);
9393
_dialogService = dialogService;
9494
}
9595

96-
private static void OpenImageMethod(object parameter)
97-
{
98-
Logger.Debug("Opening Image {Image}", parameter);
99-
var link = (string)parameter;
100-
var browser = new ImageBrowser(link)
101-
{
102-
ShowTitle = false,
103-
IsFullScreen = true
104-
};
105-
browser.Show();
106-
}
107-
10896
private void ExtractManually(object parameter)
10997
{
11098
Logger.Debug("Extracting manually from Deviation ID {DeviationId}", parameter);

0 commit comments

Comments
 (0)