Skip to content

Commit 5e422b3

Browse files
committed
Add percentage suggestion - batch resize #165
1 parent e385c21 commit 5e422b3

File tree

3 files changed

+100
-8
lines changed

3 files changed

+100
-8
lines changed
Lines changed: 90 additions & 0 deletions
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 IndexToPercentageSizeConverter: 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 30;
20+
21+
case 2 when parameterIndex is 1:
22+
return 30;
23+
case 2:
24+
return 50;
25+
26+
case 3 when parameterIndex is 1:
27+
return 70;
28+
case 3 when parameterIndex is 2:
29+
return 50;
30+
case 3:
31+
return 30;
32+
33+
case 4 when parameterIndex is 1:
34+
return 70;
35+
case 4 when parameterIndex is 2:
36+
return 50;
37+
case 4 when parameterIndex is 3:
38+
return 30;
39+
case 4:
40+
return 15;
41+
42+
case 5 when parameterIndex is 1:
43+
return 80;
44+
case 5 when parameterIndex is 2:
45+
return 70;
46+
case 5 when parameterIndex is 3:
47+
return 50;
48+
case 5when parameterIndex is 4:
49+
return 30;
50+
case 5:
51+
return 15;
52+
53+
54+
case 6 when parameterIndex is 1:
55+
return 80;
56+
case 6 when parameterIndex is 2:
57+
return 70;
58+
case 6 when parameterIndex is 3:
59+
return 60;
60+
case 6 when parameterIndex is 4:
61+
return 50;
62+
case 6 when parameterIndex is 5:
63+
return 40;
64+
case 6:
65+
return 30;
66+
67+
case 7 when parameterIndex is 1:
68+
return 85;
69+
case 7 when parameterIndex is 2:
70+
return 75;
71+
case 7 when parameterIndex is 3:
72+
return 65;
73+
case 7 when parameterIndex is 4:
74+
return 50;
75+
case 7 when parameterIndex is 5:
76+
return 40;
77+
case 7 when parameterIndex is 6:
78+
return 30;
79+
case 7:
80+
return 20;
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/Converters/IndexToStringSizeConverter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Globalization;
22
using Avalonia.Data;
33
using Avalonia.Data.Converters;
4+
using PicView.Core.Localization;
45

56
namespace PicView.Avalonia.Converters;
67

@@ -16,7 +17,7 @@ public object Convert(object? value, Type targetType, object? parameter, Culture
1617
switch (index)
1718
{
1819
case 1:
19-
return "/small";
20+
return TranslationHelper.Translation.Thumbnail ?? "Thumb";
2021

2122
case 2 when parameterIndex is 1:
2223
return "/medium";

src/PicView.Avalonia/Views/BatchResizeView.axaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<UserControl.Resources>
1515
<converters:IndexBiggerThanBooleanConverter x:Key="IndexBiggerThanBooleanConverter" />
1616
<converters:IndexToStringSizeConverter x:Key="IndexToStringSizeConverter" />
17+
<converters:IndexToPercentageSizeConverter x:Key="IndexToPercentageSizeConverter" />
1718
</UserControl.Resources>
1819
<StackPanel>
1920

@@ -487,7 +488,7 @@
487488

488489
<customControls:FuncTextBox
489490
Classes="hover TStyle"
490-
Text="80"
491+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=1, Converter={StaticResource IndexToPercentageSizeConverter}}"
491492
Width="200"
492493
x:Name="Thumb1ValueBox" />
493494

@@ -552,7 +553,7 @@
552553

553554
<customControls:FuncTextBox
554555
Classes="hover TStyle"
555-
Text="80"
556+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=2, Converter={StaticResource IndexToPercentageSizeConverter}}"
556557
Width="200"
557558
x:Name="Thumb2ValueBox" />
558559

@@ -617,7 +618,7 @@
617618

618619
<customControls:FuncTextBox
619620
Classes="hover TStyle"
620-
Text="80"
621+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=3, Converter={StaticResource IndexToPercentageSizeConverter}}"
621622
Width="200"
622623
x:Name="Thumb3ValueBox" />
623624

@@ -682,7 +683,7 @@
682683

683684
<customControls:FuncTextBox
684685
Classes="hover TStyle"
685-
Text="80"
686+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=4, Converter={StaticResource IndexToPercentageSizeConverter}}"
686687
Width="200"
687688
x:Name="Thumb4ValueBox" />
688689

@@ -746,7 +747,7 @@
746747

747748
<customControls:FuncTextBox
748749
Classes="hover TStyle"
749-
Text="80"
750+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=5, Converter={StaticResource IndexToPercentageSizeConverter}}"
750751
Width="200"
751752
x:Name="Thumb5ValueBox" />
752753

@@ -810,7 +811,7 @@
810811

811812
<customControls:FuncTextBox
812813
Classes="hover TStyle"
813-
Text="80"
814+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=6, Converter={StaticResource IndexToPercentageSizeConverter}}"
814815
Width="200"
815816
x:Name="Thumb6ValueBox" />
816817

@@ -875,7 +876,7 @@
875876

876877
<customControls:FuncTextBox
877878
Classes="hover TStyle"
878-
Text="80"
879+
Text="{Binding SelectedIndex, ElementName=ThumbnailsComboBox, ConverterParameter=7, Converter={StaticResource IndexToPercentageSizeConverter}}"
879880
Width="200"
880881
x:Name="Thumb7ValueBox" />
881882

0 commit comments

Comments
 (0)