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