forked from sim0n00ps/OF-DL
65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using System.Diagnostics;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Platform;
|
|
|
|
namespace OF_DL.Gui.Views;
|
|
|
|
public partial class AboutWindow : Window
|
|
{
|
|
private const string UnknownValue = "Unknown";
|
|
private const string UnknownToolVersion = "Not detected";
|
|
|
|
public string ProgramVersion { get; }
|
|
public string FfmpegVersion { get; }
|
|
public string FfprobeVersion { get; }
|
|
|
|
public string SourceCodeUrl { get; } = "https://git.ofdl.tools/sim0n00ps/OF-DL";
|
|
public string FfmpegLicenseUrl { get; } = "https://ffmpeg.org/legal.html";
|
|
public string FfprobeLicenseUrl { get; } = "https://ffmpeg.org/legal.html";
|
|
|
|
public AboutWindow()
|
|
: this(UnknownValue, UnknownToolVersion, UnknownToolVersion)
|
|
{
|
|
}
|
|
|
|
public AboutWindow(
|
|
string programVersion,
|
|
string ffmpegVersion,
|
|
string ffprobeVersion)
|
|
{
|
|
ProgramVersion = programVersion;
|
|
FfmpegVersion = ffmpegVersion;
|
|
FfprobeVersion = ffprobeVersion;
|
|
|
|
InitializeComponent();
|
|
Icon = new WindowIcon(AssetLoader.Open(new Uri("avares://OF DL.Gui/Assets/icon.ico")));
|
|
DataContext = this;
|
|
}
|
|
|
|
private async void OnOpenSourceCodeClick(object? sender, RoutedEventArgs e) =>
|
|
await OpenExternalUrlAsync(SourceCodeUrl);
|
|
|
|
private async void OnOpenFfmpegLicenseClick(object? sender, RoutedEventArgs e) =>
|
|
await OpenExternalUrlAsync(FfmpegLicenseUrl);
|
|
|
|
private async void OnOpenFfprobeLicenseClick(object? sender, RoutedEventArgs e) =>
|
|
await OpenExternalUrlAsync(FfprobeLicenseUrl);
|
|
|
|
private void OnCloseClick(object? sender, RoutedEventArgs e) => Close();
|
|
|
|
private async Task OpenExternalUrlAsync(string url)
|
|
{
|
|
try
|
|
{
|
|
ProcessStartInfo processStartInfo = new(url) { UseShellExecute = true };
|
|
|
|
Process.Start(processStartInfo);
|
|
}
|
|
catch
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
}
|
|
}
|