Skip to content
This repository was archived by the owner on Mar 9, 2021. It is now read-only.

Commit 8d452b5

Browse files
committed
Save settings to disk after change.
Directly persists settings changes to the disk after performing a change via the "Settings" window, instead of only saving them on application exit.
1 parent edb3bc9 commit 8d452b5

File tree

6 files changed

+32
-2
lines changed

6 files changed

+32
-2
lines changed

src/TumblThree/SharedAssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212

1313
[assembly: ComVisible(false)]
1414
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
15-
[assembly: AssemblyVersion("1.0.8.71")]
16-
[assembly: AssemblyFileVersion("1.0.8.71")]
15+
[assembly: AssemblyVersion("1.0.8.73")]
16+
[assembly: AssemblyFileVersion("1.0.8.73")]

src/TumblThree/TumblThree.Applications/Controllers/ModuleController.cs

+11
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public void Initialize()
9191
ShellService.ShowDetailsViewAction = ShowDetailsView;
9292
ShellService.ShowQueueViewAction = ShowQueueView;
9393
ShellService.UpdateDetailsViewAction = UpdateDetailsView;
94+
ShellService.SettingsUpdatedHandler += OnSettingsUpdated;
9495
ShellService.InitializeOAuthManager();
9596

9697
ManagerController.QueueManager = queueManager;
@@ -126,6 +127,11 @@ public void Shutdown()
126127
ManagerController.Shutdown();
127128
CrawlerController.Shutdown();
128129

130+
SaveSettings();
131+
}
132+
133+
private void SaveSettings()
134+
{
129135
string savePath = environmentService.AppSettingsPath;
130136
if (appSettings.PortableMode)
131137
savePath = AppDomain.CurrentDomain.BaseDirectory;
@@ -136,6 +142,11 @@ public void Shutdown()
136142
SaveSettings(Path.Combine(savePath, cookiesFileName), new List<Cookie>(cookieService.GetAllCookies()));
137143
}
138144

145+
private void OnSettingsUpdated(object sender, EventArgs e)
146+
{
147+
SaveSettings();
148+
}
149+
139150
private void OnBlogManagerFinishedLoadingLibrary(object sender, EventArgs e)
140151
{
141152
QueueController.LoadQueue();

src/TumblThree/TumblThree.Applications/Services/IShellService.cs

+4
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,9 @@ public interface IShellService : INotifyPropertyChanged
4343
void AddTaskToCompleteBeforeShutdown(Task task);
4444

4545
IDisposable SetApplicationBusy();
46+
47+
event EventHandler SettingsUpdatedHandler;
48+
49+
void SettingsUpdated();
4650
}
4751
}

src/TumblThree/TumblThree.Applications/Services/ShellService.cs

+7
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ internal class ShellService : Model, IShellService
2929
private object queueView;
3030
private object settingsView;
3131

32+
public event EventHandler SettingsUpdatedHandler;
33+
3234
[ImportingConstructor]
3335
public ShellService(Lazy<IShellView> shellView)
3436
{
@@ -169,5 +171,10 @@ public void InitializeOAuthManager()
169171
OAuthManager["token"] = Settings.OAuthToken;
170172
OAuthManager["token_secret"] = Settings.OAuthTokenSecret;
171173
}
174+
175+
public void SettingsUpdated()
176+
{
177+
SettingsUpdatedHandler.Invoke(null, EventArgs.Empty);
178+
}
172179
}
173180
}

src/TumblThree/TumblThree.Applications/ViewModels/SettingsViewModel.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1055,6 +1055,8 @@ private async Task Save()
10551055
bool loadAllDatabasesChanged = LoadAllDatabasesChanged();
10561056
SaveSettings();
10571057
await ApplySettings(downloadLocationChanged, loadAllDatabasesChanged);
1058+
1059+
ShellService.SettingsUpdated();
10581060
}
10591061

10601062
private async Task ApplySettings(bool downloadLocationChanged, bool loadAllDatabasesChanged)

src/TumblThree/TumblThree.Presentation/DesignData/MockShellService.cs

+6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public class MockShellService : Model, IShellService
3333

3434
public event CancelEventHandler Closing;
3535

36+
public event EventHandler SettingsUpdatedHandler;
37+
3638
public void ShowError(Exception exception, string displayMessage)
3739
{
3840
}
@@ -49,6 +51,10 @@ public void UpdateDetailsView()
4951
{
5052
}
5153

54+
public void SettingsUpdated()
55+
{
56+
}
57+
5258
public void AddTaskToCompleteBeforeShutdown(Task task)
5359
{
5460
}

0 commit comments

Comments
 (0)