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