diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm b/src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm index 7e3022fe32..222f879854 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm @@ -65,7 +65,7 @@ - + @@ -162,11 +162,11 @@ - - + + - + @@ -212,7 +212,7 @@ - + @@ -254,7 +254,7 @@ - + diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.cs index b91dfec0d2..49790c8dd4 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.cs @@ -30,20 +30,37 @@ namespace CSharpBinding.OptionPanels InitOutputPath(); InitXmlDoc(); - helper.BindString("conditionalSymbolsTextBox", "DefineConstants"); - helper.BindBoolean("optimizeCodeCheckBox", "Optimize", false); - helper.BindBoolean("allowUnsafeCodeCheckBox", "AllowUnsafeBlocks", false); - helper.BindBoolean("checkForOverflowCheckBox", "CheckForOverflowUnderflow", false); - helper.BindBoolean("noCorlibCheckBox", "NoStdLib", false); + ConfigurationGuiBinding b; + + b = helper.BindString("conditionalSymbolsTextBox", "DefineConstants"); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.CreateLocationButton("conditionalSymbolsTextBox"); + + b = helper.BindBoolean("optimizeCodeCheckBox", "Optimize", false); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.CreateLocationButton("optimizeCodeCheckBox"); + + b = helper.BindBoolean("allowUnsafeCodeCheckBox", "AllowUnsafeBlocks", false); + b.CreateLocationButton("allowUnsafeCodeCheckBox"); + + b = helper.BindBoolean("checkForOverflowCheckBox", "CheckForOverflowUnderflow", false); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.CreateLocationButton("checkForOverflowCheckBox"); + + b = helper.BindBoolean("noCorlibCheckBox", "NoStdLib", false); + b.CreateLocationButton("noCorlibCheckBox"); InitAdvanced(); - helper.BindStringEnum("fileAlignmentComboBox", "FileAlignment", - "4096", - new StringPair("512", "512"), - new StringPair("1024", "1024"), - new StringPair("2048", "2048"), - new StringPair("4096", "4096"), - new StringPair("8192", "8192")); + b = helper.BindStringEnum("fileAlignmentComboBox", "FileAlignment", + "4096", + new StringPair("512", "512"), + new StringPair("1024", "1024"), + new StringPair("2048", "2048"), + new StringPair("4096", "4096"), + new StringPair("8192", "8192")); + b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; + b.RegisterLocationButton(advancedLocationButton); + InitWarnings(); helper.AddConfigurationSelector(this); diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm b/src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm index 96b3cc4063..2c970abeea 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm @@ -18,7 +18,7 @@ - + @@ -26,12 +26,12 @@ - + - + @@ -161,11 +161,11 @@ - - + + - + @@ -211,7 +211,7 @@ - + @@ -252,7 +252,7 @@ - + diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs index b152e74fd2..eb2136b19b 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs @@ -27,19 +27,32 @@ namespace VBNetBinding.OptionPanels SetupFromXmlResource("BuildOptions.xfrm"); InitializeHelper(); - helper.BindString("conditionalSymbolsTextBox", "DefineConstants"); - helper.BindBoolean("optimizeCodeCheckBox", "Optimize", false); - helper.BindBoolean("removeOverflowCheckBox", "RemoveIntegerChecks", false); + ConfigurationGuiBinding b; - helper.BindStringEnum("optionStrictComboBox", "OptionStrict", "Off", - new StringPair("Off", "Strict Off"), - new StringPair("On", "Strict On")); - helper.BindStringEnum("optionExplicitComboBox", "OptionExplicit", "On", - new StringPair("Off", "Explicit Off"), - new StringPair("On", "Explicit On")); - helper.BindStringEnum("optionCompareComboBox", "OptionCompare", "Binary", - new StringPair("Binary", "Compare Binary"), - new StringPair("Text", "Compare Text")); + b = helper.BindString("conditionalSymbolsTextBox", "DefineConstants"); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.CreateLocationButton("conditionalSymbolsTextBox"); + + b = helper.BindBoolean("optimizeCodeCheckBox", "Optimize", false); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.CreateLocationButton("optimizeCodeCheckBox"); + + b = helper.BindBoolean("removeOverflowCheckBox", "RemoveIntegerChecks", false); + b.CreateLocationButton("removeOverflowCheckBox"); + + ChooseStorageLocationButton locationButton; + b = helper.BindStringEnum("optionExplicitComboBox", "OptionExplicit", "On", + new StringPair("Off", "Explicit Off"), + new StringPair("On", "Explicit On")); + locationButton = b.CreateLocationButton("optionExplicitComboBox"); + b = helper.BindStringEnum("optionStrictComboBox", "OptionStrict", "Off", + new StringPair("Off", "Strict Off"), + new StringPair("On", "Strict On")); + b.RegisterLocationButton(locationButton); + b = helper.BindStringEnum("optionCompareComboBox", "OptionCompare", "Binary", + new StringPair("Binary", "Compare Binary"), + new StringPair("Text", "Compare Text")); + b.RegisterLocationButton(locationButton); InitOutputPath(); InitXmlDoc(); @@ -48,10 +61,5 @@ namespace VBNetBinding.OptionPanels helper.AddConfigurationSelector(this); } - - public override bool StorePanelContents() - { - return base.StorePanelContents(); - } } } diff --git a/src/Main/Base/Project/Resources/ProjectOptions/ApplicationSettings.xfrm b/src/Main/Base/Project/Resources/ProjectOptions/ApplicationSettings.xfrm index 6bc37c2bff..eb53c9f942 100644 --- a/src/Main/Base/Project/Resources/ProjectOptions/ApplicationSettings.xfrm +++ b/src/Main/Base/Project/Resources/ProjectOptions/ApplicationSettings.xfrm @@ -120,23 +120,23 @@ - + - + - + - + - + @@ -146,7 +146,7 @@ - + diff --git a/src/Main/Base/Project/Resources/ProjectOptions/DebugOptions.xfrm b/src/Main/Base/Project/Resources/ProjectOptions/DebugOptions.xfrm index 2d23c295a9..d6ec76c875 100644 --- a/src/Main/Base/Project/Resources/ProjectOptions/DebugOptions.xfrm +++ b/src/Main/Base/Project/Resources/ProjectOptions/DebugOptions.xfrm @@ -4,7 +4,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs index 3a2b0ffa3d..ebbd1666b9 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs @@ -29,17 +29,28 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels protected void InitXmlDoc() { - helper.BindString("xmlDocumentationTextBox", "DocumentationFile"); + ConfigurationGuiBinding b; + b = helper.BindString("xmlDocumentationTextBox", "DocumentationFile"); + b.CreateLocationButton("xmlDocumentationCheckBox"); + helper.Loaded += XmlDocHelperLoaded; + XmlDocHelperLoaded(null, null); + } + + void XmlDocHelperLoaded(object sender, EventArgs e) + { + Get("xmlDocumentation").CheckedChanged -= UpdateXmlEnabled; Get("xmlDocumentation").Checked = Get("xmlDocumentation").Text.Length > 0; - Get("xmlDocumentation").CheckedChanged += new EventHandler(UpdateXmlEnabled); + Get("xmlDocumentation").CheckedChanged += UpdateXmlEnabled; Get("xmlDocumentation").Enabled = Get("xmlDocumentation").Checked; } void UpdateXmlEnabled(object sender, EventArgs e) { Get("xmlDocumentation").Enabled = Get("xmlDocumentation").Checked; - if (Get("xmlDocumentation").Checked && Get("xmlDocumentation").Text.Length == 0) { - Get("xmlDocumentation").Text = FileUtility.GetRelativePath(baseDirectory, project.OutputAssemblyFullPath) + ".xml"; + if (Get("xmlDocumentation").Checked) { + if (Get("xmlDocumentation").Text.Length == 0) { + Get("xmlDocumentation").Text = FileUtility.GetRelativePath(baseDirectory, project.OutputAssemblyFullPath) + ".xml"; + } } else { Get("xmlDocumentation").Text = ""; } @@ -47,17 +58,23 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels protected void InitWarnings() { - helper.BindStringEnum("warningLevelComboBox", "WarningLevel", - "4", - new StringPair("0", "0"), - new StringPair("1", "1"), - new StringPair("2", "2"), - new StringPair("3", "3"), - new StringPair("4", "4")); - helper.BindString("suppressWarningsTextBox", "NoWarn"); + ConfigurationGuiBinding b; + b = helper.BindStringEnum("warningLevelComboBox", "WarningLevel", + "4", + new StringPair("0", "0"), + new StringPair("1", "1"), + new StringPair("2", "2"), + new StringPair("3", "3"), + new StringPair("4", "4")); + ChooseStorageLocationButton locationButton = b.CreateLocationButtonInPanel("warningsGroupBox"); + b = helper.BindString("suppressWarningsTextBox", "NoWarn"); + b.RegisterLocationButton(locationButton); - helper.AddBinding("TreatWarningsAsErrors", new WarningsAsErrorsBinding(this)); - helper.BindString("specificWarningsTextBox", "WarningsAsErrors"); // must be saved AFTER TreatWarningsAsErrors + b = new WarningsAsErrorsBinding(this); + helper.AddBinding("TreatWarningsAsErrors", b); + locationButton = b.CreateLocationButtonInPanel("treatWarningsAsErrorsGroupBox"); + b = helper.BindString("specificWarningsTextBox", "WarningsAsErrors"); // must be saved AFTER TreatWarningsAsErrors + b.RegisterLocationButton(locationButton); Get("specificWarnings").CheckedChanged += new EventHandler(UpdateWarningChecked); @@ -111,37 +128,46 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels } ConfigurationGuiBinding debugInfoBinding; + protected ChooseStorageLocationButton advancedLocationButton; protected void InitAdvanced() { debugInfoBinding = helper.BindEnum("debugInfoComboBox", "DebugType"); - helper.BindBoolean("registerCOMInteropCheckBox", "RegisterForComInterop", false); - helper.BindStringEnum("generateSerializationAssemblyComboBox", "GenerateSerializationAssemblies", - "Auto", - new StringPair("Off", "Off"), - new StringPair("On", "On"), - new StringPair("Auto", "Auto")); - helper.BindHexadecimal(Get("dllBaseAddress"), "BaseAddress", 0x400000); - helper.BindStringEnum("targetCpuComboBox", "PlatformTarget", - "AnyCPU", - new StringPair("AnyCPU", "${res:Dialog.ProjectOptions.Build.TargetCPU.Any}"), - new StringPair("x86", "${res:Dialog.ProjectOptions.Build.TargetCPU.x86}"), - new StringPair("x64", "${res:Dialog.ProjectOptions.Build.TargetCPU.x64}"), - new StringPair("Itanium", "${res:Dialog.ProjectOptions.Build.TargetCPU.Itanium}")); - } - - public override bool StorePanelContents() - { - if (base.StorePanelContents()) { + debugInfoBinding.CreateLocationButton("debugInfoLabel"); + + ConfigurationGuiBinding b; + b = helper.BindBoolean("registerCOMInteropCheckBox", "RegisterForComInterop", false); + b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; + advancedLocationButton = b.CreateLocationButtonInPanel("advancedOutputGroupBox"); + + b = helper.BindStringEnum("generateSerializationAssemblyComboBox", "GenerateSerializationAssemblies", + "Auto", + new StringPair("Off", "Off"), + new StringPair("On", "On"), + new StringPair("Auto", "Auto")); + b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; + b.RegisterLocationButton(advancedLocationButton); + + b = helper.BindHexadecimal(Get("dllBaseAddress"), "BaseAddress", 0x400000); + b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; + b.RegisterLocationButton(advancedLocationButton); + + b = helper.BindStringEnum("targetCpuComboBox", "PlatformTarget", + "AnyCPU", + new StringPair("AnyCPU", "${res:Dialog.ProjectOptions.Build.TargetCPU.Any}"), + new StringPair("x86", "${res:Dialog.ProjectOptions.Build.TargetCPU.x86}"), + new StringPair("x64", "${res:Dialog.ProjectOptions.Build.TargetCPU.x64}"), + new StringPair("Itanium", "${res:Dialog.ProjectOptions.Build.TargetCPU.Itanium}")); + b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; + b.RegisterLocationButton(advancedLocationButton); + + helper.Saved += delegate { if ((DebugSymbolType)Get("debugInfo").SelectedIndex == DebugSymbolType.Full) { helper.SetProperty("DebugSymbols", "true", debugInfoBinding.Location); } else { helper.SetProperty("DebugSymbols", "false", debugInfoBinding.Location); } - return true; - } else { - return false; - } + }; } } } 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 b3c0ff95b1..d2e5bf04fc 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 @@ -31,20 +31,28 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels // TODO: Suitable file filter. ConnectBrowseButton("win32ResourceFileBrowseButton", "win32ResourceFileComboBox"); - helper.BindString("assemblyNameTextBox", "AssemblyName"); + ConfigurationGuiBinding b; + ChooseStorageLocationButton locationButton; + b = helper.BindString("assemblyNameTextBox", "AssemblyName"); + b.CreateLocationButton("assemblyNameTextBox"); Get("assemblyName").TextChanged += new EventHandler(RefreshOutputNameTextBox); - helper.BindString("rootNamespaceTextBox", "RootNamespace"); + b = helper.BindString("rootNamespaceTextBox", "RootNamespace"); + b.CreateLocationButton("rootNamespaceTextBox"); - helper.BindEnum("outputTypeComboBox", "OutputType"); + b = helper.BindEnum("outputTypeComboBox", "OutputType"); + locationButton = b.CreateLocationButton("outputTypeComboBox"); Get("outputType").SelectedIndexChanged += new EventHandler(RefreshOutputNameTextBox); - helper.BindString("startupObjectComboBox", "StartupObject"); + b = helper.BindString("startupObjectComboBox", "StartupObject"); + b.RegisterLocationButton(locationButton); - helper.BindString("applicationIconComboBox", "ApplicationIcon"); + b = helper.BindString("applicationIconComboBox", "ApplicationIcon"); Get("applicationIcon").TextChanged += new EventHandler(ApplicationIconComboBoxTextChanged); + b.CreateLocationButton("applicationIconComboBox"); - helper.BindString("win32ResourceFileComboBox", "Win32Resource"); + b = helper.BindString("win32ResourceFileComboBox", "Win32Resource"); + b.CreateLocationButton("win32ResourceFileComboBox"); Get("projectFolder").Text = project.Directory; Get("projectFile").Text = Path.GetFileName(project.FileName); diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/BuildEvents.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/BuildEvents.cs index 18f2721c5d..724c4dfc88 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/BuildEvents.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/BuildEvents.cs @@ -30,9 +30,16 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels "postBuildEventTextBox", "${res:SharpDevelop.FileFilter.AllFiles}|*.*"); - helper.BindString("preBuildEventTextBox", "PreBuildEvent"); - helper.BindString("postBuildEventTextBox", "PostBuildEvent"); - helper.BindEnum("runPostBuildEventComboBox", "RunPostBuildEvent"); + ConfigurationGuiBinding b; + + b = helper.BindString("preBuildEventTextBox", "PreBuildEvent"); + b.CreateLocationButton("preBuildEventTextBox"); + + b = helper.BindString("postBuildEventTextBox", "PostBuildEvent"); + b.CreateLocationButton("postBuildEventTextBox"); + + b = helper.BindEnum("runPostBuildEventComboBox", "RunPostBuildEvent"); + b.CreateLocationButton("runPostBuildEventComboBox"); helper.AddConfigurationSelector(this); } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs index a5337135db..963c10c38e 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs @@ -27,18 +27,31 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels InitializeHelper(); - helper.BindRadioEnum("StartAction", - new RadioBinding(StartAction.Project, Get("startProject")), - new RadioBinding(StartAction.Program, Get("startExternalProgram")), - new RadioBinding(StartAction.StartURL, Get("startBrowserInURL"))); + ConfigurationGuiBinding b; + ChooseStorageLocationButton locationButton; + + b = helper.BindRadioEnum("StartAction", + new RadioBinding(StartAction.Project, Get("startProject")), + new RadioBinding(StartAction.Program, Get("startExternalProgram")), + new RadioBinding(StartAction.StartURL, Get("startBrowserInURL"))); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + locationButton = b.CreateLocationButtonInPanel("startActionGroupBox"); + + b = helper.BindString("startExternalProgramTextBox", "StartProgram"); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.RegisterLocationButton(locationButton); + + b = helper.BindString("startBrowserInURLTextBox", "StartURL"); + b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific; + b.RegisterLocationButton(locationButton); Get("startExternalProgram").CheckedChanged += UpdateEnabledStates; Get("startBrowserInURL").CheckedChanged += UpdateEnabledStates; - helper.BindString("startExternalProgramTextBox", "StartProgram"); - helper.BindString("startBrowserInURLTextBox", "StartURL"); - helper.BindString("commandLineArgumentsTextBox", "StartArguments"); - helper.BindString("workingDirectoryTextBox", "StartWorkingDirectory"); + b = helper.BindString("commandLineArgumentsTextBox", "StartArguments"); + locationButton = b.CreateLocationButtonInPanel("startOptionsGroupBox"); + b = helper.BindString("workingDirectoryTextBox", "StartWorkingDirectory"); + b.RegisterLocationButton(locationButton); UpdateEnabledStates(this, EventArgs.Empty); diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ReferencePaths.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ReferencePaths.cs index 8eeef418cf..ed95a34bf3 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ReferencePaths.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ReferencePaths.cs @@ -27,8 +27,10 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels editor.TitleText = StringParser.Parse("&${res:Dialog.ExportProjectToHtml.FolderLabel}"); editor.AddButtonText = StringParser.Parse("${res:Dialog.ProjectOptions.ReferencePaths.AddPath}"); editor.ListChanged += delegate { IsDirty = true; }; - helper.AddBinding("ReferencePath", new SemicolonSeparatedStringListBinding(editor)); + SemicolonSeparatedStringListBinding b = new SemicolonSeparatedStringListBinding(editor); + helper.AddBinding("ReferencePath", b); this.Controls.Add(editor); + b.CreateLocationButton(editor); helper.AddConfigurationSelector(this); } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs index 7020f00560..ffd763c521 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs @@ -27,12 +27,17 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels SetupFromXmlResource("ProjectOptions.Signing.xfrm"); InitializeHelper(); + ConfigurationGuiBinding b; + ChooseStorageLocationButton locationButton; + signAssemblyBinding = helper.BindBoolean("signAssemblyCheckBox", "SignAssembly", false); + locationButton = signAssemblyBinding.CreateLocationButtonInPanel("signingGroupBox"); Get("signAssembly").CheckedChanged += new EventHandler(UpdateEnabledStates); keyFile = Get("keyFile"); - helper.BindString(keyFile, "AssemblyOriginatorKeyFile"); + b = helper.BindString(keyFile, "AssemblyOriginatorKeyFile"); + b.RegisterLocationButton(locationButton); FindKeys(baseDirectory); if (keyFile.Text.Length > 0) { if (!keyFile.Items.Contains(keyFile.Text)) { @@ -50,11 +55,18 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels } }; - helper.BindBoolean("delaySignOnlyCheckBox", "DelaySign", false); + b = helper.BindBoolean("delaySignOnlyCheckBox", "DelaySign", false); + b.RegisterLocationButton(locationButton); UpdateEnabledStates(this, EventArgs.Empty); helper.AddConfigurationSelector(this); + + helper.Saved += delegate { + if (Get("signAssembly").Checked) { + helper.SetProperty("AssemblyOriginatorKeyMode", "File", signAssemblyBinding.Location); + } + }; } void FindKeys(string directory) @@ -102,13 +114,5 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels Get