# HG changeset patch # User moel.mich # Date 1274826783 0 # Node ID cea5477b4d72d1d27c6500daf6a49defd35155fc # Parent 76aaf45a01c7108f4febdc5de512bd1dc32e3647 Added an event handler to save the configuration when the user logs off without closing the application first (http://blogs.msdn.com/b/oldnewthing/archive/2008/04/21/8413175.aspx), because FormClosed is not called in that case. diff -r 76aaf45a01c7 -r cea5477b4d72 GUI/CrashReportForm.cs --- a/GUI/CrashReportForm.cs Tue May 25 18:57:28 2010 +0000 +++ b/GUI/CrashReportForm.cs Tue May 25 22:33:03 2010 +0000 @@ -38,7 +38,6 @@ using System; using System.Collections.Generic; using System.ComponentModel; -using System.Data; using System.Drawing; using System.IO; using System.Net; diff -r 76aaf45a01c7 -r cea5477b4d72 GUI/MainForm.cs --- a/GUI/MainForm.cs Tue May 25 18:57:28 2010 +0000 +++ b/GUI/MainForm.cs Tue May 25 22:33:03 2010 +0000 @@ -173,8 +173,14 @@ // Create a handle, otherwise calling Close() does not fire FormClosed IntPtr handle = Handle; + + // Make sure the settings are saved when the user logs off + Microsoft.Win32.SystemEvents.SessionEnded += + delegate(object sender, Microsoft.Win32.SessionEndedEventArgs e) { + SaveConfiguration(); + }; } - + private void SubHardwareAdded(IHardware hardware, Node node) { Node hardwareNode = new HardwareNode(hardware); node.Nodes.Add(hardwareNode); @@ -262,8 +268,7 @@ sensorSystemTray.Redraw(); } - private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { - + private void SaveConfiguration() { Config.Set(hiddenMenuItem.Name, hiddenMenuItem.Checked); Config.Set(plotMenuItem.Name, plotMenuItem.Checked); @@ -274,7 +279,7 @@ Config.Set(startMinMenuItem.Name, startMinMenuItem.Checked); Config.Set(minTrayMenuItem.Name, minTrayMenuItem.Checked); - Config.Set(hddMenuItem.Name, hddMenuItem.Checked); + Config.Set(hddMenuItem.Name, hddMenuItem.Checked); if (WindowState != FormWindowState.Minimized) { Config.Set("mainForm.Location.X", Location.X); @@ -283,12 +288,17 @@ Config.Set("mainForm.Height", Height); } - foreach (TreeColumn column in treeView.Columns) - Config.Set("treeView.Columns." + column.Header + ".Width", + foreach (TreeColumn column in treeView.Columns) + Config.Set("treeView.Columns." + column.Header + ".Width", column.Width); + Config.Save(); + } + + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { + SaveConfiguration(); + timer.Enabled = false; - sensorSystemTray.Dispose(); notifyIcon.Dispose(); computer.Close(); diff -r 76aaf45a01c7 -r cea5477b4d72 OpenHardwareMonitor.csproj --- a/OpenHardwareMonitor.csproj Tue May 25 18:57:28 2010 +0000 +++ b/OpenHardwareMonitor.csproj Tue May 25 22:33:03 2010 +0000 @@ -52,12 +52,10 @@ - - diff -r 76aaf45a01c7 -r cea5477b4d72 Properties/AssemblyInfo.cs --- a/Properties/AssemblyInfo.cs Tue May 25 18:57:28 2010 +0000 +++ b/Properties/AssemblyInfo.cs Tue May 25 22:33:03 2010 +0000 @@ -69,5 +69,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.1.35.0")] -[assembly: AssemblyFileVersion("0.1.35.0")] +[assembly: AssemblyVersion("0.1.36.0")] +[assembly: AssemblyFileVersion("0.1.36.0")] diff -r 76aaf45a01c7 -r cea5477b4d72 Utilities/Config.cs --- a/Utilities/Config.cs Tue May 25 18:57:28 2010 +0000 +++ b/Utilities/Config.cs Tue May 25 22:33:03 2010 +0000 @@ -60,7 +60,7 @@ System.Configuration.ConfigurationUserLevel.None); } - ~Config() { + private void SaveConfig() { string tempName = Path.ChangeExtension(fileName, ".tmp"); if (File.Exists(tempName)) @@ -73,6 +73,10 @@ } catch (System.Configuration.ConfigurationErrorsException) { } } + public static void Save() { + instance.SaveConfig(); + } + public static Config Settings { get { return instance;