From 7c2e468288365dcf7bfb089a680d27f61aa68bc9 Mon Sep 17 00:00:00 2001 From: Rory& Date: Mon, 5 Aug 2024 06:50:57 +0200 Subject: List rooms --- ModerationClient/Views/ClientView.axaml | 50 ++++++++++++++++++------------ ModerationClient/Views/ClientView.axaml.cs | 6 ---- ModerationClient/Views/LoginView.axaml.cs | 19 ++---------- ModerationClient/Views/MainWindow.axaml.cs | 37 +++++++++++----------- 4 files changed, 52 insertions(+), 60 deletions(-) (limited to 'ModerationClient/Views') diff --git a/ModerationClient/Views/ClientView.axaml b/ModerationClient/Views/ClientView.axaml index 21ce5d9..0ed8021 100644 --- a/ModerationClient/Views/ClientView.axaml +++ b/ModerationClient/Views/ClientView.axaml @@ -7,24 +7,36 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="ModerationClient.Views.ClientView" x:DataType="viewModels:ClientViewModel"> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModerationClient/Views/ClientView.axaml.cs b/ModerationClient/Views/ClientView.axaml.cs index 1ca5a89..894e807 100644 --- a/ModerationClient/Views/ClientView.axaml.cs +++ b/ModerationClient/Views/ClientView.axaml.cs @@ -1,5 +1,3 @@ -using System; -using System.Linq; using Avalonia.Controls; using Avalonia.Markup.Xaml; @@ -26,8 +24,4 @@ public partial class ClientView : UserControl { // } // }; } - - private void InitializeComponent() { - AvaloniaXamlLoader.Load(this); - } } diff --git a/ModerationClient/Views/LoginView.axaml.cs b/ModerationClient/Views/LoginView.axaml.cs index 2e95e80..5e84ace 100644 --- a/ModerationClient/Views/LoginView.axaml.cs +++ b/ModerationClient/Views/LoginView.axaml.cs @@ -1,33 +1,18 @@ using System; -using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; -using Avalonia.VisualTree; -using Microsoft.Extensions.DependencyInjection; -using ModerationClient.Services; using ModerationClient.ViewModels; namespace ModerationClient.Views; public partial class LoginView : UserControl { - private MatrixAuthenticationService AuthService { get; set; } - public LoginView() { InitializeComponent(); } - - private void InitializeComponent() { - Console.WriteLine("LoginWindow loaded"); - - AvaloniaXamlLoader.Load(this); - Console.WriteLine("LoginWindow loaded 2"); - } // ReSharper disable once AsyncVoidMethod - private async void Login(object? sender, RoutedEventArgs e) { - Console.WriteLine("Login????"); - // await AuthService.LoginAsync(Username, Password); - await ((LoginViewModel)DataContext).LoginAsync(); + private async void Login(object? _, RoutedEventArgs __) { + await (DataContext as LoginViewModel ?? throw new InvalidCastException("LoginView did not receive LoginViewModel?")).LoginAsync(); } } diff --git a/ModerationClient/Views/MainWindow.axaml.cs b/ModerationClient/Views/MainWindow.axaml.cs index ccabd71..884e90c 100644 --- a/ModerationClient/Views/MainWindow.axaml.cs +++ b/ModerationClient/Views/MainWindow.axaml.cs @@ -1,10 +1,8 @@ using System; -using System.Threading; using Avalonia; using Avalonia.Controls; using Avalonia.Diagnostics; using Avalonia.Input; -using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using ModerationClient.Services; @@ -13,11 +11,10 @@ using ModerationClient.ViewModels; namespace ModerationClient.Views; public partial class MainWindow : Window { - //viewmodel - private MainWindowViewModel? _viewModel { get; set; } - public MainWindow(CommandLineConfiguration cfg, MainWindowViewModel dataContext, IHostApplicationLifetime appLifetime) { InitializeComponent(); + DataContext = dataContext; + _ = dataContext.AuthService.LoadProfileAsync(); Console.WriteLine("mainwnd"); #if DEBUG this.AttachDevTools(new DevToolsOptions() { @@ -30,19 +27,17 @@ public partial class MainWindow : Window { switch (args.Property.Name) { case nameof(Height): case nameof(Width): { - if (_viewModel is null) { + if (DataContext is not MainWindowViewModel viewModel) { Console.WriteLine("WARN: MainWindowViewModel is null, ignoring height/width change!"); return; } // Console.WriteLine("height/width changed"); - _viewModel.Scale = _viewModel.Scale; + viewModel.Scale = viewModel.Scale; break; } } }; - DataContext = _viewModel = dataContext; - _ = dataContext.AuthService.LoadProfileAsync(); dataContext.AuthService.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(MatrixAuthenticationService.IsLoggedIn)) { if (dataContext.AuthService.IsLoggedIn) { @@ -68,26 +63,32 @@ public partial class MainWindow : Window { protected override void OnKeyDown(KeyEventArgs e) => OnKeyDown(this, e); private void OnKeyDown(object? _, KeyEventArgs e) { - if (_viewModel is null) { - Console.WriteLine("WARN: MainWindowViewModel is null, ignoring key press!"); + if (DataContext is not MainWindowViewModel viewModel) { + Console.WriteLine($"WARN: DataContext is {DataContext?.GetType().Name ?? "null"}, ignoring key press!"); return; } // Console.WriteLine("MainWindow KeyDown: " + e.Key); if (e.Key == Key.Escape) { - _viewModel.Scale = 1.0f; + viewModel.Scale = 1.0f; } else if (e.Key == Key.F1) { - _viewModel.Scale -= 0.1f; - if (_viewModel.Scale < 0.1f) { - _viewModel.Scale = 0.1f; + viewModel.Scale -= 0.1f; + if (viewModel.Scale < 0.1f) { + viewModel.Scale = 0.1f; } } else if (e.Key == Key.F2) { - _viewModel.Scale += 0.1f; - if (_viewModel.Scale > 5.0f) { - _viewModel.Scale = 5.0f; + viewModel.Scale += 0.1f; + if (viewModel.Scale > 5.0f) { + viewModel.Scale = 5.0f; + } + } + else if (e.Key == Key.K && e.KeyModifiers == KeyModifiers.Control) { + if(viewModel.CurrentViewModel is ClientViewModel clientViewModel) { + Console.WriteLine("QuickSwitcher invoked"); } + else Console.WriteLine("WARN: CurrentViewModel is not ClientViewModel, ignoring Quick Switcher"); } } } \ No newline at end of file -- cgit 1.5.1