Skip to content

Commit 323aac7

Browse files
authored
Fix: Find dialog coordinator in parent (dragged out) window (#2661)
* Fix: Find dialog coordinator in parent window * Feature: Adjust design for RunCommand * Fix: ShowAddProfileDialog context * Fix: Dialog context in dragged out tab * Chore: Code cleanup * Chore: Code cleanup * Fix: Add missing CloseTab()
1 parent 95b368e commit 323aac7

35 files changed

Lines changed: 369 additions & 273 deletions

Source/NETworkManager.Localization/Resources/Strings.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/NETworkManager.Localization/Resources/Strings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3811,4 +3811,7 @@ Try again in a few seconds.</value>
38113811
<data name="CloseGroup" xml:space="preserve">
38123812
<value>Close group</value>
38133813
</data>
3814+
<data name="ToolTip_RunCommandWithHotKey" xml:space="preserve">
3815+
<value>Run command... (Ctrl+Shift+P)</value>
3816+
</data>
38143817
</root>

Source/NETworkManager.Models/Network/Connection.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,6 @@ private static List<ConnectionInfo> GetActiveTcpConnections()
125125
// Cache the result
126126
_remoteHostNames.Add(remoteAddress,
127127
!dnsResolverTask.Result.HasError ? dnsResolverTask.Result.Value : "-/-");
128-
129-
Debug.WriteLine("Cache: Added " + remoteAddress + " -> " +
130-
(!dnsResolverTask.Result.HasError ? dnsResolverTask.Result.Value : "-/-"));
131128
}
132129

133130
result.Add(new ConnectionInfo(

Source/NETworkManager/Controls/DragablzTabHostWindow.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
xmlns:application="clr-namespace:NETworkManager.Models;assembly=NETworkManager.Models"
1111
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
1212
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
13+
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
1314
mc:Ignorable="d"
1415
Style="{DynamicResource DefaultWindow}" MinWidth="800" Width="1024" Height="768" MinHeight="600"
1516
TitleAlignment="Left" Activated="MetroWindow_Activated"
17+
dialogs:DialogParticipation.Register="{Binding}"
1618
d:DataContext="{d:DesignInstance controls:DragablzTabHostWindow}">
1719
<mah:MetroWindow.WindowButtonCommands>
1820
<mah:WindowButtonCommands Template="{DynamicResource MahApps.Templates.WindowButtonCommands.Win10}" />

Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,6 @@ private void CloseItemAction(ItemActionCallbackArgs<TabablzControl> args)
135135
// Switch between application identifiers...
136136
switch (_applicationName)
137137
{
138-
case ApplicationName.None:
139-
break;
140138
case ApplicationName.IPScanner:
141139
((IPScannerView)((DragablzTabItem)args.DragablzItem.Content).View).CloseTab();
142140
break;
@@ -176,20 +174,10 @@ private void CloseItemAction(ItemActionCallbackArgs<TabablzControl> args)
176174
case ApplicationName.Whois:
177175
((WhoisView)((DragablzTabItem)args.DragablzItem.Content).View).CloseTab();
178176
break;
179-
case ApplicationName.Dashboard:
180-
case ApplicationName.NetworkInterface:
181-
case ApplicationName.WiFi:
182-
case ApplicationName.PingMonitor:
183-
case ApplicationName.DiscoveryProtocol:
184-
case ApplicationName.WakeOnLAN:
185-
case ApplicationName.SubnetCalculator:
186-
case ApplicationName.BitCalculator:
187-
case ApplicationName.Lookup:
188-
case ApplicationName.Connections:
189-
case ApplicationName.Listeners:
190-
case ApplicationName.ARPTable:
191-
default:
177+
case ApplicationName.IPGeolocation:
178+
((IPGeolocationView)((DragablzTabItem)args.DragablzItem.Content).View).CloseTab();
192179
break;
180+
193181
}
194182
}
195183

Source/NETworkManager/Controls/DragablzTabItem.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ public string Header
3535
}
3636

3737
public UserControl View { get; set; }
38+
3839
public Guid Id { get; set; }
3940
}

Source/NETworkManager/MainWindow.xaml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
xmlns:asf="clr-namespace:AirspaceFixer;assembly=AirspaceFixer"
1111
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
1212
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
13+
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
1314
xmlns:resources="clr-namespace:NETworkManager.Properties"
1415
xmlns:networkManager="clr-namespace:NETworkManager"
1516
xmlns:models="clr-namespace:NETworkManager.Models;assembly=NETworkManager.Models"
1617
mc:Ignorable="d"
1718
Style="{DynamicResource DefaultWindow}"
19+
dialogs:DialogParticipation.Register="{Binding}"
1820
MinWidth="800" Width="1024" Height="768" MinHeight="600"
1921
SaveWindowPosition="True" TitleAlignment="Left"
2022
ContentRendered="MetroMainWindow_ContentRendered" StateChanged="MetroWindowMain_StateChanged"
@@ -87,7 +89,22 @@
8789
</mah:MetroWindow.LeftWindowCommands>
8890
<mah:MetroWindow.RightWindowCommands>
8991
<mah:WindowCommands ShowSeparators="False">
92+
<Button Command="{Binding OpenRunCommand}"
93+
Visibility="{Binding Path=FlyoutRunCommandIsOpen, Converter={StaticResource ResourceKey=BooleanReverseToVisibilityCollapsedConverter}}"
94+
ToolTip="{x:Static localization:Strings.ToolTip_RunCommandWithHotKey}"
95+
Cursor="Hand"
96+
Focusable="False">
97+
<StackPanel Orientation="Horizontal">
98+
<Rectangle Width="20" Height="20"
99+
Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
100+
<Rectangle.OpacityMask>
101+
<VisualBrush Stretch="Uniform" Visual="{iconPacks:FontAwesome Kind=TerminalSolid}" />
102+
</Rectangle.OpacityMask>
103+
</Rectangle>
104+
</StackPanel>
105+
</Button>
90106
<!-- ToDo: CenterWindowCommands https://github.com/MahApps/MahApps.Metro/issues/4419 -->
107+
<!--
91108
<Button Command="{Binding Path=OpenRunCommand}"
92109
Cursor="Hand"
93110
Visibility="{Binding Path=FlyoutRunCommandIsOpen, Converter={StaticResource ResourceKey=BooleanReverseToVisibilityCollapsedConverter}}"
@@ -106,14 +123,16 @@
106123
HorizontalAlignment="Right"
107124
Fill="{DynamicResource ResourceKey=MahApps.Brushes.Gray8}">
108125
<Rectangle.OpacityMask>
109-
<VisualBrush Stretch="Uniform" Visual="{iconPacks:Material Kind=ChevronRight}" />
126+
<VisualBrush Stretch="Uniform" Visual="{iconPacks:FontAwesome Kind=TerminalSolid}" />
110127
</Rectangle.OpacityMask>
111128
</Rectangle>
129+
112130
<TextBlock Grid.Column="1" Grid.Row="0"
113131
Style="{StaticResource ResourceKey=InfoTextBlock}"
114132
Text="{x:Static Member=localization:Strings.Watermark_RunCommandWithHotKey}" />
115133
</Grid>
116134
</Button>
135+
-->
117136
<Button Command="{Binding RestartApplicationCommand}"
118137
Opacity="1"
119138
Visibility="{Binding IsRestartRequired, Converter={StaticResource BooleanToVisibilityCollapsedConverter}}"

Source/NETworkManager/ProfileDialogManager.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,8 @@ private static GroupInfo ParseGroupInfo(GroupViewModel instance)
301301
!string.Equals(instance.Group.Name, name, StringComparison.Ordinal))
302302
foreach (var profile in profiles)
303303
profile.Group = name;
304-
else
305-
Debug.WriteLine("Cannot update group in profiles");
304+
//else
305+
// Debug.WriteLine("Cannot update group in profiles");
306306
}
307307

308308
return new GroupInfo
@@ -468,7 +468,7 @@ private static GroupInfo ParseGroupInfo(GroupViewModel instance)
468468

469469
#region Dialog to add, edit, copy as and delete profile
470470

471-
public static Task ShowAddProfileDialog(IProfileManagerMinimal viewModel,
471+
public static Task ShowAddProfileDialog(object context, IProfileManagerMinimal viewModel,
472472
IDialogCoordinator dialogCoordinator, ProfileInfo profile = null, string group = null,
473473
ApplicationName applicationName = ApplicationName.None)
474474
{
@@ -480,13 +480,13 @@ public static Task ShowAddProfileDialog(IProfileManagerMinimal viewModel,
480480

481481
ProfileViewModel profileViewModel = new(async instance =>
482482
{
483-
await dialogCoordinator.HideMetroDialogAsync(viewModel, customDialog);
483+
await dialogCoordinator.HideMetroDialogAsync(context, customDialog);
484484
viewModel.OnProfileManagerDialogClose();
485485

486486
ProfileManager.AddProfile(ParseProfileInfo(instance));
487487
}, async _ =>
488488
{
489-
await dialogCoordinator.HideMetroDialogAsync(viewModel, customDialog);
489+
await dialogCoordinator.HideMetroDialogAsync(context, customDialog);
490490
viewModel.OnProfileManagerDialogClose();
491491
}, ProfileManager.GetGroupNames(), group, ProfileEditMode.Add, profile, applicationName);
492492

@@ -497,7 +497,7 @@ public static Task ShowAddProfileDialog(IProfileManagerMinimal viewModel,
497497

498498
viewModel.OnProfileManagerDialogOpen();
499499

500-
return dialogCoordinator.ShowMetroDialogAsync(viewModel, customDialog);
500+
return dialogCoordinator.ShowMetroDialogAsync(context, customDialog);
501501
}
502502

503503
public static Task ShowEditProfileDialog(IProfileManagerMinimal viewModel,

Source/NETworkManager/ViewModels/AWSSessionManagerHostViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ private void ConnectProfileExternalAction()
423423
private void AddProfileAction()
424424
{
425425
ProfileDialogManager
426-
.ShowAddProfileDialog(this, _dialogCoordinator, null, null, ApplicationName.AWSSessionManager)
426+
.ShowAddProfileDialog(this, this, _dialogCoordinator, null, null, ApplicationName.AWSSessionManager)
427427
.ConfigureAwait(false);
428428
}
429429

Source/NETworkManager/ViewModels/DNSLookupHostViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ private void LookupProfileAction()
234234

235235
private void AddProfileAction()
236236
{
237-
ProfileDialogManager.ShowAddProfileDialog(this, _dialogCoordinator, null, null, ApplicationName.DNSLookup)
237+
ProfileDialogManager.ShowAddProfileDialog(this,this, _dialogCoordinator, null, null, ApplicationName.DNSLookup)
238238
.ConfigureAwait(false);
239239
}
240240

0 commit comments

Comments
 (0)