-
-
Notifications
You must be signed in to change notification settings - Fork 109
Expand file tree
/
Copy pathSettingsPage.xaml.cs
More file actions
61 lines (49 loc) · 2.82 KB
/
SettingsPage.xaml.cs
File metadata and controls
61 lines (49 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System.Windows.Forms;
using Window = System.Windows.Window;
namespace Reloaded.Mod.Launcher.Pages.BaseSubpages;
/// <summary>
/// Interaction logic for SettingsPage.xaml
/// </summary>
public partial class SettingsPage : ReloadedIIPage, IDisposable
{
public SettingsPageViewModel ViewModel { get; set; }
private bool _disposed;
public SettingsPage()
{
SwappedOut += Dispose;
InitializeComponent();
ViewModel = Lib.IoC.GetConstant<SettingsPageViewModel>();
Lib.IoC.Get<MainWindow>().Closing += OnMainWindowExit;
}
public void Dispose()
{
if (_disposed)
return;
_disposed = true;
OnLeavingPage();
Lib.IoC.Get<MainWindow>().Closing -= OnMainWindowExit;
}
private void OnMainWindowExit(object? sender, CancelEventArgs e) => Dispose();
private async void OnLeavingPage() => await ViewModel.SaveConfigAsync();
private void Documents_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => new OpenDocumentationCommand().Execute(null);
private async void LanguageChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) => await ViewModel.SaveNewLanguageAsync();
private async void ThemeChanged(object sender, SelectionChangedEventArgs e) => await ViewModel.SaveNewThemeAsync();
private void Discord_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => ProcessExtensions.OpenFileWithDefaultProgram("https://discord.gg/A8zNnS6");
private void Twitter_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => ProcessExtensions.OpenFileWithDefaultProgram("https://twitter.com/TheSewer56");
private void Donate_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => ProcessExtensions.OpenFileWithDefaultProgram("https://github.com/sponsors/Sewer56");
private void LogFiles_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => ViewModel.OpenLogFileLocation();
private void ConfigFile_PreviewMouseDown(object sender, MouseButtonEventArgs e) => ViewModel.OpenConfigFile();
private void Tutorial_Click(object sender, System.Windows.RoutedEventArgs e)
{
var firstLaunchWindow = new FirstLaunch();
firstLaunchWindow.Owner = Window.GetWindow(this);
firstLaunchWindow.ShowDialog();
}
private void ControllerConfig_Click(object sender, RoutedEventArgs e) => ControllerSupport.Controller.Configure(true);
private void ThemeDropdown_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
// TODO: Figure out why the fetch button disappears so I don't have to do this -zw
if (ViewModel.ThemeSelector?.Files[0] != XamlThemeSelector.FetchText)
ViewModel.ThemeSelector!.Files.Insert(0, XamlThemeSelector.FetchText);
}
}