Skip to content

Commit 9e7958e

Browse files
committed
Update Autosave.
1 parent a670307 commit 9e7958e

File tree

3 files changed

+15
-1012
lines changed

3 files changed

+15
-1012
lines changed

RetailCoder.VBE/AutoSave/AutoSave.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.IO;
23
using System.Linq;
34
using System.Timers;
45
using Microsoft.Vbe.Interop;
@@ -41,37 +42,36 @@ void _settings_PropertyChanged(object sender, System.ComponentModel.PropertyChan
4142
{
4243
if (e.PropertyName == "IsEnabled")
4344
{
44-
IsEnabledChanged(sender, e);
45+
_timer.Enabled = _settings.IsEnabled;
4546
}
4647
if (e.PropertyName == "TimerDelay")
4748
{
48-
TimerDelayChanged(sender, e);
49+
_timer.Interval = _settings.TimerDelay;
4950
}
5051
}
5152

52-
void TimerDelayChanged(object sender, EventArgs e)
53-
{
54-
_timer.Interval = _settings.TimerDelay;
55-
}
56-
57-
void IsEnabledChanged(object sender, EventArgs e)
58-
{
59-
_timer.Enabled = _settings.IsEnabled;
60-
}
61-
6253
private void _timer_Elapsed(object sender, ElapsedEventArgs e)
6354
{
6455
if (_vbe.VBProjects.OfType<VBProject>().Any(p => !p.Saved))
6556
{
57+
try
58+
{
59+
// iterate to find if a file exists for each open project
60+
// I do hope the compiler doesn't optimize this out
61+
_vbe.VBProjects.OfType<VBProject>().Select(p => p.FileName).ToList();
62+
}
63+
catch (DirectoryNotFoundException)
64+
{
65+
return;
66+
}
67+
6668
_vbe.CommandBars.FindControl(Id: 3).Execute();
6769
}
6870
}
6971

7072
public void Dispose()
7173
{
72-
_settings.IsEnabledChanged -= _settings_IsEnabledChanged;
73-
_settings.TimerDelayChanged -= _settings_TimerDelayChanged;
74-
74+
_settings.PropertyChanged -= _settings_PropertyChanged;
7575
_timer.Elapsed -= _timer_Elapsed;
7676

7777
_timer.Dispose();

0 commit comments

Comments
 (0)