removed some frmmain static instance refs

This commit is contained in:
David Sparer
2018-05-20 19:57:25 -05:00
parent d0a011d8ff
commit c43ef052c6
10 changed files with 51 additions and 33 deletions

View File

@@ -75,7 +75,7 @@ namespace mRemoteNGTests.Connection.Protocol
connectionTreeWindow.ConnectionTreeContextMenu = connectionTreeContextMenu;
var errorAndInfoWindow = new ErrorAndInfoWindow(new DockContent(), connectionTreeWindow);
var screenshotManagerWindow = new ScreenshotManagerWindow(new DockContent());
var shutdown = new Shutdown(new SettingsSaver(new ExternalToolsService()), new ConnectionsService(PuttySessionsManager.Instance, import));
var shutdown = new Shutdown(new SettingsSaver(new ExternalToolsService()), new ConnectionsService(PuttySessionsManager.Instance, import), FrmMain.Default);
var appUpdater = new AppUpdater(encryptionKeySelectionFunc);
Func<UpdateWindow> updateWindowBuilder = () => new UpdateWindow(new DockContent(), shutdown, appUpdater);
Func<NotificationAreaIcon> notificationAreaIconBuilder = () => new NotificationAreaIcon(FrmMain.Default, _connectionInitiator, shutdown);

View File

@@ -30,7 +30,8 @@ namespace mRemoteNGTests.UI.Controls
{
const string text = "Type Here";
var textBox = new TextBoxTester(_textBoxExtensionsTestForm.textBox1.Name);
Assert.That(textBox.Properties.SetCueBannerText(text), Is.True);
var textWasSet = textBox.Properties.SetCueBannerText(text);
Assert.That(textWasSet, Is.True);
}
[Test]

View File

@@ -27,13 +27,13 @@ namespace mRemoteNGTests.UI.Forms
{
var connectionInitiator = Substitute.For<IConnectionInitiator>();
var import = new Import();
var shutdown = new Shutdown(new SettingsSaver(new ExternalToolsService()), new ConnectionsService(PuttySessionsManager.Instance, import));
var shutdown = new Shutdown(new SettingsSaver(new ExternalToolsService()), new ConnectionsService(PuttySessionsManager.Instance, import), FrmMain.Default);
Func<NotificationAreaIcon> notificationIconBuilder = () => new NotificationAreaIcon(FrmMain.Default, connectionInitiator, shutdown);
var connectionsService = new ConnectionsService(PuttySessionsManager.Instance, import);
Func<SecureString> encryptionKeySelectionFunc = () => connectionsService.EncryptionKey;
var databaseConnectorFactory = new DatabaseConnectorFactory(encryptionKeySelectionFunc);
var appUpdater = new AppUpdater(encryptionKeySelectionFunc);
_optionsForm = new frmOptions(connectionInitiator, type => {}, notificationIconBuilder, connectionsService, appUpdater, databaseConnectorFactory);
_optionsForm = new frmOptions(connectionInitiator, type => {}, notificationIconBuilder, connectionsService, appUpdater, databaseConnectorFactory, FrmMain.Default);
_optionsForm.Show();
}

View File

@@ -1,31 +1,38 @@
using System.Windows.Forms;
using mRemoteNG.Tools;
using mRemoteNG.UI.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace mRemoteNG.App
{
public static class Screens
public class Screens
{
public static void SendFormToScreen(Screen screen)
private readonly FrmMain _frmMain;
public Screens(FrmMain frmMain)
{
_frmMain = frmMain.ThrowIfNull(nameof(frmMain));
}
public void SendFormToScreen(Screen screen)
{
var frmMain = FrmMain.Default;
var wasMax = false;
if (frmMain.WindowState == FormWindowState.Maximized)
if (_frmMain.WindowState == FormWindowState.Maximized)
{
wasMax = true;
frmMain.WindowState = FormWindowState.Normal;
_frmMain.WindowState = FormWindowState.Normal;
}
frmMain.Location = screen.Bounds.Location;
_frmMain.Location = screen.Bounds.Location;
if (wasMax)
{
frmMain.WindowState = FormWindowState.Maximized;
_frmMain.WindowState = FormWindowState.Maximized;
}
}
public static void SendPanelToScreen(DockContent panel, Screen screen)
public void SendPanelToScreen(DockContent panel, Screen screen)
{
panel.DockState = DockState.Float;
if (panel.ParentForm == null) return;

View File

@@ -15,12 +15,14 @@ namespace mRemoteNG.App
{
private readonly SettingsSaver _settingsSaver;
private readonly ConnectionsService _connectionsService;
private readonly FrmMain _frmMain;
private static string _updateFilePath;
public Shutdown(SettingsSaver settingsSaver, ConnectionsService connectionsService)
public Shutdown(SettingsSaver settingsSaver, ConnectionsService connectionsService, FrmMain frmMain)
{
_settingsSaver = settingsSaver.ThrowIfNull(nameof(settingsSaver));
_connectionsService = connectionsService.ThrowIfNull(nameof(connectionsService));
_frmMain = frmMain.ThrowIfNull(nameof(frmMain));
}
private static bool UpdatePending
@@ -31,7 +33,7 @@ namespace mRemoteNG.App
public void Quit(string updateFilePath = null)
{
_updateFilePath = updateFilePath;
FrmMain.Default.Close();
_frmMain.Close();
ProgramRoot.CloseSingletonInstanceMutex();
}

View File

@@ -87,7 +87,7 @@ namespace mRemoteNG.App
_adimportForm.Show(dockPanel);
break;
case WindowType.Options:
using (var optionsForm = new frmOptions(_connectionInitiator, Show, _notificationAreaIconBuilder, _connectionsService, _appUpdater, _databaseConnectorFactory))
using (var optionsForm = new frmOptions(_connectionInitiator, Show, _notificationAreaIconBuilder, _connectionsService, _appUpdater, _databaseConnectorFactory, FrmMain.Default))
{
optionsForm.ShowDialog(dockPanel);
}

View File

@@ -1,16 +1,18 @@
using System;
using mRemoteNG.Config;
using mRemoteNG.Tools;
namespace mRemoteNG.UI.Forms.OptionsPages
{
public partial class ConnectionsPage
{
private FrmMain _frmMain = FrmMain.Default;
private readonly FrmMain _frmMain;
public ConnectionsPage()
public ConnectionsPage(FrmMain frmMain)
{
InitializeComponent();
base.ApplyTheme();
_frmMain = frmMain.ThrowIfNull(nameof(frmMain));
}
public override string PageName

View File

@@ -69,6 +69,7 @@ namespace mRemoteNG.UI.Forms
private readonly Import _import;
private readonly AppUpdater _appUpdater;
private readonly DatabaseConnectorFactory _databaseConnectorFactory;
private readonly Screens _screens;
internal FullscreenHandler Fullscreen { get; set; }
@@ -77,6 +78,8 @@ namespace mRemoteNG.UI.Forms
private FrmMain()
{
InitializeComponent();
_windowList = new WindowList();
_credentialRepositoryList = new CredentialRepositoryList();
var externalToolsService = new ExternalToolsService();
@@ -101,7 +104,7 @@ namespace mRemoteNG.UI.Forms
var errorAndInfoWindow = new ErrorAndInfoWindow(new DockContent(), connectionTreeWindow);
var screenshotManagerWindow = new ScreenshotManagerWindow(new DockContent());
_settingsSaver = new SettingsSaver(externalToolsService);
_shutdown = new Shutdown(_settingsSaver, _connectionsService);
_shutdown = new Shutdown(_settingsSaver, _connectionsService, this);
Func<UpdateWindow> updateWindowBuilder = () => new UpdateWindow(new DockContent(), _shutdown, _appUpdater);
_notificationAreaIconBuilder = () => new NotificationAreaIcon(this, _connectionInitiator, _shutdown);
Func<ExternalToolsWindow> externalToolsWindowBuilder = () => new ExternalToolsWindow(_connectionInitiator, externalToolsService, () => connectionTree.SelectedNode);
@@ -112,15 +115,14 @@ namespace mRemoteNG.UI.Forms
sshTransferWindow, updateWindowBuilder, _notificationAreaIconBuilder, externalToolsWindowBuilder, _connectionsService,
portScanWindowBuilder, activeDirectoryImportWindowBuilder, _appUpdater, _databaseConnectorFactory);
Func<ConnectionWindow> connectionWindowBuilder = () => new ConnectionWindow(new DockContent(), _connectionInitiator, _windows, externalToolsService);
_panelAdder = new PanelAdder(_windowList, connectionWindowBuilder);
_screens = new Screens(this);
_panelAdder = new PanelAdder(_windowList, connectionWindowBuilder, _screens);
_showFullPathInTitle = Settings.Default.ShowCompleteConsPathInTitle;
_connectionInitiator.Adder = _panelAdder;
_connectionsService.DatabaseConnectorFactory = _databaseConnectorFactory;
_startup = new Startup(this, _windows, _connectionsService, _appUpdater, _databaseConnectorFactory);
connectionTreeContextMenu.ShowWindowAction = _windows.Show;
InitializeComponent();
var externalAppsLoader = new ExternalAppsLoader(Runtime.MessageCollector, _externalToolsToolStrip, _connectionInitiator, externalToolsService);
_settingsLoader = new SettingsLoader(this, Runtime.MessageCollector, _quickConnectToolStrip, _externalToolsToolStrip, _multiSshToolStrip, externalAppsLoader, _notificationAreaIconBuilder);
_externalToolsToolStrip.ExternalToolsService = externalToolsService;
@@ -359,7 +361,7 @@ namespace mRemoteNG.UI.Forms
if (CTaskDialog.CommandButtonResult != 1) return;
using (var optionsForm = new frmOptions(_connectionInitiator, _windows.Show, _notificationAreaIconBuilder, _connectionsService, _appUpdater, _databaseConnectorFactory, Language.strTabUpdates))
using (var optionsForm = new frmOptions(_connectionInitiator, _windows.Show, _notificationAreaIconBuilder, _connectionsService, _appUpdater, _databaseConnectorFactory, Language.strTabUpdates, this))
{
optionsForm.ShowDialog(this);
}
@@ -519,7 +521,7 @@ namespace mRemoteNG.UI.Forms
case NativeMethods.WM_SYSCOMMAND:
var screen = _screenSystemMenu.GetScreenById(m.WParam.ToInt32());
if (screen != null)
Screens.SendFormToScreen(screen);
_screens.SendFormToScreen(screen);
break;
case NativeMethods.WM_DRAWCLIPBOARD:
NativeMethods.SendMessage(_fpChainedWindowHandle, m.Msg, m.LParam, m.WParam);

View File

@@ -22,19 +22,21 @@ namespace mRemoteNG.UI.Forms
private readonly ConnectionsService _connectionsService;
private readonly AppUpdater _appUpdater;
private readonly DatabaseConnectorFactory _databaseConnectorFactory;
private readonly FrmMain _frmMain;
public frmOptions(IConnectionInitiator connectionInitiator, Action<WindowType> showWindowAction, Func<NotificationAreaIcon> notificationAreaIconBuilder,
ConnectionsService connectionsService, AppUpdater appUpdater, DatabaseConnectorFactory databaseConnectorFactory)
: this(connectionInitiator, showWindowAction, notificationAreaIconBuilder, connectionsService, appUpdater, databaseConnectorFactory, Language.strStartupExit)
ConnectionsService connectionsService, AppUpdater appUpdater, DatabaseConnectorFactory databaseConnectorFactory, FrmMain frmMain)
: this(connectionInitiator, showWindowAction, notificationAreaIconBuilder, connectionsService, appUpdater, databaseConnectorFactory, Language.strStartupExit, frmMain)
{
}
public frmOptions(IConnectionInitiator connectionInitiator, Action<WindowType> showWindowAction, Func<NotificationAreaIcon> notificationAreaIconBuilder,
ConnectionsService connectionsService, AppUpdater appUpdater, DatabaseConnectorFactory databaseConnectorFactory, string pageName)
ConnectionsService connectionsService, AppUpdater appUpdater, DatabaseConnectorFactory databaseConnectorFactory, string pageName, FrmMain frmMain)
{
_connectionInitiator = connectionInitiator.ThrowIfNull(nameof(connectionInitiator));
_showWindowAction = showWindowAction.ThrowIfNull(nameof(showWindowAction));
_notificationAreaIconBuilder = notificationAreaIconBuilder;
_frmMain = frmMain.ThrowIfNull(nameof(frmMain));
_databaseConnectorFactory = databaseConnectorFactory.ThrowIfNull(nameof(databaseConnectorFactory));
_connectionsService = connectionsService.ThrowIfNull(nameof(connectionsService));
_appUpdater = appUpdater.ThrowIfNull(nameof(appUpdater));
@@ -82,7 +84,7 @@ namespace mRemoteNG.UI.Forms
{typeof(AppearancePage).Name, new AppearancePage(_connectionInitiator, _notificationAreaIconBuilder)},
{typeof(TabsPanelsPage).Name, new TabsPanelsPage()},
{typeof(NotificationsPage).Name, new NotificationsPage()},
{typeof(ConnectionsPage).Name, new ConnectionsPage()},
{typeof(ConnectionsPage).Name, new ConnectionsPage(_frmMain)},
{typeof(CredentialsPage).Name, new CredentialsPage()},
{typeof(SqlServerPage).Name, new SqlServerPage(_connectionsService, _databaseConnectorFactory)},
{typeof(UpdatesPage).Name, new UpdatesPage(_appUpdater, _showWindowAction)},

View File

@@ -14,11 +14,13 @@ namespace mRemoteNG.UI.Panels
public class PanelAdder
{
private readonly WindowList _windowList;
private readonly Screens _screens;
private readonly Func<ConnectionWindow> _connectionWindowBuilder;
public PanelAdder(WindowList windowList, Func<ConnectionWindow> connectionWindowBuilder)
public PanelAdder(WindowList windowList, Func<ConnectionWindow> connectionWindowBuilder, Screens screens)
{
_connectionWindowBuilder = connectionWindowBuilder;
_screens = screens;
_windowList = windowList.ThrowIfNull(nameof(windowList));
}
@@ -60,7 +62,7 @@ namespace mRemoteNG.UI.Panels
connectionForm.SetFormText(title.Replace("&", "&&"));
}
private static void BuildConnectionWindowContextMenu(DockContent pnlcForm)
private void BuildConnectionWindowContextMenu(DockContent pnlcForm)
{
var cMen = new ContextMenuStrip();
var cMenRen = CreateRenameMenuItem(pnlcForm);
@@ -69,7 +71,7 @@ namespace mRemoteNG.UI.Panels
pnlcForm.TabPageContextMenuStrip = cMen;
}
private static ToolStripMenuItem CreateScreensMenuItem(DockContent pnlcForm)
private ToolStripMenuItem CreateScreensMenuItem(DockContent pnlcForm)
{
var cMenScreens = new ToolStripMenuItem
{
@@ -114,7 +116,7 @@ namespace mRemoteNG.UI.Panels
}
}
private static void cMenConnectionPanelScreens_DropDownOpening(object sender, EventArgs e)
private void cMenConnectionPanelScreens_DropDownOpening(object sender, EventArgs e)
{
try
{
@@ -140,7 +142,7 @@ namespace mRemoteNG.UI.Panels
}
}
private static void cMenConnectionPanelScreen_Click(object sender, EventArgs e)
private void cMenConnectionPanelScreen_Click(object sender, EventArgs e)
{
Screen screen = null;
DockContent panel = null;
@@ -160,7 +162,7 @@ namespace mRemoteNG.UI.Panels
panel = (DockContent)obj;
}
}
Screens.SendPanelToScreen(panel, screen);
_screens.SendPanelToScreen(panel, screen);
}
catch (Exception ex)
{