Skip to content

Commit 1191bf5

Browse files
feat: Minimize on Exit toggle instead of MessageBox on every Window_Closing
1 parent ff4a8dd commit 1191bf5

File tree

8 files changed

+60
-19
lines changed

8 files changed

+60
-19
lines changed

DigitalWellbeingWPF/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
2929
</value>
3030
</setting>
31+
<setting name="MinimizeOnExit" serializeAs="String">
32+
<value>True</value>
33+
</setting>
3134
</DigitalWellbeingWPF.Properties.Settings>
3235
</userSettings>
3336
</configuration>

DigitalWellbeingWPF/MainWindow.xaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
WindowStartupLocation="CenterScreen"
1313
StateChanged="Window_StateChanged" Closing="Window_Closing">
1414
<Grid>
15-
<ui:NavigationView x:Name="NavView" SelectionChanged="NavView_SelectionChanged" IsBackButtonVisible="Collapsed" PaneTitle="Digital Wellbeing For Windows">
15+
<ui:NavigationView x:Name="NavView"
16+
SelectionChanged="NavView_SelectionChanged"
17+
IsBackButtonVisible="Collapsed" PaneDisplayMode="LeftCompact"
18+
PaneTitle="Digital Wellbeing For Windows">
1619

1720
<ui:NavigationView.MenuItems>
1821
<ui:NavigationViewItem Tag="home" Icon="Home" Content="Home"/>

DigitalWellbeingWPF/MainWindow.xaml.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,11 @@ public void RestoreWindow()
144144

145145
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
146146
{
147-
MessageBoxResult res = MessageBox.Show(
148-
"Are you sure you want to exit the app? Alert Notifications won't work. You can minimize the app instead.",
149-
App.APPNAME,
150-
MessageBoxButton.OKCancel,
151-
MessageBoxImage.None,
152-
MessageBoxResult.Cancel);
153-
154-
if (res == MessageBoxResult.OK)
155-
{
156-
Application.Current.Shutdown();
157-
}
158-
else
147+
if (Properties.Settings.Default.MinimizeOnExit)
159148
{
149+
MainWindow mWindow = Application.Current.MainWindow as MainWindow;
150+
mWindow.MinimizeToTray();
151+
160152
e.Cancel = true;
161153
}
162154
}

DigitalWellbeingWPF/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
// You can specify all the values or you can default the Build and Revision Numbers
5252
// by using the '*' as shown below:
5353
// [assembly: AssemblyVersion("1.0.*")]
54-
[assembly: AssemblyVersion("2.0.3.0")]
55-
[assembly: AssemblyFileVersion("2.0.3.0")]
54+
[assembly: AssemblyVersion("2.0.4.0")]
55+
[assembly: AssemblyFileVersion("2.0.4.0")]

DigitalWellbeingWPF/Properties/Settings.Designer.cs

Lines changed: 13 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DigitalWellbeingWPF/Properties/Settings.settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,8 @@
1818
<Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
1919
&lt;ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /&gt;</Value>
2020
</Setting>
21+
<Setting Name="MinimizeOnExit" Type="System.Boolean" Scope="User">
22+
<Value Profile="(Default)">True</Value>
23+
</Setting>
2124
</Settings>
2225
</SettingsFile>

DigitalWellbeingWPF/Views/SettingsPage.xaml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@
2828
<ui:ScrollViewerEx>
2929

3030
<ui:SimpleStackPanel>
31+
<!-- APP SETTINGS -->
32+
<TextBlock Text="App Runtime" Style="{StaticResource SubtitleTextBlockStyle}" Margin="10,0,0,10"/>
3133

32-
<!-- USAGE DATA -->
33-
<TextBlock Text="Usage Data" Style="{StaticResource SubtitleTextBlockStyle}" Margin="10,0,0,10"/>
34-
34+
<!-- Run on Startup -->
3535
<ui:ListViewItem Style="{StaticResource SettingListItemStyle}">
3636
<Grid>
3737
<Grid.ColumnDefinitions>
@@ -48,6 +48,27 @@
4848
</Grid>
4949
</ui:ListViewItem>
5050

51+
<!-- Run on Startup -->
52+
<ui:ListViewItem Style="{StaticResource SettingListItemStyle}">
53+
<Grid>
54+
<Grid.ColumnDefinitions>
55+
<ColumnDefinition Width="*"/>
56+
<ColumnDefinition Width="auto"/>
57+
</Grid.ColumnDefinitions>
58+
59+
<ui:SimpleStackPanel Grid.Column="0" Margin="0,0,20,0">
60+
<TextBlock Text="Minimize On Exit" Style="{StaticResource BaseTextBlockStyle}"/>
61+
<TextBlock Text="Minimize the app on taskbar on exit. Disable to exit the app completely (notifications won't work)."
62+
Style="{StaticResource CaptionTextBlockStyle}"/>
63+
</ui:SimpleStackPanel>
64+
65+
<ui:ToggleSwitch x:Name="ToggleMinimizeOnExit" Toggled="ToggleMinimizeOnExit_Toggled" Grid.Column="1"/>
66+
</Grid>
67+
</ui:ListViewItem>
68+
69+
<!-- USAGE DATA -->
70+
<TextBlock Text="Usage Data" Style="{StaticResource SubtitleTextBlockStyle}" Margin="10,0,0,10"/>
71+
5172
<!-- EXCLUDED APPS -->
5273
<ui:ListView Style="{StaticResource SettingListViewStyle}">
5374

DigitalWellbeingWPF/Views/SettingsPage.xaml.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ private void LoadCurrentSettings()
6767
MinDuration_Seconds.Value = minDuration.Seconds;
6868

6969
EnableRunOnStartup.IsOn = SettingsManager.IsRunningOnStartup();
70+
ToggleMinimizeOnExit.IsOn = Properties.Settings.Default.MinimizeOnExit;
7071

7172
EnableAutoRefresh.IsOn = Properties.Settings.Default.EnableAutoRefresh;
7273
RefreshInterval.Value = Properties.Settings.Default.RefreshIntervalSeconds;
@@ -210,6 +211,12 @@ private void EnableRunOnStartup_Toggled(object sender, RoutedEventArgs e)
210211
SettingsManager.SetRunOnStartup(EnableRunOnStartup.IsOn);
211212
}
212213

214+
private void ToggleMinimizeOnExit_Toggled(object sender, RoutedEventArgs e)
215+
{
216+
Properties.Settings.Default.MinimizeOnExit = ToggleMinimizeOnExit.IsOn;
217+
Properties.Settings.Default.Save();
218+
}
219+
213220
#endregion
214221

215222
#region About App

0 commit comments

Comments
 (0)