Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<Setter Property="TitleBarNonActiveBackground" Value="Transparent" />
<Setter Property="OverlayBrush" Value="{DynamicResource ResourceKey=MahApps.Brushes.Gray.SemiTransparent}" />
<Setter Property="TitleForeground" Value="{DynamicResource ResourceKey=MahApps.Brushes.Gray3}" />
<Setter Property="ChildWindowWidth" Value="450" />
<Setter Property="ChildWindowWidth" Value="500" />
<Setter Property="ChildWindowMaxHeight" Value="500" />
</Style>
</ResourceDictionary>
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class PowerShellConnectViewModel : ViewModelBase

private bool _enableRemoteConsole;

private List<ExecutionPolicy> _executionPolicies = new();
private List<ExecutionPolicy> _executionPolicies = [];

private ExecutionPolicy _executionPolicy;

Expand Down
33 changes: 18 additions & 15 deletions Source/NETworkManager/ViewModels/PowerShellHostViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Dragablz;
using log4net;
using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
Expand Down Expand Up @@ -579,16 +580,15 @@ private void TryFindExecutable()
Log.Warn("Install PowerShell or configure the path in the settings.");
}

private async Task Connect(string host = null)
private Task Connect(string host = null)
{
var customDialog = new CustomDialog
{
Title = Strings.Connect
};
var childWindow = new PowerShellConnectChildWindow();

var connectViewModel = new PowerShellConnectViewModel(async instance =>
var childWindowViewModel = new PowerShellConnectViewModel(instance =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();

// Create profile info
Expand All @@ -606,21 +606,24 @@ private async Task Connect(string host = null)
// Otherwise, in some cases, incorrect values are taken over.
AddHostToHistory(instance.Host);

// Connect
Connect(sessionInfo);
}, async _ =>
}, _ =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();
}, host);

customDialog.Content = new PowerShellConnectDialog
{
DataContext = connectViewModel
};
childWindow.Title = Strings.Connect;

childWindow.DataContext = childWindowViewModel;

ConfigurationManager.Current.IsChildWindowOpen = true;

ConfigurationManager.OnDialogOpen();
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);

return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
}

private void ConnectProfile()
Expand Down
46 changes: 25 additions & 21 deletions Source/NETworkManager/ViewModels/PuTTYHostViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Dragablz;
using log4net;
using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
Expand Down Expand Up @@ -239,7 +240,7 @@ public bool IsProfileFilterSet
OnPropertyChanged();
}
}

private readonly GroupExpanderStateStore _groupExpanderStateStore = new();
public GroupExpanderStateStore GroupExpanderStateStore => _groupExpanderStateStore;

Expand Down Expand Up @@ -504,7 +505,7 @@ public ICommand TextBoxSearchLostFocusCommand
private void OpenProfileFilterAction()
{
ConfigurationManager.Current.IsProfileFilterPopupOpen = true;

ProfileFilterIsOpen = true;
}

Expand All @@ -524,7 +525,7 @@ private void ClearProfileFilterAction()
_searchDisabled = true;
Search = string.Empty;
_searchDisabled = false;

foreach (var tag in ProfileFilterTags)
tag.IsSelected = false;

Expand All @@ -547,7 +548,7 @@ private void CollapseAllProfileGroupsAction()
{
SetIsExpandedForAllProfileGroups(false);
}

public ICommand OpenSettingsCommand => new RelayCommand(_ => OpenSettingsAction());

private static void OpenSettingsAction()
Expand Down Expand Up @@ -588,16 +589,15 @@ private void TryFindExecutable()
Log.Warn("Install PuTTY or configure the path in the settings.");
}

private async Task Connect(string host = null)
private Task Connect(string host = null)
{
var customDialog = new CustomDialog
{
Title = Strings.Connect
};
var childWindow = new PuTTYConnectChildWindow();

var connectViewModel = new PuTTYConnectViewModel(async instance =>
var childWindowViewModel = new PuTTYConnectViewModel(instance =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();

// Create profile info
Expand Down Expand Up @@ -630,19 +630,23 @@ private async Task Connect(string host = null)
AddProfileToHistory(instance.Profile);

Connect(sessionInfo);
}, async _ =>
}, _ =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();
}, host);

customDialog.Content = new PuTTYConnectDialog
{
DataContext = connectViewModel
};
childWindow.Title = Strings.Connect;

childWindow.DataContext = childWindowViewModel;

ConfigurationManager.Current.IsChildWindowOpen = true;

ConfigurationManager.OnDialogOpen();
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);

return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
}

private void ConnectProfile()
Expand All @@ -660,7 +664,7 @@ private void ConnectProfileExternal()
ProcessStartInfo info = new()
{
FileName = SettingsManager.Current.PuTTY_ApplicationFilePath,
Arguments = Models.PuTTY.PuTTY.BuildCommandLine(sessionInfo)
Arguments = PuTTY.BuildCommandLine(sessionInfo)
};

Process.Start(info);
Expand Down Expand Up @@ -761,7 +765,7 @@ private void SetIsExpandedForAllProfileGroups(bool isExpanded)
foreach (var group in Profiles.Groups.Cast<CollectionViewGroup>())
GroupExpanderStateStore[group.Name.ToString()] = isExpanded;
}

private void ResizeProfile(bool dueToChangedSize)
{
_canProfileWidthChange = false;
Expand Down Expand Up @@ -907,7 +911,7 @@ public void OnProfileFilterClosed()
{
ConfigurationManager.Current.IsProfileFilterPopupOpen = false;
}

public void OnProfileManagerDialogOpen()
{
ConfigurationManager.OnDialogOpen();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ private static void CloseItemAction(ItemActionCallbackArgs<TabablzControl> args)
// Connect via Dialog
private Task Connect(string host = null)
{
var childWindow = new RemoteDesktopConnectChildWindow(Application.Current.MainWindow);
var childWindow = new RemoteDesktopConnectChildWindow();

var childWindowViewModel = new RemoteDesktopConnectViewModel(instance =>
{
Expand Down Expand Up @@ -606,7 +606,7 @@ private Task ConnectProfileAs()

var sessionInfo = RemoteDesktop.CreateSessionInfo(profileInfo);

var childWindow = new RemoteDesktopConnectChildWindow(Application.Current.MainWindow);
var childWindow = new RemoteDesktopConnectChildWindow();

var childWindowViewModel = new RemoteDesktopConnectViewModel(instance =>
{
Expand Down
32 changes: 18 additions & 14 deletions Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Dragablz;
using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using Microsoft.Web.WebView2.Core;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
Expand Down Expand Up @@ -485,16 +486,15 @@ private static void OpenWebsiteAction(object url)

#region Methods

private async Task Connect()
private Task Connect()
{
var customDialog = new CustomDialog
{
Title = Strings.Connect
};
var childWindow = new WebConsoleConnectChildWindow();

var connectViewModel = new WebConsoleConnectViewModel(async instance =>
var childWindowViewModel = new WebConsoleConnectViewModel(instance =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();

// Create profile info
Expand All @@ -509,19 +509,23 @@ private async Task Connect()
AddUrlToHistory(instance.Url);

Connect(info);
}, async _ =>
}, _ =>
{
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;

ConfigurationManager.OnDialogClose();
});

customDialog.Content = new WebConsoleConnectDialog
{
DataContext = connectViewModel
};
childWindow.Title = Strings.Connect;

childWindow.DataContext = childWindowViewModel;

ConfigurationManager.Current.IsChildWindowOpen = true;

ConfigurationManager.OnDialogOpen();
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);

return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
}

private void ConnectProfile()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
<UserControl x:Class="NETworkManager.Views.PowerShellConnectDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
mc:Ignorable="d" Loaded="UserControl_Loaded"
d:DataContext="{d:DesignInstance viewModels:PowerShellConnectViewModel}">
<UserControl.Resources>
<simpleChildWindow:ChildWindow x:Class="NETworkManager.Views.PowerShellConnectChildWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
CloseButtonCommand="{Binding Path=CancelCommand}"
Style="{StaticResource DefaultChildWindow}"
Loaded="ChildWindow_OnLoaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PowerShellConnectViewModel}">
<simpleChildWindow:ChildWindow.Resources>
<converters:BooleanReverseToVisibilityCollapsedConverter x:Key="BooleanReverseToVisibilityCollapsedConverter" />
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />
</UserControl.Resources>
<Grid Margin="0,20">
</simpleChildWindow:ChildWindow.Resources>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
Expand Down Expand Up @@ -42,7 +46,7 @@
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="{x:Static localization:Strings.RemoteConsole}" />
<mah:ToggleSwitch Grid.Column="2" Grid.Row="0" OffContent="" OnContent=""
IsOn="{Binding EnableRemoteConsole}" />
IsOn="{Binding EnableRemoteConsole}" />
<TextBlock Grid.Column="0" Grid.Row="2">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource CenterTextBlock}">
Expand All @@ -56,10 +60,10 @@
</TextBlock.Style>
</TextBlock>
<ComboBox x:Name="ComboBoxHost" Grid.Column="2" Grid.Row="2" ItemsSource="{Binding HostHistoryView}"
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleHostname}"
IsEnabled="{Binding EnableRemoteConsole}"
Visibility="{Binding EnableRemoteConsole, Converter={StaticResource BooleanToVisibilityCollapsedConverter}}"
Style="{StaticResource EditableComboBox}">
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleHostname}"
IsEnabled="{Binding EnableRemoteConsole}"
Visibility="{Binding EnableRemoteConsole, Converter={StaticResource BooleanToVisibilityCollapsedConverter}}"
Style="{StaticResource EditableComboBox}">
<ComboBox.Text>
<Binding Path="Host" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
Expand All @@ -70,20 +74,20 @@
</ComboBox.Text>
</ComboBox>
<TextBox x:Name="TextBoxCommand" Grid.Column="2" Grid.Row="2"
Text="{Binding Command, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding EnableRemoteConsole, Converter={StaticResource BooleanReverseToVisibilityCollapsedConverter}}"
Style="{StaticResource DefaultTextBox}" />
Text="{Binding Command, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding EnableRemoteConsole, Converter={StaticResource BooleanReverseToVisibilityCollapsedConverter}}"
Style="{StaticResource DefaultTextBox}" />
<TextBlock Grid.Column="0" Grid.Row="4" Text="{x:Static localization:Strings.AdditionalCommandLine}" />
<TextBox x:Name="TextBoxAdditionalCommandLine" Grid.Column="2" Grid.Row="4"
Text="{Binding AdditionalCommandLine, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource DefaultTextBox}" />
Text="{Binding AdditionalCommandLine, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource DefaultTextBox}" />
<TextBlock Grid.Column="0" Grid.Row="6" Text="{x:Static localization:Strings.ExecutionPolicy}" />
<ComboBox x:Name="ComboBoxTypes" Grid.Column="2" Grid.Row="6" ItemsSource="{Binding ExecutionPolicies}"
SelectedItem="{Binding ExecutionPolicy}" />
SelectedItem="{Binding ExecutionPolicy}" />
</Grid>
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="{x:Static localization:Strings.Connect}" Command="{Binding ConnectCommand}"
IsDefault="True" Margin="0,0,10,0">
IsDefault="True" Margin="0,0,10,0">
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource HighlightedButton}">
<Setter Property="IsEnabled" Value="True" />
Expand All @@ -92,7 +96,7 @@
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding EnableRemoteConsole}" Value="True" />
<Condition Binding="{Binding Path=(Validation.HasError), ElementName=ComboBoxHost}"
Value="True" />
Value="True" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="IsEnabled" Value="False" />
Expand All @@ -103,7 +107,7 @@
</Button.Style>
</Button>
<Button Content="{x:Static localization:Strings.Cancel}" Command="{Binding CancelCommand}" IsCancel="True"
Style="{StaticResource DefaultButton}" />
Style="{StaticResource DefaultButton}" />
</StackPanel>
</Grid>
</UserControl>
</simpleChildWindow:ChildWindow>
Loading