mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
fixed bug where connection properties weren't being passed to external tools
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user