fixed bug where connection properties weren't being passed to external tools

This commit is contained in:
David Sparer
2018-05-20 09:42:31 -05:00
parent 729166fc30
commit 991505b043
4 changed files with 12 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using mRemoteNG.App;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;
@@ -105,7 +106,7 @@ namespace mRemoteNG.Tools
_connectionInitiator = connectionInitiator.ThrowIfNull(nameof(connectionInitiator));
}
public void Start(ConnectionInfo startConnectionInfo = null)
public void Start(Optional<ConnectionInfo> startConnectionInfo)
{
try
{
@@ -115,7 +116,7 @@ namespace mRemoteNG.Tools
return;
}
ConnectionInfo = startConnectionInfo;
ConnectionInfo = startConnectionInfo.FirstOrDefault();
if (TryIntegrate)
StartIntegrated();

View File

@@ -121,7 +121,7 @@ namespace mRemoteNG.UI.Controls
else
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "No connection was selected, external tool may return errors.", true);
extA.Start();
extA.Start(null);
}
}

View File

@@ -104,7 +104,7 @@ namespace mRemoteNG.UI.Forms
_shutdown = new Shutdown(_settingsSaver, _connectionsService);
Func<UpdateWindow> updateWindowBuilder = () => new UpdateWindow(new DockContent(), _shutdown, _appUpdater);
_notificationAreaIconBuilder = () => new NotificationAreaIcon(this, _connectionInitiator, _shutdown);
Func<ExternalToolsWindow> externalToolsWindowBuilder = () => new ExternalToolsWindow(_connectionInitiator, externalToolsService);
Func<ExternalToolsWindow> externalToolsWindowBuilder = () => new ExternalToolsWindow(_connectionInitiator, externalToolsService, () => connectionTree.SelectedNode);
Func<PortScanWindow> portScanWindowBuilder = () => new PortScanWindow(() => connectionTreeWindow.SelectedNode, _import);
Func<ActiveDirectoryImportWindow> activeDirectoryImportWindowBuilder = () => new ActiveDirectoryImportWindow(() => connectionTreeWindow.SelectedNode, _import);
_databaseConnectorFactory = new DatabaseConnectorFactory(encryptionKeySelectionFunc);

View File

@@ -20,11 +20,13 @@ namespace mRemoteNG.UI.Window
private readonly FullyObservableCollection<ExternalTool> _currentlySelectedExternalTools;
private readonly IConnectionInitiator _connectionInitiator;
private readonly ExternalToolsService _externalToolsService;
private readonly Func<Optional<ConnectionInfo>> _getCurrentlySelectedConnection;
public ExternalToolsWindow(IConnectionInitiator connectionInitiator, ExternalToolsService externalToolsService)
public ExternalToolsWindow(IConnectionInitiator connectionInitiator, ExternalToolsService externalToolsService, Func<Optional<ConnectionInfo>> getCurrentlySelectedConnection)
{
_connectionInitiator = connectionInitiator.ThrowIfNull(nameof(connectionInitiator));
_externalToolsService = externalToolsService.ThrowIfNull(nameof(externalToolsService));
_getCurrentlySelectedConnection = getCurrentlySelectedConnection.ThrowIfNull(nameof(getCurrentlySelectedConnection));
InitializeComponent();
WindowType = WindowType.ExternalApps;
DockPnl = new DockContent();
@@ -114,9 +116,11 @@ namespace mRemoteNG.UI.Window
{
try
{
foreach (var externalTool in _currentlySelectedExternalTools)
var selectedConnection = _getCurrentlySelectedConnection();
foreach (var externalTool in _currentlySelectedExternalTools)
{
externalTool.Start();
externalTool.Start(selectedConnection);
}
}
catch (Exception ex)