diff --git a/app/Desktop/App.axaml b/app/Desktop/App.axaml index 5a4b1c1..8ecbbae 100644 --- a/app/Desktop/App.axaml +++ b/app/Desktop/App.axaml @@ -6,8 +6,8 @@ - - + + - - - - + @@ -165,15 +106,29 @@ - + 15,0 12 - - - + + + + + + + + + + + + + + + + - - + + + diff --git a/app/Desktop/App.axaml.cs b/app/Desktop/App.axaml.cs index 4416052..cd07501 100644 --- a/app/Desktop/App.axaml.cs +++ b/app/Desktop/App.axaml.cs @@ -1,3 +1,4 @@ +using System; using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; @@ -11,7 +12,7 @@ namespace DHT.Desktop { public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - desktop.MainWindow = new MainWindow(new Arguments(desktop.Args)); + desktop.MainWindow = new MainWindow(new Arguments(desktop.Args ?? Array.Empty())); } base.OnFrameworkInitializationCompleted(); diff --git a/app/Desktop/Desktop.csproj b/app/Desktop/Desktop.csproj index a494973..32a6ead 100644 --- a/app/Desktop/Desktop.csproj +++ b/app/Desktop/Desktop.csproj @@ -21,10 +21,13 @@ none - - - - + + + + + + + diff --git a/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml b/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml index df0dfd0..f90acf4 100644 --- a/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml +++ b/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml @@ -34,7 +34,7 @@ - + diff --git a/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml.cs b/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml.cs index 16dc6ae..3e3d5e0 100644 --- a/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml.cs +++ b/app/Desktop/Dialogs/CheckBox/CheckBoxDialog.axaml.cs @@ -1,22 +1,13 @@ using System.Diagnostics.CodeAnalysis; -using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; -using Avalonia.Markup.Xaml; using DHT.Desktop.Dialogs.Message; namespace DHT.Desktop.Dialogs.CheckBox { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class CheckBoxDialog : Window { + public sealed partial class CheckBoxDialog : Window { public CheckBoxDialog() { InitializeComponent(); - #if DEBUG - this.AttachDevTools(); - #endif - } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); } public void ClickOk(object? sender, RoutedEventArgs e) { diff --git a/app/Desktop/Dialogs/Message/MessageDialog.axaml.cs b/app/Desktop/Dialogs/Message/MessageDialog.axaml.cs index bb0b09a..6abbeb2 100644 --- a/app/Desktop/Dialogs/Message/MessageDialog.axaml.cs +++ b/app/Desktop/Dialogs/Message/MessageDialog.axaml.cs @@ -1,21 +1,12 @@ using System.Diagnostics.CodeAnalysis; -using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Dialogs.Message { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class MessageDialog : Window { + public sealed partial class MessageDialog : Window { public MessageDialog() { InitializeComponent(); - #if DEBUG - this.AttachDevTools(); - #endif - } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); } public void ClickOk(object? sender, RoutedEventArgs e) { diff --git a/app/Desktop/Dialogs/Progress/ProgressDialog.axaml b/app/Desktop/Dialogs/Progress/ProgressDialog.axaml index 495001f..8b4dc54 100644 --- a/app/Desktop/Dialogs/Progress/ProgressDialog.axaml +++ b/app/Desktop/Dialogs/Progress/ProgressDialog.axaml @@ -7,7 +7,7 @@ x:Class="DHT.Desktop.Dialogs.Progress.ProgressDialog" Title="{Binding Title}" Icon="avares://DiscordHistoryTracker/Resources/icon.ico" - Opened="Loaded" + Opened="OnOpened" Closing="OnClosing" Width="500" SizeToContent="Height" CanResize="False" WindowStartupLocation="CenterOwner"> diff --git a/app/Desktop/Dialogs/Progress/ProgressDialog.axaml.cs b/app/Desktop/Dialogs/Progress/ProgressDialog.axaml.cs index f3e2c00..f060b34 100644 --- a/app/Desktop/Dialogs/Progress/ProgressDialog.axaml.cs +++ b/app/Desktop/Dialogs/Progress/ProgressDialog.axaml.cs @@ -1,37 +1,27 @@ using System; -using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; -using Avalonia; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Dialogs.Progress { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class ProgressDialog : Window { + public sealed partial class ProgressDialog : Window { private bool isFinished = false; public ProgressDialog() { InitializeComponent(); - #if DEBUG - this.AttachDevTools(); - #endif } - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } - - public void OnClosing(object? sender, CancelEventArgs e) { - e.Cancel = !isFinished; - } - - public void Loaded(object? sender, EventArgs e) { + public void OnOpened(object? sender, EventArgs e) { if (DataContext is ProgressDialogModel model) { Task.Run(model.StartTask).ContinueWith(OnFinished, TaskScheduler.FromCurrentSynchronizationContext()); } } + public void OnClosing(object? sender, WindowClosingEventArgs e) { + e.Cancel = !isFinished; + } + private void OnFinished(Task task) { isFinished = true; Close(); diff --git a/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml b/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml index 31a28b2..dcc3359 100644 --- a/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml +++ b/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml @@ -31,7 +31,7 @@ - + diff --git a/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml.cs b/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml.cs index 2802160..624d1ba 100644 --- a/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml.cs +++ b/app/Desktop/Dialogs/TextBox/TextBoxDialog.axaml.cs @@ -1,22 +1,13 @@ using System.Diagnostics.CodeAnalysis; -using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; -using Avalonia.Markup.Xaml; using DHT.Desktop.Dialogs.Message; namespace DHT.Desktop.Dialogs.TextBox { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class TextBoxDialog : Window { + public sealed partial class TextBoxDialog : Window { public TextBoxDialog() { InitializeComponent(); - #if DEBUG - this.AttachDevTools(); - #endif - } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); } public void ClickOk(object? sender, RoutedEventArgs e) { diff --git a/app/Desktop/Main/AboutWindow.axaml.cs b/app/Desktop/Main/AboutWindow.axaml.cs index 02d9b62..d1f339e 100644 --- a/app/Desktop/Main/AboutWindow.axaml.cs +++ b/app/Desktop/Main/AboutWindow.axaml.cs @@ -1,20 +1,11 @@ using System.Diagnostics.CodeAnalysis; -using Avalonia; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class AboutWindow : Window { + public sealed partial class AboutWindow : Window { public AboutWindow() { InitializeComponent(); - #if DEBUG - this.AttachDevTools(); - #endif - } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); } } } diff --git a/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml b/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml index decc66f..cc1a891 100644 --- a/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml +++ b/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml @@ -36,7 +36,7 @@ Limit Size - + diff --git a/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml.cs b/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml.cs index 2851965..653fc13 100644 --- a/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml.cs +++ b/app/Desktop/Main/Controls/AttachmentFilterPanel.axaml.cs @@ -1,17 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Controls { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class AttachmentFilterPanel : UserControl { + public sealed partial class AttachmentFilterPanel : UserControl { public AttachmentFilterPanel() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } - diff --git a/app/Desktop/Main/Controls/MessageFilterPanel.axaml.cs b/app/Desktop/Main/Controls/MessageFilterPanel.axaml.cs index 396c7f8..ccf107e 100644 --- a/app/Desktop/Main/Controls/MessageFilterPanel.axaml.cs +++ b/app/Desktop/Main/Controls/MessageFilterPanel.axaml.cs @@ -1,20 +1,12 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Controls { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class MessageFilterPanel : UserControl { - private CalendarDatePicker StartDatePicker => this.FindControl("StartDatePicker"); - private CalendarDatePicker EndDatePicker => this.FindControl("EndDatePicker"); - + public sealed partial class MessageFilterPanel : UserControl { public MessageFilterPanel() { InitializeComponent(); - } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - + var culture = Program.Culture; foreach (var picker in new CalendarDatePicker[] { StartDatePicker, EndDatePicker }) { picker.FirstDayOfWeek = culture.DateTimeFormat.FirstDayOfWeek; diff --git a/app/Desktop/Main/Controls/ServerConfigurationPanel.axaml.cs b/app/Desktop/Main/Controls/ServerConfigurationPanel.axaml.cs index cac5153..9b97821 100644 --- a/app/Desktop/Main/Controls/ServerConfigurationPanel.axaml.cs +++ b/app/Desktop/Main/Controls/ServerConfigurationPanel.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Controls { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class ServerConfigurationPanel : UserControl { + public sealed partial class ServerConfigurationPanel : UserControl { public ServerConfigurationPanel() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/Controls/StatusBar.axaml.cs b/app/Desktop/Main/Controls/StatusBar.axaml.cs index de9d4d7..9107f21 100644 --- a/app/Desktop/Main/Controls/StatusBar.axaml.cs +++ b/app/Desktop/Main/Controls/StatusBar.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Controls { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class StatusBar : UserControl { + public sealed partial class StatusBar : UserControl { public StatusBar() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/MainWindow.axaml.cs b/app/Desktop/Main/MainWindow.axaml.cs index 4d686db..5db0703 100644 --- a/app/Desktop/Main/MainWindow.axaml.cs +++ b/app/Desktop/Main/MainWindow.axaml.cs @@ -1,31 +1,22 @@ using System; using System.Diagnostics.CodeAnalysis; using System.IO; -using Avalonia; using Avalonia.Controls; -using Avalonia.Markup.Xaml; using DHT.Desktop.Main.Pages; using JetBrains.Annotations; namespace DHT.Desktop.Main { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class MainWindow : Window { + public sealed partial class MainWindow : Window { [UsedImplicitly] public MainWindow() { - InitializeComponent(Arguments.Empty); + InitializeComponent(); + DataContext = new MainWindowModel(this, Arguments.Empty); } internal MainWindow(Arguments args) { - InitializeComponent(args); - } - - private void InitializeComponent(Arguments args) { - AvaloniaXamlLoader.Load(this); + InitializeComponent(); DataContext = new MainWindowModel(this, args); - - #if DEBUG - this.AttachDevTools(); - #endif } public void OnClosed(object? sender, EventArgs e) { diff --git a/app/Desktop/Main/Pages/AdvancedPage.axaml.cs b/app/Desktop/Main/Pages/AdvancedPage.axaml.cs index 0fc7792..96bf149 100644 --- a/app/Desktop/Main/Pages/AdvancedPage.axaml.cs +++ b/app/Desktop/Main/Pages/AdvancedPage.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Pages { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class AdvancedPage : UserControl { + public sealed partial class AdvancedPage : UserControl { public AdvancedPage() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/Pages/AttachmentsPage.axaml b/app/Desktop/Main/Pages/AttachmentsPage.axaml index 3a7a3b7..a93f568 100644 --- a/app/Desktop/Main/Pages/AttachmentsPage.axaml +++ b/app/Desktop/Main/Pages/AttachmentsPage.axaml @@ -38,7 +38,7 @@ - + diff --git a/app/Desktop/Main/Pages/AttachmentsPage.axaml.cs b/app/Desktop/Main/Pages/AttachmentsPage.axaml.cs index 0801473..f4d70ed 100644 --- a/app/Desktop/Main/Pages/AttachmentsPage.axaml.cs +++ b/app/Desktop/Main/Pages/AttachmentsPage.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Pages { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class AttachmentsPage : UserControl { + public sealed partial class AttachmentsPage : UserControl { public AttachmentsPage() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/Pages/DatabasePage.axaml.cs b/app/Desktop/Main/Pages/DatabasePage.axaml.cs index 96bd9b7..e94ddc1 100644 --- a/app/Desktop/Main/Pages/DatabasePage.axaml.cs +++ b/app/Desktop/Main/Pages/DatabasePage.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Pages { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class DatabasePage : UserControl { + public sealed partial class DatabasePage : UserControl { public DatabasePage() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/Pages/DebugPage.axaml.cs b/app/Desktop/Main/Pages/DebugPage.axaml.cs index ae3e253..4d283e9 100644 --- a/app/Desktop/Main/Pages/DebugPage.axaml.cs +++ b/app/Desktop/Main/Pages/DebugPage.axaml.cs @@ -1,16 +1,11 @@ using System.Diagnostics.CodeAnalysis; using Avalonia.Controls; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Pages { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class DebugPage : UserControl { + public sealed partial class DebugPage : UserControl { public DebugPage() { InitializeComponent(); } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/app/Desktop/Main/Pages/TrackingPage.axaml.cs b/app/Desktop/Main/Pages/TrackingPage.axaml.cs index e93de88..3db465f 100644 --- a/app/Desktop/Main/Pages/TrackingPage.axaml.cs +++ b/app/Desktop/Main/Pages/TrackingPage.axaml.cs @@ -3,33 +3,27 @@ using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Interactivity; -using Avalonia.Markup.Xaml; namespace DHT.Desktop.Main.Pages { [SuppressMessage("ReSharper", "MemberCanBeInternal")] - public sealed class TrackingPage : UserControl { + public sealed partial class TrackingPage : UserControl { private bool isCopyingScript; public TrackingPage() { InitializeComponent(); } - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } - public async void CopyTrackingScriptButton_OnClick(object? sender, RoutedEventArgs e) { if (DataContext is TrackingPageModel model) { - var button = this.FindControl