103 lines
No EOL
2.8 KiB
C#
103 lines
No EOL
2.8 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Threading.Tasks;
|
|
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Markup.Xaml;
|
|
using Avalonia.Media.Imaging;
|
|
using Avalonia.Platform.Storage;
|
|
using PS2_Manager.Core;
|
|
|
|
namespace PS2_Manager;
|
|
|
|
public partial class AddGameWindow : Window
|
|
{
|
|
public string Gamepath { get; set; }
|
|
public Game newGame { get; set; }
|
|
public AddGameWindow(string filePath)
|
|
{
|
|
this.newGame = new Game(filePath);
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void RefreshPreview()
|
|
{
|
|
Console.Info("Refreshing AddGameWindow Preview");
|
|
IsoPathBox.Text = this.newGame.GamePath;
|
|
SerialBox.Text = this.newGame.GameID;
|
|
GameNameBox.Text = this.newGame.Name;
|
|
CoverImage.Source = this.newGame.ArtworkFront;
|
|
}
|
|
|
|
private void Control_OnLoaded(object? sender, RoutedEventArgs e)
|
|
{
|
|
RefreshPreview();
|
|
}
|
|
|
|
|
|
|
|
private void WindowDrag(object? sender, PointerPressedEventArgs e)
|
|
{
|
|
if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed)
|
|
{
|
|
BeginMoveDrag(e);
|
|
}
|
|
}
|
|
|
|
private void WindowClose(object? sender, PointerPressedEventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void InstallButton_OnClick(object? sender, RoutedEventArgs e)
|
|
{
|
|
InstallButton.IsEnabled = false;
|
|
GameNameBox.IsEnabled = false;
|
|
InstallButton.Content = "Installing...";
|
|
newGame.Install();
|
|
newGame.InstallProgress.ValueChanged += () =>
|
|
{
|
|
InstallationProgressBar.Value = newGame.InstallProgress.Value;
|
|
};
|
|
newGame.InstallationFinished += (o, args) =>
|
|
{
|
|
Console.WriteLine("Installation for " + newGame + " finished");
|
|
this.Close();
|
|
};
|
|
}
|
|
|
|
private void GameNameBox_OnTextChanged(object? sender, TextChangedEventArgs e)
|
|
{
|
|
this.newGame.Name = GameNameBox.Text ?? "";
|
|
}
|
|
|
|
private async void CoverImage_OnPointerPressed(object? sender, PointerPressedEventArgs e)
|
|
{
|
|
var topLevel = TopLevel.GetTopLevel(this);
|
|
|
|
var files = await topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
|
|
{
|
|
Title = "Select a Cover for the PS2 Game",
|
|
AllowMultiple = false,
|
|
FileTypeFilter = new []
|
|
{
|
|
Globals.FileDialogTypes.PS2Cover
|
|
}
|
|
});
|
|
|
|
if (files.Count >= 1)
|
|
{
|
|
Console.Info("Updating " + Artwork.Type.Front + " Artwork for " + this.newGame.GameID);
|
|
this.newGame.ArtworkFront = new Bitmap(files[0].Path.LocalPath);
|
|
RefreshPreview();
|
|
}
|
|
else
|
|
{
|
|
Console.Error("OpenFilePicker was called but Canceled or no Files selected");
|
|
}
|
|
}
|
|
} |