Skip to content

Commit 38fec29

Browse files
committed
Persist last selected compression settings. Closes #536
1 parent 3b3f923 commit 38fec29

File tree

3 files changed

+59
-8
lines changed

3 files changed

+59
-8
lines changed

CompactGUI/ViewModels/HomeViewModel.vb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ Partial Public Class HomeViewModel : Inherits ObservableObject : Implements IRec
105105
For Each folderName In validFolders
106106

107107
Dim newFolder As CompressableFolder = CompressableFolderFactory.CreateCompressableFolder(folderName)
108+
109+
newFolder.CompressionOptions.WatchFolderForChanges = SettingsHandler.AppSettings.WatchFolderForChanges
110+
newFolder.CompressionOptions.SelectedCompressionMode = SettingsHandler.AppSettings.SelectedCompressionMode
111+
newFolder.CompressionOptions.SkipPoorlyCompressedFileTypes = SettingsHandler.AppSettings.SkipNonCompressable
112+
newFolder.CompressionOptions.SkipUserSubmittedFiletypes = SettingsHandler.AppSettings.SkipUserNonCompressable
113+
108114
If Not Folders.Any(Function(f) f.FolderName = newFolder.FolderName) Then
109115
Folders.Add(newFolder)
110116
SelectedFolder = newFolder
@@ -123,7 +129,10 @@ Partial Public Class HomeViewModel : Inherits ObservableObject : Implements IRec
123129
If _watcher.WatchedFolders.Any(Function(w) w.Folder = newFolder.FolderName) Then
124130
Dim watchedFolder = _watcher.WatchedFolders.First(Function(w) w.Folder = newFolder.FolderName)
125131
newFolder.CompressionOptions.WatchFolderForChanges = True
126-
newFolder.CompressionOptions.SelectedCompressionMode = Core.WOFHelper.CompressionModeFromWOFMode(watchedFolder.CompressionLevel)
132+
If watchedFolder.CompressionLevel <> Core.WOFCompressionAlgorithm.NO_COMPRESSION Then
133+
newFolder.CompressionOptions.SelectedCompressionMode = Core.WOFHelper.CompressionModeFromWOFMode(watchedFolder.CompressionLevel)
134+
End If
135+
127136
End If
128137

129138

CompactGUI/Views/Pages/PendingCompression.xaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,28 @@
2828
Orientation="Horizontal">
2929

3030
<local:CompressionMode_Radio Width="185" Height="85"
31-
Margin="0,0,20,10"
31+
Margin="0,0,20,10" Checked="CompressionMode_Radio_Checked"
3232
BorderBrush="Transparent" CompressionMode="XPRESS 4K" EstimatedVisibility="Visible"
3333
IsChecked="{Binding Folder.CompressionOptions.SelectedCompressionMode, Converter={StaticResource EnumToRadioButtonConverter}, ConverterParameter={x:Static core:CompressionMode.XPRESS4K}, Mode=TwoWay}"
3434
IsEstimating="{Binding Folder.IsGettingEstimate}"
3535
ProgressValue="{Binding Folder.WikiCompressionResults.XPress4K.CompressionPercent}"
3636
Savings="{Binding Folder.WikiCompressionResults.XPress4K.CompressionSavings}" />
3737
<local:CompressionMode_Radio Width="185" Height="85"
38-
Margin="0,0,20,10"
38+
Margin="0,0,20,10" Checked="CompressionMode_Radio_Checked"
3939
BorderBrush="Transparent" CompressionMode="XPRESS 8K" EstimatedVisibility="Visible"
4040
IsChecked="{Binding Folder.CompressionOptions.SelectedCompressionMode, Converter={StaticResource EnumToRadioButtonConverter}, ConverterParameter={x:Static core:CompressionMode.XPRESS8K}, Mode=TwoWay}"
4141
IsEstimating="{Binding Folder.IsGettingEstimate}"
4242
ProgressValue="{Binding Folder.WikiCompressionResults.XPress8K.CompressionPercent}"
4343
Savings="{Binding Folder.WikiCompressionResults.XPress8K.CompressionSavings}" />
4444
<local:CompressionMode_Radio Width="185" Height="85"
45-
Margin="0,0,20,10"
45+
Margin="0,0,20,10" Checked="CompressionMode_Radio_Checked"
4646
BorderBrush="Transparent" CompressionMode="XPRESS 16K" EstimatedVisibility="Visible"
4747
IsChecked="{Binding Folder.CompressionOptions.SelectedCompressionMode, Converter={StaticResource EnumToRadioButtonConverter}, ConverterParameter={x:Static core:CompressionMode.XPRESS16K}, Mode=TwoWay}"
4848
IsEstimating="{Binding Folder.IsGettingEstimate}"
4949
ProgressValue="{Binding Folder.WikiCompressionResults.XPress16K.CompressionPercent}"
5050
Savings="{Binding Folder.WikiCompressionResults.XPress16K.CompressionSavings}" />
5151
<local:CompressionMode_Radio Width="185" Height="85"
52-
Margin="0,0,20,10"
52+
Margin="0,0,20,10" Checked="CompressionMode_Radio_Checked"
5353
BorderBrush="Transparent" CompressionMode="LZX" EstimatedVisibility="Visible"
5454
IsChecked="{Binding Folder.CompressionOptions.SelectedCompressionMode, Converter={StaticResource EnumToRadioButtonConverter}, ConverterParameter={x:Static core:CompressionMode.LZX}, Mode=TwoWay}"
5555
IsEstimating="{Binding Folder.IsGettingEstimate}"
@@ -75,7 +75,7 @@
7575
Margin="0,0,0,20" VerticalAlignment="Center"
7676
FontSize="18" />
7777
<WrapPanel Margin="0,0,0,15" Orientation="Horizontal">
78-
<CheckBox x:Name="UiChkSkipPoorlyCompressed"
78+
<CheckBox x:Name="UiChkSkipPoorlyCompressed" Checked="UiChkSkipPoorlyCompressed_Checked" Unchecked="UiChkSkipPoorlyCompressed_Unchecked"
7979
Content="Skip file types specified in settings"
8080
Width="330"
8181
FontSize="16"
@@ -95,7 +95,7 @@
9595
</TextBlock>
9696
</WrapPanel>
9797
<WrapPanel Margin="0,0,0,15" Orientation="Horizontal">
98-
<CheckBox x:Name="UiChkSkipUserPoorlyCompressed"
98+
<CheckBox x:Name="UiChkSkipUserPoorlyCompressed" Checked="UiChkSkipUserPoorlyCompressed_Checked" Unchecked="UiChkSkipUserPoorlyCompressed_Unchecked"
9999
Width="330"
100100
FontSize="16"
101101
IsChecked="{Binding Folder.CompressionOptions.SkipUserSubmittedFiletypes, Mode=TwoWay}">
@@ -134,7 +134,7 @@
134134
</WrapPanel>
135135

136136

137-
<CheckBox Content="Watch folder for changes"
137+
<CheckBox x:Name="uiChkWatchFolderForChanges" Content="Watch folder for changes" Checked="uiChkWatchFolderForChanges_Checked" Unchecked="uiChkWatchFolderForChanges_Unchecked"
138138
Margin="0,0,0,15"
139139
FontSize="16"
140140
IsChecked="{Binding Folder.CompressionOptions.WatchFolderForChanges, Mode=TwoWay}" />
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
11
Public Class PendingCompression
2+
Private Sub CompressionMode_Radio_Checked(sender As Object, e As RoutedEventArgs)
3+
Dim radio As RadioButton = CType(sender, RadioButton)
24

5+
Dim ret As FolderViewModel = CType(radio.DataContext, FolderViewModel)
6+
7+
SettingsHandler.AppSettings.SelectedCompressionMode = ret.Folder.CompressionOptions.SelectedCompressionMode
8+
SettingsHandler.WriteToFile()
9+
10+
End Sub
11+
12+
Private Sub UiChkSkipPoorlyCompressed_Checked(sender As Object, e As RoutedEventArgs)
13+
SettingsHandler.AppSettings.SkipNonCompressable = True
14+
SettingsHandler.WriteToFile()
15+
16+
End Sub
17+
18+
Private Sub UiChkSkipPoorlyCompressed_Unchecked(sender As Object, e As RoutedEventArgs)
19+
If Not IsVisible Then Return ' Prevents issues when the page is not fully loaded
20+
SettingsHandler.AppSettings.SkipNonCompressable = False
21+
SettingsHandler.WriteToFile()
22+
End Sub
23+
24+
Private Sub UiChkSkipUserPoorlyCompressed_Checked(sender As Object, e As RoutedEventArgs)
25+
SettingsHandler.AppSettings.SkipUserNonCompressable = True
26+
SettingsHandler.WriteToFile()
27+
End Sub
28+
29+
Private Sub UiChkSkipUserPoorlyCompressed_Unchecked(sender As Object, e As RoutedEventArgs)
30+
If Not IsVisible Then Return
31+
SettingsHandler.AppSettings.SkipUserNonCompressable = False
32+
SettingsHandler.WriteToFile()
33+
End Sub
34+
35+
Private Sub uiChkWatchFolderForChanges_Checked(sender As Object, e As RoutedEventArgs)
36+
SettingsHandler.AppSettings.WatchFolderForChanges = True
37+
SettingsHandler.WriteToFile()
38+
End Sub
39+
40+
Private Sub uiChkWatchFolderForChanges_Unchecked(sender As Object, e As RoutedEventArgs)
41+
If Not IsVisible Then Return
42+
SettingsHandler.AppSettings.WatchFolderForChanges = False
43+
SettingsHandler.WriteToFile()
44+
End Sub
345
End Class

0 commit comments

Comments
 (0)