From 9ffdbee400a7f163753e0dcae9bb2bc6929db4d1 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Tue, 9 Aug 2016 15:49:52 -0600 Subject: [PATCH] Fix self-reference initialization error --- mRemoteV1/App/Startup.cs | 1 + mRemoteV1/Config/Import/ActiveDirectory.cs | 3 ++- mRemoteV1/Connection/ConnectionInfoInheritance.cs | 7 +++---- mRemoteV1/Connection/DefaultConnectionInheritance.cs | 2 +- mRemoteV1/UI/Window/ConfigWindow.cs | 4 +--- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/mRemoteV1/App/Startup.cs b/mRemoteV1/App/Startup.cs index e3d93fe9f..7feb5d3d3 100644 --- a/mRemoteV1/App/Startup.cs +++ b/mRemoteV1/App/Startup.cs @@ -48,6 +48,7 @@ namespace mRemoteNG.App ParseCommandLineArgs(); IeBrowserEmulation.Register(); GetConnectionIcons(); + DefaultConnectionInheritance.Instance.LoadFrom(Settings.Default, (a)=>"InhDefault"+a); } diff --git a/mRemoteV1/Config/Import/ActiveDirectory.cs b/mRemoteV1/Config/Import/ActiveDirectory.cs index e40ede76c..9318fc47e 100644 --- a/mRemoteV1/Config/Import/ActiveDirectory.cs +++ b/mRemoteV1/Config/Import/ActiveDirectory.cs @@ -87,7 +87,8 @@ namespace mRemoteNG.Config.Import var treeNode = ConnectionTreeNode.AddNode(TreeNodeType.Connection, displayName); var connectionInfo = new ConnectionInfo(); - var inheritanceInfo = new ConnectionInfoInheritance(connectionInfo, true); + var inheritanceInfo = new ConnectionInfoInheritance(connectionInfo); + inheritanceInfo.TurnOnInheritanceCompletely(); inheritanceInfo.Description = false; if (parentTreeNode.Tag is ContainerInfo) { diff --git a/mRemoteV1/Connection/ConnectionInfoInheritance.cs b/mRemoteV1/Connection/ConnectionInfoInheritance.cs index 381ad3dd9..4d7ac372c 100644 --- a/mRemoteV1/Connection/ConnectionInfoInheritance.cs +++ b/mRemoteV1/Connection/ConnectionInfoInheritance.cs @@ -297,15 +297,14 @@ namespace mRemoteNG.Connection #endregion - public ConnectionInfoInheritance(object parent, bool inheritEverything = false) + public ConnectionInfoInheritance(object parent, bool ignoreDefaultInheritance = false) { Parent = parent; - if (inheritEverything) - TurnOnInheritanceCompletely(); + if (!ignoreDefaultInheritance) + SetAllValues(DefaultConnectionInheritance.Instance); } - public ConnectionInfoInheritance Copy() { return (ConnectionInfoInheritance)MemberwiseClone(); diff --git a/mRemoteV1/Connection/DefaultConnectionInheritance.cs b/mRemoteV1/Connection/DefaultConnectionInheritance.cs index 4dc83e499..1dc37f64a 100644 --- a/mRemoteV1/Connection/DefaultConnectionInheritance.cs +++ b/mRemoteV1/Connection/DefaultConnectionInheritance.cs @@ -7,7 +7,7 @@ namespace mRemoteNG.Connection { public static DefaultConnectionInheritance Instance { get; } = new DefaultConnectionInheritance(); - private DefaultConnectionInheritance() : base(null) + private DefaultConnectionInheritance() : base(null, true) { } diff --git a/mRemoteV1/UI/Window/ConfigWindow.cs b/mRemoteV1/UI/Window/ConfigWindow.cs index bf18a7494..94418f6fa 100644 --- a/mRemoteV1/UI/Window/ConfigWindow.cs +++ b/mRemoteV1/UI/Window/ConfigWindow.cs @@ -1620,9 +1620,7 @@ namespace mRemoteNG.UI.Window InheritanceVisible = false; DefaultPropertiesVisible = false; DefaultInheritanceVisible = true; - var defaultInheritance = DefaultConnectionInheritance.Instance; - defaultInheritance.LoadFrom(Settings.Default, (a)=>"InhDefault"+a); - SetPropertyGridObject(defaultInheritance); + SetPropertyGridObject(DefaultConnectionInheritance.Instance); } }