1.1 --- a/GUI/MainForm.cs Thu Aug 05 19:28:50 2010 +0000
1.2 +++ b/GUI/MainForm.cs Sun Aug 08 13:57:26 2010 +0000
1.3 @@ -51,7 +51,9 @@
1.4 namespace OpenHardwareMonitor.GUI {
1.5 public partial class MainForm : Form {
1.6
1.7 - private Computer computer = new Computer();
1.8 + private PersistentSettings settings;
1.9 + private UnitManager unitManager;
1.10 + private Computer computer;
1.11 private Node root;
1.12 private TreeModel treeModel;
1.13 private IDictionary<ISensor, Color> sensorPlotColors =
1.14 @@ -74,6 +76,12 @@
1.15 public MainForm() {
1.16 InitializeComponent();
1.17
1.18 + this.settings = new PersistentSettings();
1.19 + this.settings.Load(Path.ChangeExtension(
1.20 + System.Windows.Forms.Application.ExecutablePath, ".config"));
1.21 +
1.22 + this.unitManager = new UnitManager(settings);
1.23 +
1.24 // set the DockStyle here, to avoid conflicts with the MainMenu
1.25 this.splitContainer.Dock = DockStyle.Fill;
1.26
1.27 @@ -98,10 +106,10 @@
1.28 nodeTextBoxMax.DrawText += nodeTextBoxText_DrawText;
1.29 nodeTextBoxText.EditorShowing += nodeTextBoxText_EditorShowing;
1.30
1.31 - if (Utilities.Config.Contains("mainForm.Location.X")) {
1.32 - int x = Utilities.Config.Get("mainForm.Location.X", Location.X);
1.33 + if (settings.Contains("mainForm.Location.X")) {
1.34 + int x = settings.Get("mainForm.Location.X", Location.X);
1.35 x = x < 0 ? 0 : x;
1.36 - int y = Utilities.Config.Get("mainForm.Location.Y", Location.Y);
1.37 + int y = settings.Get("mainForm.Location.Y", Location.Y);
1.38 y = y < 0 ? 0 : y;
1.39 this.Location = new Point(x, y);
1.40 } else {
1.41 @@ -109,12 +117,12 @@
1.42 }
1.43
1.44 ClientSize = new Size(
1.45 - Utilities.Config.Get("mainForm.Width", 470),
1.46 - Utilities.Config.Get("mainForm.Height", 640));
1.47 + settings.Get("mainForm.Width", 470),
1.48 + settings.Get("mainForm.Height", 640));
1.49
1.50 foreach (TreeColumn column in treeView.Columns)
1.51 - column.Width = Math.Max(20, Math.Min(400,
1.52 - Config.Get("treeView.Columns." + column.Header + ".Width",
1.53 + column.Width = Math.Max(20, Math.Min(400,
1.54 + settings.Get("treeView.Columns." + column.Header + ".Width",
1.55 column.Width)));
1.56
1.57 treeModel = new TreeModel();
1.58 @@ -122,9 +130,11 @@
1.59 root.Image = Utilities.EmbeddedResources.GetImage("computer.png");
1.60
1.61 treeModel.Nodes.Add(root);
1.62 - treeView.Model = treeModel;
1.63 + treeView.Model = treeModel;
1.64
1.65 - systemTray = new SystemTray(computer);
1.66 + this.computer = new Computer(settings);
1.67 +
1.68 + systemTray = new SystemTray(computer, settings);
1.69 systemTray.HideShowCommand += hideShowClick;
1.70 systemTray.ExitCommand += exitClick;
1.71
1.72 @@ -149,52 +159,52 @@
1.73 plotColorPalette[11] = Color.Olive;
1.74 plotColorPalette[12] = Color.Firebrick;
1.75
1.76 - showHiddenSensors = new UserOption("hiddenMenuItem", false, hiddenMenuItem);
1.77 + showHiddenSensors = new UserOption("hiddenMenuItem", false, hiddenMenuItem, settings);
1.78 showHiddenSensors.Changed += delegate(object sender, EventArgs e) {
1.79 treeModel.ForceVisible = showHiddenSensors.Value;
1.80 };
1.81
1.82 - showPlot = new UserOption("plotMenuItem", false, plotMenuItem);
1.83 + showPlot = new UserOption("plotMenuItem", false, plotMenuItem, settings);
1.84 showPlot.Changed += delegate(object sender, EventArgs e) {
1.85 splitContainer.Panel2Collapsed = !showPlot.Value;
1.86 treeView.Invalidate();
1.87 };
1.88
1.89 - showValue = new UserOption("valueMenuItem", true, valueMenuItem);
1.90 + showValue = new UserOption("valueMenuItem", true, valueMenuItem, settings);
1.91 showValue.Changed += delegate(object sender, EventArgs e) {
1.92 treeView.Columns[1].IsVisible = showValue.Value;
1.93 };
1.94
1.95 - showMin = new UserOption("minMenuItem", false, minMenuItem);
1.96 + showMin = new UserOption("minMenuItem", false, minMenuItem, settings);
1.97 showMin.Changed += delegate(object sender, EventArgs e) {
1.98 treeView.Columns[2].IsVisible = showMin.Value;
1.99 };
1.100
1.101 - showMax = new UserOption("maxMenuItem", true, maxMenuItem);
1.102 + showMax = new UserOption("maxMenuItem", true, maxMenuItem, settings);
1.103 showMax.Changed += delegate(object sender, EventArgs e) {
1.104 treeView.Columns[3].IsVisible = showMax.Value;
1.105 };
1.106
1.107 - startMinimized = new UserOption("startMinMenuItem", false, startMinMenuItem);
1.108 + startMinimized = new UserOption("startMinMenuItem", false, startMinMenuItem, settings);
1.109
1.110 - minimizeToTray = new UserOption("minTrayMenuItem", true, minTrayMenuItem);
1.111 + minimizeToTray = new UserOption("minTrayMenuItem", true, minTrayMenuItem, settings);
1.112 minimizeToTray.Changed += delegate(object sender, EventArgs e) {
1.113 systemTray.IsMainIconEnabled = minimizeToTray.Value;
1.114 };
1.115
1.116 - autoStart = new UserOption(null, startupManager.Startup, startupMenuItem);
1.117 + autoStart = new UserOption(null, startupManager.Startup, startupMenuItem, settings);
1.118 autoStart.Changed += delegate(object sender, EventArgs e) {
1.119 startupManager.Startup = autoStart.Value; ;
1.120 };
1.121
1.122 - readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem);
1.123 + readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem, settings);
1.124 readHddSensors.Changed += delegate(object sender, EventArgs e) {
1.125 computer.HDDEnabled = readHddSensors.Value;
1.126 UpdatePlotSelection(null, null);
1.127 };
1.128
1.129 celciusMenuItem.Checked =
1.130 - UnitManager.TemperatureUnit == TemperatureUnit.Celcius;
1.131 + unitManager.TemperatureUnit == TemperatureUnit.Celcius;
1.132 fahrenheitMenuItem.Checked = !celciusMenuItem.Checked;
1.133
1.134 startupMenuItem.Visible = startupManager.IsAvailable;
1.135 @@ -219,14 +229,14 @@
1.136 }
1.137
1.138 private void SubHardwareAdded(IHardware hardware, Node node) {
1.139 - Node hardwareNode = new HardwareNode(hardware);
1.140 + Node hardwareNode = new HardwareNode(hardware, settings, unitManager);
1.141 node.Nodes.Add(hardwareNode);
1.142 foreach (IHardware subHardware in hardware.SubHardware)
1.143 SubHardwareAdded(subHardware, hardwareNode);
1.144 }
1.145
1.146 private void HardwareAdded(IHardware hardware) {
1.147 - Node hardwareNode = new HardwareNode(hardware);
1.148 + Node hardwareNode = new HardwareNode(hardware, settings, unitManager);
1.149 root.Nodes.Add(hardwareNode);
1.150 foreach (IHardware subHardware in hardware.SubHardware)
1.151 SubHardwareAdded(subHardware, hardwareNode);
1.152 @@ -307,17 +317,18 @@
1.153
1.154 private void SaveConfiguration() {
1.155 if (WindowState != FormWindowState.Minimized) {
1.156 - Config.Set("mainForm.Location.X", Location.X);
1.157 - Config.Set("mainForm.Location.Y", Location.Y);
1.158 - Config.Set("mainForm.Width", ClientSize.Width);
1.159 - Config.Set("mainForm.Height", ClientSize.Height);
1.160 + settings.Set("mainForm.Location.X", Location.X);
1.161 + settings.Set("mainForm.Location.Y", Location.Y);
1.162 + settings.Set("mainForm.Width", ClientSize.Width);
1.163 + settings.Set("mainForm.Height", ClientSize.Height);
1.164 }
1.165
1.166 foreach (TreeColumn column in treeView.Columns)
1.167 - Config.Set("treeView.Columns." + column.Header + ".Width",
1.168 + settings.Set("treeView.Columns." + column.Header + ".Width",
1.169 column.Width);
1.170
1.171 - Config.Save();
1.172 + settings.Save(Path.ChangeExtension(
1.173 + System.Windows.Forms.Application.ExecutablePath, ".config"));
1.174 }
1.175
1.176 private void MainForm_FormClosed(object sender, FormClosedEventArgs e) {
1.177 @@ -451,13 +462,13 @@
1.178 private void celciusMenuItem_Click(object sender, EventArgs e) {
1.179 celciusMenuItem.Checked = true;
1.180 fahrenheitMenuItem.Checked = false;
1.181 - UnitManager.TemperatureUnit = TemperatureUnit.Celcius;
1.182 + unitManager.TemperatureUnit = TemperatureUnit.Celcius;
1.183 }
1.184
1.185 private void fahrenheitMenuItem_Click(object sender, EventArgs e) {
1.186 celciusMenuItem.Checked = false;
1.187 fahrenheitMenuItem.Checked = true;
1.188 - UnitManager.TemperatureUnit = TemperatureUnit.Fahrenheit;
1.189 + unitManager.TemperatureUnit = TemperatureUnit.Fahrenheit;
1.190 }
1.191
1.192 private void sumbitReportMenuItem_Click(object sender, EventArgs e)