Skip to content

Commit cebd23b

Browse files
committed
Feature: Use childwindow
1 parent a8a78a7 commit cebd23b

15 files changed

+144
-162
lines changed

Source/NETworkManager/App.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<!-- Styles -->
2727
<ResourceDictionary Source="/Resources/Styles/ButtonStyles.xaml" />
2828
<ResourceDictionary Source="/Resources/Styles/CheckBoxStyles.xaml" />
29+
<ResourceDictionary Source="/Resources/Styles/ChildWindowStyles.xaml" />
2930
<ResourceDictionary Source="/Resources/Styles/ContextMenuStyles.xaml" />
3031
<ResourceDictionary Source="/Resources/Styles/DataGridStyles.xaml" />
3132
<ResourceDictionary Source="/Resources/Styles/DropDownButtonStyles.xaml" />

Source/NETworkManager/ProfileDialogManager.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using MahApps.Metro.SimpleChildWindow;
2+
using NETworkManager.Controls;
23
using NETworkManager.Localization.Resources;
34
using NETworkManager.Models;
45
using NETworkManager.Models.Network;
@@ -9,11 +10,9 @@
910
using NETworkManager.Views;
1011
using System;
1112
using System.Collections.Generic;
12-
using System.Diagnostics;
1313
using System.Security;
1414
using System.Threading.Tasks;
1515
using System.Windows;
16-
using NETworkManager.Controls;
1716

1817
namespace NETworkManager;
1918

@@ -23,18 +22,13 @@ public static class ProfileDialogManager
2322

2423
private static ProfileInfo ParseProfileInfo(ProfileViewModel instance)
2524
{
26-
foreach (var tag in instance.TagsCollection)
27-
{
28-
Debug.WriteLine(tag);
29-
}
30-
3125
return new ProfileInfo
3226
{
3327
Name = instance.Name.Trim(),
3428
Host = instance.Host.Trim(),
3529
Description = instance.Description?.Trim(),
3630
Group = instance.Group.Trim(),
37-
TagsCollection = new ObservableSetCollection<string> (instance.TagsCollection),
31+
TagsCollection = new ObservableSetCollection<string>(instance.TagsCollection),
3832

3933
// Network Interface
4034
NetworkInterface_Enabled = instance.NetworkInterface_Enabled,
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow">
4+
<Style x:Key="DefaultChildWindow" TargetType="{x:Type simpleChildWindow:ChildWindow}">
5+
<Setter Property="ShowTitleBar" Value="True" />
6+
<Setter Property="ShowCloseButton" Value="True" />
7+
<Setter Property="CloseByEscape" Value="False" />
8+
<Setter Property="AllowMove" Value="True" />
9+
<Setter Property="TitleBarBackground" Value="Transparent" />
10+
<Setter Property="TitleBarNonActiveBackground" Value="Transparent" />
11+
<Setter Property="OverlayBrush" Value="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}" />
12+
<Setter Property="TitleForeground" Value="{DynamicResource ResourceKey=MahApps.Brushes.Gray3}" />
13+
<Setter Property="ChildWindowWidth" Value="450" />
14+
<Setter Property="ChildWindowMaxHeight" Value="500" />
15+
</Style>
16+
</ResourceDictionary>

Source/NETworkManager/Resources/Styles/ToolTipStyles.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<Setter Property="Background" Value="{DynamicResource ResourceKey=MahApps.Brushes.Window.Background}" />
99
</Style>
1010

11-
<Style TargetType="{x:Type TypeName=ToolTip}" BasedOn="{StaticResource ResourceKey=DefaultToolTip}" />
11+
<Style TargetType="{x:Type TypeName=ToolTip}" BasedOn="{StaticResource ResourceKey=DefaultToolTip}" />
1212

1313
<Style x:Key="HelpToolTip" TargetType="{x:Type TypeName=ToolTip}" BasedOn="{StaticResource ResourceKey=DefaultToolTip}">
1414
<Setter Property="Template">

Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Dragablz;
22
using MahApps.Metro.Controls.Dialogs;
3+
using MahApps.Metro.SimpleChildWindow;
34
using NETworkManager.Controls;
45
using NETworkManager.Localization.Resources;
56
using NETworkManager.Models;
@@ -517,16 +518,15 @@ private static void CloseItemAction(ItemActionCallbackArgs<TabablzControl> args)
517518
#region Methods
518519

519520
// Connect via Dialog
520-
private async Task Connect(string host = null)
521+
private Task Connect(string host = null)
521522
{
522-
var customDialog = new CustomDialog
523-
{
524-
Title = Strings.Connect
525-
};
523+
var childWindow = new RemoteDesktopConnectChildWindow(Application.Current.MainWindow);
526524

527-
var remoteDesktopConnectViewModel = new RemoteDesktopConnectViewModel(async instance =>
525+
var childWindowViewModel = new RemoteDesktopConnectViewModel(instance =>
528526
{
529-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
527+
childWindow.IsOpen = false;
528+
ConfigurationManager.Current.IsChildWindowOpen = false;
529+
530530
ConfigurationManager.OnDialogClose();
531531

532532
// Create new session info with default settings
@@ -560,22 +560,26 @@ private async Task Connect(string host = null)
560560
AddHostToHistory(instance.Host);
561561

562562
Connect(sessionInfo);
563-
}, async _ =>
563+
}, _ =>
564564
{
565-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
565+
childWindow.IsOpen = false;
566+
ConfigurationManager.Current.IsChildWindowOpen = false;
567+
566568
ConfigurationManager.OnDialogClose();
567569
})
568570
{
569571
Host = host
570572
};
571573

572-
customDialog.Content = new RemoteDesktopConnectDialog
573-
{
574-
DataContext = remoteDesktopConnectViewModel
575-
};
574+
childWindow.Title = Strings.Connect;
575+
576+
childWindow.DataContext = childWindowViewModel;
577+
578+
ConfigurationManager.Current.IsChildWindowOpen = true;
576579

577580
ConfigurationManager.OnDialogOpen();
578-
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
581+
582+
return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
579583
}
580584

581585
// Connect via Profile
@@ -589,20 +593,19 @@ private void ConnectProfile()
589593
}
590594

591595
// Connect via Profile with Credentials
592-
private async Task ConnectProfileAs()
596+
private Task ConnectProfileAs()
593597
{
594598
var profileInfo = SelectedProfile;
595599

596600
var sessionInfo = RemoteDesktop.CreateSessionInfo(profileInfo);
597601

598-
var customDialog = new CustomDialog
599-
{
600-
Title = Strings.ConnectAs
601-
};
602+
var childWindow = new RemoteDesktopConnectChildWindow(Application.Current.MainWindow);
602603

603-
var remoteDesktopConnectViewModel = new RemoteDesktopConnectViewModel(async instance =>
604+
var childWindowViewModel = new RemoteDesktopConnectViewModel(instance =>
604605
{
605-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
606+
childWindow.IsOpen = false;
607+
ConfigurationManager.Current.IsChildWindowOpen = false;
608+
606609
ConfigurationManager.OnDialogClose();
607610

608611
if (instance.UseCredentials)
@@ -617,9 +620,11 @@ private async Task ConnectProfileAs()
617620
sessionInfo.AdminSession = instance.AdminSession;
618621

619622
Connect(sessionInfo, instance.Name);
620-
}, async _ =>
623+
}, _ =>
621624
{
622-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
625+
childWindow.IsOpen = false;
626+
ConfigurationManager.Current.IsChildWindowOpen = false;
627+
623628
ConfigurationManager.OnDialogClose();
624629
},
625630
(
@@ -628,13 +633,15 @@ private async Task ConnectProfileAs()
628633
true
629634
));
630635

631-
customDialog.Content = new RemoteDesktopConnectDialog
632-
{
633-
DataContext = remoteDesktopConnectViewModel
634-
};
636+
childWindow.Title = Strings.ConnectAs;
637+
638+
childWindow.DataContext = childWindowViewModel;
639+
640+
ConfigurationManager.Current.IsChildWindowOpen = true;
635641

636642
ConfigurationManager.OnDialogOpen();
637-
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
643+
644+
return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
638645
}
639646

640647
private void Connect(RemoteDesktopSessionInfo sessionInfo, string header = null)

Source/NETworkManager/Views/CredentialsPasswordProfileFileChildWindow.xaml

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,9 @@
1010
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
1111
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
1212
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
13-
ChildWindowWidth="450"
14-
ChildWindowMaxHeight="500"
15-
ShowTitleBar="True"
16-
TitleBarBackground="Transparent"
17-
TitleBarNonActiveBackground="Transparent"
18-
ShowCloseButton="True"
1913
CloseButtonCommand="{Binding Path=CancelCommand}"
20-
AllowMove="True"
21-
TitleForeground="{DynamicResource ResourceKey=MahApps.Brushes.Gray3}"
22-
CloseByEscape="False"
23-
OverlayBrush="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}"
24-
Loaded="ChildWindow_OnLoaded"
14+
Style="{StaticResource DefaultChildWindow}"
15+
Loaded="ChildWindow_OnLoaded"
2516
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:CredentialsPasswordProfileFileViewModel}">
2617
<simpleChildWindow:ChildWindow.Resources>
2718
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />

Source/NETworkManager/Views/ExportChildWindow.xaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,8 @@
1212
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
1313
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
1414
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
15-
ChildWindowWidth="450"
16-
ChildWindowMaxHeight="500"
17-
ShowTitleBar="True"
18-
TitleBarBackground="Transparent"
19-
TitleBarNonActiveBackground="Transparent"
20-
ShowCloseButton="True"
2115
CloseButtonCommand="{Binding Path=CancelCommand}"
22-
AllowMove="True"
23-
TitleForeground="{DynamicResource ResourceKey=MahApps.Brushes.Gray3}"
24-
CloseByEscape="False"
25-
OverlayBrush="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}"
16+
Style="{StaticResource DefaultChildWindow}"
2617
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:ExportViewModel}">
2718
<simpleChildWindow:ChildWindow.Resources>
2819
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />

Source/NETworkManager/Views/HostsFileEditorEntryChildWindow.xaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,8 @@
1212
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
1313
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
1414
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
15-
ChildWindowWidth="450"
16-
ChildWindowMaxHeight="500"
17-
ShowTitleBar="True"
18-
TitleBarBackground="Transparent"
19-
TitleBarNonActiveBackground="Transparent"
20-
ShowCloseButton="True"
2115
CloseButtonCommand="{Binding Path=CancelCommand}"
22-
AllowMove="True"
23-
TitleForeground="{DynamicResource ResourceKey=MahApps.Brushes.Gray3}"
24-
CloseByEscape="False"
25-
OverlayBrush="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}"
16+
Style="{StaticResource DefaultChildWindow}"
2617
Loaded="ChildWindow_OnLoaded"
2718
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:HostsFileEditorEntryViewModel}">
2819
<simpleChildWindow:ChildWindow.Resources>

Source/NETworkManager/Views/OKCancelInfoMessageChildWindow.xaml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,8 @@
88
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
99
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
1010
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
11-
ChildWindowWidth="450"
12-
ChildWindowMaxHeight="500"
13-
ShowTitleBar="True"
14-
TitleBarBackground="Transparent"
15-
TitleBarNonActiveBackground="Transparent"
16-
ShowCloseButton="True"
17-
CloseButtonCommand="{Binding CancelCommand}"
18-
AllowMove="True"
19-
TitleForeground="{DynamicResource MahApps.Brushes.Gray3}"
20-
CloseByEscape="False"
21-
OverlayBrush="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}"
2211
Loaded="ChildWindow_Loaded"
12+
Style="{StaticResource DefaultChildWindow}"
2313
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:OKCancelInfoMessageViewModel}">
2414
<simpleChildWindow:ChildWindow.Resources>
2515
<converters:ChildWindowIconToRectangleStyleConverter x:Key="ChildWindowIconToRectangleStyleConverter" />

Source/NETworkManager/Views/OKMessageChildWindow.xaml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,9 @@
77
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
88
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
99
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
10-
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
11-
ChildWindowWidth="450"
12-
ChildWindowMaxHeight="500"
13-
ShowTitleBar="True"
14-
TitleBarBackground="Transparent"
15-
TitleBarNonActiveBackground="Transparent"
16-
AllowMove="True"
17-
TitleForeground="{DynamicResource MahApps.Brushes.Gray3}"
18-
CloseByEscape="False"
19-
OverlayBrush="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}"
10+
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
2011
Loaded="ChildWindow_Loaded"
12+
Style="{StaticResource DefaultChildWindow}"
2113
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:OKMessageViewModel}">
2214
<simpleChildWindow:ChildWindow.Resources>
2315
<converters:ChildWindowIconToRectangleStyleConverter x:Key="ChildWindowIconToRectangleStyleConverter" />

0 commit comments

Comments
 (0)