UI: Button to set emulator time based on system time in settings, under the time settings

This commit is contained in:
Evan Husted
2025-05-08 17:05:03 -05:00
committed by KeatonTheBot
parent 95ac0a7a51
commit d640f50203
12 changed files with 50 additions and 2 deletions
@@ -328,7 +328,11 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
//private DateTimeOffset _currentDate;
//private TimeSpan _currentTime;
public DateTimeOffset CurrentDate { get; set; }
public TimeSpan CurrentTime { get; set; }
internal AvaloniaList<TimeZone> TimeZones { get; set; }
@@ -452,6 +456,18 @@ namespace Ryujinx.Ava.UI.ViewModels
Dispatcher.UIThread.Post(() => OnPropertyChanged(nameof(PreferredGpuIndex)));
}
public void MatchSystemTime()
{
var dto = DateTimeOffset.Now;
CurrentDate = new DateTimeOffset(dto.Year, dto.Month, dto.Day, 0, 0, 0, dto.Offset);
CurrentTime = dto.TimeOfDay;
OnPropertyChanged(nameof(CurrentDate));
OnPropertyChanged(nameof(CurrentTime));
}
public async Task LoadTimeZones()
{
_timeZoneContentManager = new TimeZoneContentManager();
@@ -181,7 +181,20 @@
Width="350"
ToolTip.Tip="{locale:Locale TimeTooltip}" />
</StackPanel>
<StackPanel Margin="0,0,0,10"
<StackPanel
Margin="250,0,0,10"
Orientation="Horizontal">
<Button
VerticalAlignment="Center"
Click="MatchSystemTime_OnClick"
Background="{DynamicResource SystemAccentColor}"
Width="350"
ToolTip.Tip="{locale:Locale MatchTimeTooltip}">
<TextBlock Text="{locale:Locale SettingsTabSystemSystemTimeMatch}" />
</Button>
</StackPanel>
<Separator />
<StackPanel Margin="0,10,0,10"
Orientation="Horizontal">
<TextBlock
VerticalAlignment="Center"
@@ -1,5 +1,7 @@
using Avalonia.Controls;
using Avalonia.Interactivity;
using Ryujinx.Ava.UI.ViewModels;
using System;
using TimeZone = Ryujinx.Ava.UI.Models.TimeZone;
namespace Ryujinx.Ava.UI.Views.Settings
@@ -15,7 +17,7 @@ namespace Ryujinx.Ava.UI.Views.Settings
private void TimeZoneBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems != null && e.AddedItems.Count > 0)
if (e.AddedItems.Count > 0)
{
if (e.AddedItems[0] is TimeZone timeZone)
{
@@ -33,5 +35,7 @@ namespace Ryujinx.Ava.UI.Views.Settings
ViewModel.ValidateAndSetTimeZone(timeZone.Location);
}
}
private void MatchSystemTime_OnClick(object sender, RoutedEventArgs e) => ViewModel.MatchSystemTime();
}
}