Skip to content

Commit a009463

Browse files
committed
Feature: More dialogs
1 parent 5a48bb6 commit a009463

9 files changed

+70
-57
lines changed

Source/NETworkManager/ViewModels/HostsFileEditorViewModel.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using log4net;
22
using MahApps.Metro.Controls;
3-
using MahApps.Metro.Controls.Dialogs;
43
using MahApps.Metro.SimpleChildWindow;
54
using NETworkManager.Localization.Resources;
65
using NETworkManager.Models.Export;

Source/NETworkManager/ViewModels/TigerVNCHostViewModel.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using Dragablz;
2-
using MahApps.Metro.Controls.Dialogs;
2+
using MahApps.Metro.SimpleChildWindow;
33
using NETworkManager.Controls;
44
using NETworkManager.Localization.Resources;
55
using NETworkManager.Models;
@@ -28,8 +28,6 @@ namespace NETworkManager.ViewModels;
2828
public class TigerVNCHostViewModel : ViewModelBase, IProfileManager
2929
{
3030
#region Variables
31-
32-
private readonly IDialogCoordinator _dialogCoordinator;
3331
private readonly DispatcherTimer _searchDispatcherTimer = new();
3432
private bool _searchDisabled;
3533

@@ -276,12 +274,10 @@ public GridLength ProfileWidth
276274

277275
#region Constructor, load settings
278276

279-
public TigerVNCHostViewModel(IDialogCoordinator instance)
277+
public TigerVNCHostViewModel()
280278
{
281279
_isLoading = true;
282280

283-
_dialogCoordinator = instance;
284-
285281
CheckSettings();
286282

287283
InterTabClient = new DragablzInterTabClient(ApplicationName.TigerVNC);
@@ -486,16 +482,15 @@ private void CheckSettings()
486482
File.Exists(SettingsManager.Current.TigerVNC_ApplicationFilePath);
487483
}
488484

489-
private async Task Connect(string host = null)
485+
private Task Connect(string host = null)
490486
{
491-
var customDialog = new CustomDialog
492-
{
493-
Title = Strings.Connect
494-
};
487+
var childWindow = new TigerVNCConnectChildWindow();
495488

496-
var connectViewModel = new TigerVNCConnectViewModel(async instance =>
489+
var childWindowViewModel = new TigerVNCConnectViewModel(async instance =>
497490
{
498-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
491+
childWindow.IsOpen = false;
492+
ConfigurationManager.Current.IsChildWindowOpen = false;
493+
499494
ConfigurationManager.OnDialogClose();
500495

501496
// Create profile info
@@ -515,17 +510,22 @@ private async Task Connect(string host = null)
515510
Connect(sessionInfo);
516511
}, async _ =>
517512
{
518-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
513+
childWindow.IsOpen = false;
514+
ConfigurationManager.Current.IsChildWindowOpen = false;
515+
519516
ConfigurationManager.OnDialogClose();
520517
}, host);
521518

522-
customDialog.Content = new TigerVNCConnectDialog
523-
{
524-
DataContext = connectViewModel
525-
};
519+
520+
childWindow.Title = Strings.Connect;
521+
522+
childWindow.DataContext = childWindowViewModel;
523+
524+
ConfigurationManager.Current.IsChildWindowOpen = true;
526525

527526
ConfigurationManager.OnDialogOpen();
528-
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
527+
528+
return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
529529
}
530530

531531
private void ConnectProfile()

Source/NETworkManager/Views/PowerShellConnectChildWindow.xaml.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ private void ChildWindow_OnLoaded(object sender, RoutedEventArgs e)
1515
{
1616
Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
1717
{
18-
ComboBoxHost.Focus();
18+
if (ComboBoxHost.Visibility == Visibility.Visible)
19+
ComboBoxHost.Focus();
20+
else
21+
TextBoxCommand.Focus();
1922
}));
2023
}
2124
}

Source/NETworkManager/Views/TigerVNCConnectDialog.xaml renamed to Source/NETworkManager/Views/TigerVNCConnectChildWindow.xaml

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,26 @@
1-
<UserControl x:Class="NETworkManager.Views.TigerVNCConnectDialog"
1+
<simpleChildWindow:ChildWindow x:Class="NETworkManager.Views.TigerVNCConnectChildWindow"
22
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
33
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6+
xmlns:networkManager="clr-namespace:NETworkManager"
7+
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
68
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
9+
xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
710
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
11+
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
812
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
913
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
10-
mc:Ignorable="d" Loaded="UserControl_Loaded"
11-
d:DataContext="{d:DesignInstance viewModels:TigerVNCConnectViewModel}">
12-
<UserControl.Resources>
13-
</UserControl.Resources>
14-
<Grid Margin="0,20">
14+
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
15+
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
16+
CloseButtonCommand="{Binding Path=CancelCommand}"
17+
Style="{StaticResource DefaultChildWindow}"
18+
Loaded="ChildWindow_OnLoaded"
19+
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:TigerVNCConnectViewModel}">
20+
<simpleChildWindow:ChildWindow.Resources>
21+
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />
22+
</simpleChildWindow:ChildWindow.Resources>
23+
<Grid Margin="10">
1524
<Grid.RowDefinitions>
1625
<RowDefinition Height="Auto" />
1726
<RowDefinition Height="Auto" />
@@ -35,8 +44,8 @@
3544
</Grid.RowDefinitions>
3645
<TextBlock Grid.Column="0" Grid.Row="0" Text="{x:Static localization:Strings.Host}" />
3746
<ComboBox x:Name="ComboBoxHost" Grid.Column="2" Grid.Row="0" ItemsSource="{Binding HostHistoryView}"
38-
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleHostnameOrIPAddress}"
39-
Style="{StaticResource EditableComboBox}">
47+
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleHostnameOrIPAddress}"
48+
Style="{StaticResource EditableComboBox}">
4049
<ComboBox.Text>
4150
<Binding Path="Host" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
4251
<Binding.ValidationRules>
@@ -48,8 +57,8 @@
4857
</ComboBox>
4958
<TextBlock Grid.Column="0" Grid.Row="2" Text="{x:Static localization:Strings.Port}" />
5059
<ComboBox x:Name="ComboBoxPort" Grid.Column="2" Grid.Row="2" ItemsSource="{Binding PortHistoryView}"
51-
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExamplePort5900}"
52-
Style="{StaticResource EditableComboBox}">
60+
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExamplePort5900}"
61+
Style="{StaticResource EditableComboBox}">
5362
<ComboBox.Text>
5463
<Binding Path="Port" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
5564
<Binding.ValidationRules>
@@ -62,17 +71,17 @@
6271
</Grid>
6372
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right">
6473
<Button Content="{x:Static localization:Strings.Connect}" Command="{Binding ConnectCommand}"
65-
IsDefault="True" Margin="0,0,10,0">
74+
IsDefault="True" Margin="0,0,10,0">
6675
<Button.Style>
6776
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource HighlightedButton}">
6877
<Setter Property="IsEnabled" Value="False" />
6978
<Style.Triggers>
7079
<MultiDataTrigger>
7180
<MultiDataTrigger.Conditions>
7281
<Condition Binding="{Binding Path=(Validation.HasError), ElementName=ComboBoxHost}"
73-
Value="False" />
82+
Value="False" />
7483
<Condition Binding="{Binding Path=(Validation.HasError), ElementName=ComboBoxPort}"
75-
Value="False" />
84+
Value="False" />
7685
</MultiDataTrigger.Conditions>
7786
<MultiDataTrigger.Setters>
7887
<Setter Property="IsEnabled" Value="True" />
@@ -83,7 +92,7 @@
8392
</Button.Style>
8493
</Button>
8594
<Button Content="{x:Static localization:Strings.Cancel}" Command="{Binding CancelCommand}" IsCancel="True"
86-
Style="{StaticResource DefaultButton}" />
95+
Style="{StaticResource DefaultButton}" />
8796
</StackPanel>
8897
</Grid>
89-
</UserControl>
98+
</simpleChildWindow:ChildWindow>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Windows;
3+
using System.Windows.Threading;
4+
5+
namespace NETworkManager.Views;
6+
7+
public partial class TigerVNCConnectChildWindow
8+
{
9+
public TigerVNCConnectChildWindow()
10+
{
11+
InitializeComponent();
12+
}
13+
14+
private void ChildWindow_OnLoaded(object sender, RoutedEventArgs e)
15+
{
16+
Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
17+
{
18+
ComboBoxHost.Focus();
19+
}));
20+
}
21+
}

Source/NETworkManager/Views/TigerVNCConnectDialog.xaml.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

Source/NETworkManager/Views/TigerVNCHostView.xaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
88
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
99
xmlns:controls="clr-namespace:NETworkManager.Controls;assembly=NETworkManager.Controls"
10-
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
1110
xmlns:dockablz="clr-namespace:Dragablz.Dockablz;assembly=Dragablz"
1211
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
1312
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
@@ -17,7 +16,6 @@
1716
xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
1817
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
1918
xmlns:networkManager="clr-namespace:NETworkManager"
20-
dialogs:DialogParticipation.Register="{Binding}"
2119
Loaded="UserControl_Loaded"
2220
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:TigerVNCHostViewModel}">
2321
<UserControl.Resources>

Source/NETworkManager/Views/TigerVNCHostView.xaml.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@
22
using System.Windows;
33
using System.Windows.Controls;
44
using System.Windows.Input;
5-
using MahApps.Metro.Controls.Dialogs;
65
using NETworkManager.ViewModels;
76

87
namespace NETworkManager.Views;
98

109
public partial class TigerVNCHostView
1110
{
12-
private readonly TigerVNCHostViewModel _viewModel = new(DialogCoordinator.Instance);
11+
private readonly TigerVNCHostViewModel _viewModel = new();
1312

1413
private bool _loaded;
1514

16-
1715
public TigerVNCHostView()
1816
{
1917
InitializeComponent();

Source/NETworkManager/Views/WebConsoleConnectChildWindow.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<RowDefinition Height="Auto" />
3535
</Grid.RowDefinitions>
3636
<TextBlock Grid.Column="0" Grid.Row="0" Text="{x:Static localization:Strings.URL}" />
37+
3738
<ComboBox x:Name="ComboBoxUrl"
3839
Grid.Column="2" Grid.Row="0"
3940
ItemsSource="{Binding UrlHistoryView}"

0 commit comments

Comments
 (0)