Skip to content

Commit

Permalink
Move temperature unit change to Settings for better usability
Browse files Browse the repository at this point in the history
  • Loading branch information
BartoszCichecki committed Jun 25, 2024
1 parent 4b437de commit 85f6fd3
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,7 @@
HorizontalContentAlignment="Right"
VerticalContentAlignment="Center"
Content="-"
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
MouseLeftButtonDown="TemperatureLabel_Click" />
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />

<Label
Grid.Row="4"
Expand Down Expand Up @@ -233,8 +232,7 @@
HorizontalContentAlignment="Right"
VerticalContentAlignment="Center"
Content="-"
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
MouseUp="TemperatureLabel_Click" />
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />

<Label
Grid.Row="4"
Expand All @@ -261,8 +259,7 @@
HorizontalContentAlignment="Right"
VerticalContentAlignment="Center"
Content="-"
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
MouseDown="TemperatureLabel_Click" />
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />

<Label
Grid.Row="5"
Expand Down
11 changes: 0 additions & 11 deletions LenovoLegionToolkit.WPF/Controls/Dashboard/SensorsControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,17 +145,6 @@ private void UpdateValues(SensorsData data)
$"{data.GPU.FanSpeed} {Resource.RPM}", $"{data.GPU.MaxFanSpeed} {Resource.RPM}");
}

private void TemperatureLabel_Click(object sender, RoutedEventArgs e)
{
_applicationSettings.Store.TemperatureUnit = _applicationSettings.Store.TemperatureUnit == TemperatureUnit.C ? TemperatureUnit.F : TemperatureUnit.C;
_applicationSettings.SynchronizeStore();

if (_cpuTemperatureLabel.Tag is double cpuTemperature)
_cpuTemperatureLabel.Content = GetTemperatureText(cpuTemperature);
if (_gpuTemperatureLabel.Tag is double gpuTemperature)
_gpuTemperatureLabel.Content = GetTemperatureText(gpuTemperature);
}

private string GetTemperatureText(double temperature)
{
if (_applicationSettings.Store.TemperatureUnit == TemperatureUnit.F)
Expand Down
5 changes: 1 addition & 4 deletions LenovoLegionToolkit.WPF/Pages/BatteryPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,7 @@
</StackPanel>
</StackPanel>

<custom:CardControl
x:Name="_batteryTemperatureCardControl"
Margin="0,0,0,24"
Click="BatteryTemperatureCardControl_Click">
<custom:CardControl x:Name="_batteryTemperatureCardControl" Margin="0,0,0,24">
<custom:CardControl.Header>
<controls:CardHeaderControl Title="{x:Static resources:Resource.BatteryPage_BatteryTemperature_Title}" Subtitle="{x:Static resources:Resource.BatteryPage_BatteryTemperature_Message}" />
</custom:CardControl.Header>
Expand Down
9 changes: 0 additions & 9 deletions LenovoLegionToolkit.WPF/Pages/BatteryPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,4 @@ private string GetTemperatureText(double? temperature)

return $"{temperature:0.0} {Resource.Celsius}";
}

private void BatteryTemperatureCardControl_Click(object sender, RoutedEventArgs e)
{
_settings.Store.TemperatureUnit = _settings.Store.TemperatureUnit == TemperatureUnit.C ? TemperatureUnit.F : TemperatureUnit.C;
_settings.SynchronizeStore();

var temperature = (sender as FrameworkElement)?.Tag as double?;
_batteryTemperatureText.Text = GetTemperatureText(temperature);
}
}
14 changes: 14 additions & 0 deletions LenovoLegionToolkit.WPF/Pages/SettingsPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,20 @@
Visibility="Hidden" />
</custom:CardControl>

<custom:CardControl Margin="0,0,0,8" Icon="Temperature24">
<custom:CardControl.Header>
<controls:CardHeaderControl Title="{x:Static resources:Resource.SettingsPage_Temperature_Title}" Subtitle="{x:Static resources:Resource.SettingsPage_Temperature_Message}" />
</custom:CardControl.Header>
<ComboBox
x:Name="_temperatureComboBox"
MinWidth="160"
Margin="0,0,0,8"
AutomationProperties.Name="{x:Static resources:Resource.SettingsPage_Temperature_Title}"
MaxDropDownHeight="Auto"
SelectionChanged="TemperatureComboBox_SelectionChanged"
Visibility="Hidden" />
</custom:CardControl>

<custom:CardControl Margin="0,0,0,8" Icon="DarkTheme24">
<custom:CardControl.Header>
<controls:CardHeaderControl Title="{x:Static resources:Resource.SettingsPage_Theme_Title}" Subtitle="{x:Static resources:Resource.SettingsPage_Theme_Description}" />
Expand Down
19 changes: 19 additions & 0 deletions LenovoLegionToolkit.WPF/Pages/SettingsPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ private async Task RefreshAsync()
_langCardControl.Visibility = Visibility.Collapsed;
}

_temperatureComboBox.SetItems(Enum.GetValues<TemperatureUnit>(), _settings.Store.TemperatureUnit, t => t switch
{
TemperatureUnit.C => Resource.Celsius,
TemperatureUnit.F => Resource.Fahrenheit,
_ => new ArgumentOutOfRangeException(nameof(t))
});
_themeComboBox.SetItems(Enum.GetValues<Theme>(), _settings.Store.Theme, t => t.GetDisplayName());

UpdateAccentColorPicker();
Expand Down Expand Up @@ -150,6 +156,7 @@ private async Task RefreshAsync()

await loadingTask;

_temperatureComboBox.Visibility = Visibility.Visible;
_themeComboBox.Visibility = Visibility.Visible;
_autorunComboBox.Visibility = Visibility.Visible;
_minimizeToTrayToggle.Visibility = Visibility.Visible;
Expand Down Expand Up @@ -181,6 +188,18 @@ private async void LangComboBox_SelectionChanged(object sender, SelectionChanged
App.Current.RestartMainWindow();
}

private void TemperatureComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (_isRefreshing)
return;

if (!_temperatureComboBox.TryGetSelectedItem(out TemperatureUnit temperatureUnit))
return;

_settings.Store.TemperatureUnit = temperatureUnit;
_settings.SynchronizeStore();
}

private void ThemeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (_isRefreshing)
Expand Down
18 changes: 18 additions & 0 deletions LenovoLegionToolkit.WPF/Resources/Resource.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions LenovoLegionToolkit.WPF/Resources/Resource.resx
Original file line number Diff line number Diff line change
Expand Up @@ -2173,4 +2173,10 @@ Supported formats are: {1}.</value>
<data name="SettingsPage_CLIAddToPath_Message" xml:space="preserve">
<value>Add CLI to user's PATH environment variable.</value>
</data>
<data name="SettingsPage_Temperature_Title" xml:space="preserve">
<value>Temperature</value>
</data>
<data name="SettingsPage_Temperature_Message" xml:space="preserve">
<value>Select units for temperature sensors.</value>
</data>
</root>

0 comments on commit 85f6fd3

Please sign in to comment.