Files
cursor-lang/CursorLang.Settings/Views/MainWindow.xaml.cs
T
alex 55ac8e6556 lightweight variant (#1)
Reviewed-on: #1
Co-authored-by: Aleksandr Neychev <alexnejchev73@gmail.com>
2026-08-12 13:37:30 +00:00

51 lines
1.6 KiB
C#

using System.ComponentModel;
using System.Diagnostics;
using System.Windows;
using System.Windows.Navigation;
using CursorLang.Settings.Services;
using CursorLang.Settings.ViewModels;
namespace CursorLang.Settings.Views;
/// <summary>
/// The settings window of the application.
/// </summary>
/// <remarks>
/// Both buttons in the title bar mean what they say now: the window used to hide into
/// the tray, because closing it would have thrown away the visual tree the background
/// half was still using. The background half is a separate process and no longer cares,
/// so closing closes and the process ends with it.
/// </remarks>
public partial class MainWindow : Window
{
public MainWindow(
SettingsViewModel viewModel,
IThemeService theme,
MainWindowPlacement placement)
{
InitializeComponent();
DataContext = viewModel;
theme.Register(this);
placement.Attach(this);
}
/// <summary>
/// Opens the release page in a browser. A link in WPF leads nowhere on its own:
/// where to hand it over is up to the application.
/// </summary>
private void OnReleaseLinkNavigate(object sender, RequestNavigateEventArgs e)
{
e.Handled = true;
try
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri) { UseShellExecute = true })?.Dispose();
}
catch (Exception exception) when (exception is Win32Exception or InvalidOperationException)
{
// There is no browser in the system — that does not get in the way of the
// update, which is downloaded by the button next to it anyway
}
}
}