diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.cs index 2b342ab7db..5e0ae6a7cf 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.cs @@ -81,7 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels // re-evaluate if the project has the minimum version whenever this options page gets visible // because the "convert project" button on the compiling tab page might have updated the MSBuild version. applicationManifestComboBox.VisibleChanged += delegate { - applicationManifestComboBox.Enabled = project.MinimumSolutionVersion >= 10; + applicationManifestComboBox.Enabled = project.MinimumSolutionVersion >= Solution.SolutionVersionVS2008; }; Get("projectFolder").Text = project.Directory; diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs index 11fd84d7ab..a82774ba2f 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; +using System.Linq; using System.IO; using ICSharpCode.Core; @@ -67,5 +68,13 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs } project.Save(); } + + public override void Dispose() + { + foreach (IDisposable op in tabControl.OptionPanels.OfType()) { + op.Dispose(); + } + base.Dispose(); + } } } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptionsDialog.xaml.cs b/src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptionsDialog.xaml.cs index 91b7eac47f..c16eaedae8 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptionsDialog.xaml.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptionsDialog.xaml.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Text; +using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Data; @@ -42,5 +43,13 @@ namespace ICSharpCode.SharpDevelop.Gui this.DialogResult = false; Close(); } + + protected override void OnClosed(EventArgs e) + { + base.OnClosed(e); + foreach (IDisposable op in tabbedOptions.OptionPanels.OfType()) { + op.Dispose(); + } + } } } \ No newline at end of file diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/TreeViewOptionsDialog.xaml.cs b/src/Main/Base/Project/Src/Gui/Dialogs/TreeViewOptionsDialog.xaml.cs index 5076feee6e..031e6636b3 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/TreeViewOptionsDialog.xaml.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/TreeViewOptionsDialog.xaml.cs @@ -50,6 +50,14 @@ namespace ICSharpCode.SharpDevelop.Gui Close(); } + protected override void OnClosed(EventArgs e) + { + base.OnClosed(e); + foreach (IDisposable op in optionPanels.OfType()) { + op.Dispose(); + } + } + List optionPanels = new List(); OptionPanelNode activeNode;