Skip to content

Commit ad23038

Browse files
committed
settings save optimized
1 parent 219bac0 commit ad23038

4 files changed

Lines changed: 13 additions & 2 deletions

File tree

OpenHardwareMonitor/UI/HardwareNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public bool Expanded
6969
get => _expanded;
7070
set
7171
{
72+
if (_expanded == value) return;
7273
_expanded = value;
7374
_settings.SetValue(_expandedIdentifier, _expanded);
7475
}

OpenHardwareMonitor/UI/TypeNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ public bool Expanded
136136
get => _expanded;
137137
set
138138
{
139+
if (_expanded == value) return;
139140
_expanded = value;
140141
_settings.SetValue(_expandedIdentifier, _expanded);
141142
}

OpenHardwareMonitor/Utilities/PersistentSettings.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,18 @@ public void SaveToFile(string configFilePath)
112112
}
113113
}
114114

115+
private bool isPortable = true;
115116
public bool IsPortable
116117
{
117118
get
118119
{
119-
return GetValue("portable", true);
120+
return isPortable;
120121
}
121122
set
122123
{
123-
SetValue("portable", value);
124+
if (isPortable == value) return;
125+
isPortable = value;
126+
Save();
124127
}
125128
}
126129

@@ -131,6 +134,7 @@ public bool Contains(string name)
131134

132135
public void SetValue(string name, string value)
133136
{
137+
if (_settings.TryGetValue(name, out var prevValue) && prevValue == value) return;
134138
_settings[name] = value;
135139
Save();
136140
}
@@ -152,6 +156,7 @@ public void Remove(string name)
152156

153157
public void SetValue(string name, int value)
154158
{
159+
if (_settings.TryGetValue(name, out var prevValue) && int.TryParse(prevValue, out var oldValue) && oldValue == value) return;
155160
_settings[name] = value.ToString();
156161
Save();
157162
}
@@ -172,6 +177,7 @@ public int GetValue(string name, int value)
172177

173178
public void SetValue(string name, float value)
174179
{
180+
if (_settings.TryGetValue(name, out var prevValue) && float.TryParse(prevValue, out var oldValue) && oldValue == value) return;
175181
_settings[name] = value.ToString(CultureInfo.InvariantCulture);
176182
Save();
177183
}
@@ -201,6 +207,7 @@ public double GetValue(string name, double value)
201207

202208
public void SetValue(string name, bool value)
203209
{
210+
if (_settings.TryGetValue(name, out var prevValue) && bool.TryParse(prevValue, out var oldValue) && oldValue == value) return;
204211
_settings[name] = value ? "true" : "false";
205212
Save();
206213
}
@@ -217,6 +224,7 @@ public bool GetValue(string name, bool value)
217224

218225
public void SetValue(string name, Color color)
219226
{
227+
if (_settings.TryGetValue(name, out var prevValue) && int.TryParse(prevValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out int parsedValue) && Color.FromArgb(parsedValue) == color) return;
220228
_settings[name] = color.ToArgb().ToString("X8");
221229
Save();
222230
}

OpenHardwareMonitorLib/Hardware/Sensor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public string Name
8585
get { return _name; }
8686
set
8787
{
88+
if (_name == value) return;
8889
_name = !string.IsNullOrEmpty(value) ? value : _defaultName;
8990

9091
_settings.SetValue(new Identifier(Identifier, "name").ToString(), _name);

0 commit comments

Comments
 (0)