Skip to content

Commit 93c896c

Browse files
committed
Batch resize - thumb size string #165
1 parent 884b6aa commit 93c896c

File tree

3 files changed

+109
-65
lines changed

3 files changed

+109
-65
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
using System.Globalization;
2+
using Avalonia.Data;
3+
using Avalonia.Data.Converters;
4+
5+
namespace PicView.Avalonia.Converters;
6+
7+
public class IndexToStringSizeConverter: IValueConverter
8+
{
9+
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
10+
{
11+
if (!int.TryParse(value?.ToString(), out var index) || !int.TryParse(parameter?.ToString(), out var parameterIndex))
12+
{
13+
return BindingOperations.DoNothing;
14+
}
15+
16+
switch (index)
17+
{
18+
case 1:
19+
return index.ToString("/small", CultureInfo.InvariantCulture);
20+
21+
case 2 when parameterIndex is 1:
22+
return index.ToString("/medium", CultureInfo.InvariantCulture);
23+
case 2:
24+
return index.ToString("/small", CultureInfo.InvariantCulture);
25+
26+
case 3 when parameterIndex is 1:
27+
return index.ToString("/large", CultureInfo.InvariantCulture);
28+
case 3 when parameterIndex is 2:
29+
return index.ToString("/medium", CultureInfo.InvariantCulture);
30+
case 3:
31+
return index.ToString("/small", CultureInfo.InvariantCulture);
32+
33+
case 4 when parameterIndex is 1:
34+
return index.ToString("/large", CultureInfo.InvariantCulture);
35+
case 4 when parameterIndex is 2:
36+
return index.ToString("/medium", CultureInfo.InvariantCulture);
37+
case 4 when parameterIndex is 3:
38+
return index.ToString("/small", CultureInfo.InvariantCulture);
39+
case 4:
40+
return index.ToString("/xs", CultureInfo.InvariantCulture);
41+
42+
case 5 when parameterIndex is 1:
43+
return index.ToString("/xl", CultureInfo.InvariantCulture);
44+
case 5 when parameterIndex is 2:
45+
return index.ToString("/large", CultureInfo.InvariantCulture);
46+
case 5 when parameterIndex is 3:
47+
return index.ToString("/medium", CultureInfo.InvariantCulture);
48+
case 5when parameterIndex is 4:
49+
return index.ToString("/small", CultureInfo.InvariantCulture);
50+
case 5:
51+
return index.ToString("/xs", CultureInfo.InvariantCulture);
52+
53+
54+
case 6 when parameterIndex is 1:
55+
return index.ToString("/xl", CultureInfo.InvariantCulture);
56+
case 6 when parameterIndex is 2:
57+
return index.ToString("/large", CultureInfo.InvariantCulture);
58+
case 6 when parameterIndex is 3:
59+
return index.ToString("/medium", CultureInfo.InvariantCulture);
60+
case 6 when parameterIndex is 4:
61+
return index.ToString("/small", CultureInfo.InvariantCulture);
62+
case 6 when parameterIndex is 5:
63+
return index.ToString("/xs", CultureInfo.InvariantCulture);
64+
case 6:
65+
return index.ToString("/xxs", CultureInfo.InvariantCulture);
66+
67+
case 7 when parameterIndex is 1:
68+
return index.ToString("/xxl", CultureInfo.InvariantCulture);
69+
case 7 when parameterIndex is 2:
70+
return index.ToString("/xl", CultureInfo.InvariantCulture);
71+
case 7 when parameterIndex is 3:
72+
return index.ToString("/large", CultureInfo.InvariantCulture);
73+
case 7 when parameterIndex is 4:
74+
return index.ToString("/medium", CultureInfo.InvariantCulture);
75+
case 7 when parameterIndex is 5:
76+
return index.ToString("/small", CultureInfo.InvariantCulture);
77+
case 7 when parameterIndex is 6:
78+
return index.ToString("/xs", CultureInfo.InvariantCulture);
79+
case 7:
80+
return index.ToString("/xxs", CultureInfo.InvariantCulture);
81+
default:
82+
return BindingOperations.DoNothing;
83+
}
84+
}
85+
86+
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
87+
{
88+
return BindingOperations.DoNothing;
89+
}
90+
}

src/PicView.Avalonia/Views/BatchResizeView.axaml

+8-56
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
1414
<UserControl.Resources>
1515
<converters:IndexBiggerThanBooleanConverter x:Key="IndexBiggerThanBooleanConverter" />
16+
<converters:IndexToStringSizeConverter x:Key="IndexToStringSizeConverter" />
1617
</UserControl.Resources>
1718
<StackPanel>
1819

@@ -440,15 +441,8 @@
440441
<customControls:FuncTextBox
441442
Classes="hover TStyle"
442443
Margin="11,0,10,0"
443-
Text="/small"
444+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=1, Converter={StaticResource IndexToStringSizeConverter}}"
444445
Width="415" />
445-
<customControls:IconButton
446-
Classes="altHover"
447-
Data="{StaticResource AltFolderGeometry}"
448-
IconHeight="20"
449-
IconWidth="20"
450-
Margin="5,0,5,0"
451-
Width="30" />
452446
</StackPanel>
453447

454448

@@ -508,15 +502,8 @@
508502
<customControls:FuncTextBox
509503
Classes="hover TStyle"
510504
Margin="11,0,10,0"
511-
Text="/small"
505+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=2, Converter={StaticResource IndexToStringSizeConverter}}"
512506
Width="415" />
513-
<customControls:IconButton
514-
Classes="altHover"
515-
Data="{StaticResource AltFolderGeometry}"
516-
IconHeight="20"
517-
IconWidth="20"
518-
Margin="5,0,5,0"
519-
Width="30" />
520507
</StackPanel>
521508

522509

@@ -576,15 +563,8 @@
576563
<customControls:FuncTextBox
577564
Classes="hover TStyle"
578565
Margin="11,0,10,0"
579-
Text="/small"
566+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=3, Converter={StaticResource IndexToStringSizeConverter}}"
580567
Width="415" />
581-
<customControls:IconButton
582-
Classes="altHover"
583-
Data="{StaticResource AltFolderGeometry}"
584-
IconHeight="20"
585-
IconWidth="20"
586-
Margin="5,0,5,0"
587-
Width="30" />
588568
</StackPanel>
589569

590570

@@ -644,15 +624,8 @@
644624
<customControls:FuncTextBox
645625
Classes="hover TStyle"
646626
Margin="11,0,10,0"
647-
Text="/small"
627+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=4, Converter={StaticResource IndexToStringSizeConverter}}"
648628
Width="415" />
649-
<customControls:IconButton
650-
Classes="altHover"
651-
Data="{StaticResource AltFolderGeometry}"
652-
IconHeight="20"
653-
IconWidth="20"
654-
Margin="5,0,5,0"
655-
Width="30" />
656629
</StackPanel>
657630

658631

@@ -711,15 +684,8 @@
711684
<customControls:FuncTextBox
712685
Classes="hover TStyle"
713686
Margin="11,0,10,0"
714-
Text="/small"
687+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=5, Converter={StaticResource IndexToStringSizeConverter}}"
715688
Width="415" />
716-
<customControls:IconButton
717-
Classes="altHover"
718-
Data="{StaticResource AltFolderGeometry}"
719-
IconHeight="20"
720-
IconWidth="20"
721-
Margin="5,0,5,0"
722-
Width="30" />
723689
</StackPanel>
724690

725691

@@ -778,15 +744,8 @@
778744
<customControls:FuncTextBox
779745
Classes="hover TStyle"
780746
Margin="11,0,10,0"
781-
Text="/small"
747+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=6, Converter={StaticResource IndexToStringSizeConverter}}"
782748
Width="415" />
783-
<customControls:IconButton
784-
Classes="altHover"
785-
Data="{StaticResource AltFolderGeometry}"
786-
IconHeight="20"
787-
IconWidth="20"
788-
Margin="5,0,5,0"
789-
Width="30" />
790749
</StackPanel>
791750

792751

@@ -846,15 +805,8 @@
846805
<customControls:FuncTextBox
847806
Classes="hover TStyle"
848807
Margin="11,0,10,0"
849-
Text="/small"
808+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=7, Converter={StaticResource IndexToStringSizeConverter}}"
850809
Width="415" />
851-
<customControls:IconButton
852-
Classes="altHover"
853-
Data="{StaticResource AltFolderGeometry}"
854-
IconHeight="20"
855-
IconWidth="20"
856-
Margin="5,0,5,0"
857-
Width="30" />
858810
</StackPanel>
859811

860812

src/PicView.Avalonia/Views/BatchResizeView.axaml.cs

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Avalonia.Controls;
22
using PicView.Avalonia.Navigation;
33
using PicView.Avalonia.ViewModels;
4+
using PicView.Core.ImageDecoding;
45
using PicView.Core.Localization;
56

67
namespace PicView.Avalonia.Views;
@@ -104,15 +105,16 @@ private async Task StartBatchResize()
104105
}
105106
}
106107

107-
// var success = await SaveImageFileHelper.SaveImageAsync(null,
108-
// file,
109-
// destination,
110-
// width,
111-
// height,
112-
// quality,
113-
// ext,
114-
// null,
115-
// _isKeepingAspectRatio).ConfigureAwait(false);
108+
return;
109+
var success = await SaveImageFileHelper.SaveImageAsync(null,
110+
file,
111+
destination,
112+
width,
113+
height,
114+
quality,
115+
ext,
116+
null,
117+
_isKeepingAspectRatio).ConfigureAwait(false);
116118
}
117119

118120
private void CheckIfValidDirectory(string path)

0 commit comments

Comments
 (0)