diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index 2543a2d17c..84474c6566 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -1403,6 +1403,9 @@
type = "Menu">
+
diff --git a/src/AddIns/BackendBindings/ILAsmBinding/Project/ILAsmBinding.addin b/src/AddIns/BackendBindings/ILAsmBinding/Project/ILAsmBinding.addin
index 757e0e712c..27d01a5a60 100644
--- a/src/AddIns/BackendBindings/ILAsmBinding/Project/ILAsmBinding.addin
+++ b/src/AddIns/BackendBindings/ILAsmBinding/Project/ILAsmBinding.addin
@@ -57,7 +57,7 @@
-
Form
-
-
-
-
Form
@@ -704,6 +700,13 @@
+
+ SolutionConfigurationEditor.cs
+
+
+
+ SolutionConfigurationEditor.cs
+
@@ -738,6 +741,7 @@
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
ICSharpCode.SharpDevelop.Dom
+
-
\ No newline at end of file
+
diff --git a/src/Main/Base/Project/Src/Commands/BuildCommands.cs b/src/Main/Base/Project/Src/Commands/BuildCommands.cs
index c6acca63dd..0e0e04757e 100644
--- a/src/Main/Base/Project/Src/Commands/BuildCommands.cs
+++ b/src/Main/Base/Project/Src/Commands/BuildCommands.cs
@@ -203,7 +203,19 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{
ToolStripMenuItem item = (ToolStripMenuItem)sender;
ProjectService.OpenSolution.Preferences.ActiveConfiguration = item.Text;
- ProjectService.OpenSolution.ApplySolutionConfigurationToProjects();
+ ProjectService.OpenSolution.ApplySolutionConfigurationAndPlatformToProjects();
+ }
+ }
+
+ public class EditConfigurationsCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ using (SolutionConfigurationEditor sce = new SolutionConfigurationEditor()) {
+ sce.ShowDialog();
+ ProjectService.OpenSolution.Save();
+ ProjectService.OpenSolution.ApplySolutionConfigurationAndPlatformToProjects();
+ }
}
}
}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs
deleted file mode 100644
index a92fdeac6b..0000000000
--- a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineConfigurationPanel.cs
+++ /dev/null
@@ -1,336 +0,0 @@
-////
-////
-////
-////
-////
-////
-//using System;
-//using System.Collections;
-//using System.ComponentModel;
-//using System.Drawing;
-//using System.Windows.Forms;
-//
-//using ICSharpCode.SharpDevelop.Project;
-//using ICSharpCode.Core;
-//using ICSharpCode.Core;
-//using ICSharpCode.Core;
-//
-//namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
-//{
-// ///
-// /// Summary description for UserControl3.
-// ///
-// public class CombineConfigurationPanel : AbstractOptionPanel
-// {
-// private System.Windows.Forms.Label label2;
-// private System.Windows.Forms.ComboBox comboBox1;
-// private System.Windows.Forms.Button button4;
-// private System.Windows.Forms.GroupBox groupBox1;
-// private System.Windows.Forms.CheckBox checkBox1;
-// private System.Windows.Forms.ComboBox actioncomboBox;
-// private System.Windows.Forms.ListView entrylistView;
-// private System.Windows.Forms.Label label1;
-// private System.Windows.Forms.ColumnHeader columnHeader1;
-// private System.Windows.Forms.ColumnHeader columnHeader2;
-// private System.Windows.Forms.ColumnHeader columnHeader3;
-// ///
-// /// Required designer variable.
-// ///
-// private System.ComponentModel.Container components = null;
-//
-//
-//
-// Solution combine;
-//
-// void SetValues(object sender, EventArgs e)
-// {
-// this.combine = (Combine)((Properties)CustomizationObject).Get("Combine");
-// checkBox1.CheckedChanged += new EventHandler(OptionsChanged);
-// actioncomboBox.SelectedIndexChanged += new EventHandler(OptionsChanged);
-// entrylistView.SelectedIndexChanged += new EventHandler(SelectEntry);
-// button4.Click += new EventHandler(StartConfigurationManager);
-//
-// InitializeConfigurationComboBox();
-// InitializeEntryListView(null, null);
-// }
-//
-// public override bool ReceiveDialogMessage(DialogMessage message)
-// {
-// if (message == DialogMessage.OK) {
-//
-// }
-// // TODO
-//// foreach (ListViewItem item in entrylistView.Items) {
-//// CombineConfiguration.Config config = combine.ActiveConfiguration.GetConfiguration(item.Text);
-//// config.Build = Boolean.Parse(item.SubItems[1]);
-//// config.ConfigurationName = Boolean.Parse(item.SubItems[0]);
-//// }
-// return true;
-// }
-//
-// public CombineConfigurationPanel()
-// {
-// // This call is required by the Windows.Forms Form Designer.
-// InitializeComponent();
-//
-// CustomizationObjectChanged += new EventHandler(SetValues);
-// }
-//
-// void StartConfigurationManager(object sender, EventArgs e)
-// {
-// new ConfigurationManager().ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
-// }
-// void OptionsChanged(object sender, EventArgs e)
-// {
-// if (entrylistView.SelectedItems == null ||
-// entrylistView.SelectedItems.Count == 0)
-// return;
-// ListViewItem item = entrylistView.SelectedItems[0];
-// if (item == null || item.SubItems.Count < 3)
-// return;
-// item.SubItems[2].Text = checkBox1.Checked.ToString();
-// item.SubItems[1].Text = actioncomboBox.SelectedItem.ToString();
-// }
-//
-// void SelectEntry(object sender, EventArgs e)
-// {
-// actioncomboBox.Items.Clear();
-// if (entrylistView.SelectedItems.Count == 0) {
-// actioncomboBox.Enabled = checkBox1.Enabled = false;
-// return;
-// }
-// actioncomboBox.Enabled = checkBox1.Enabled = true;
-//
-// ListViewItem item = entrylistView.SelectedItems[0];
-//
-// CombineConfiguration.Config config = null;
-// if (comboBox1.SelectedIndex == 0)
-// config = combine.ActiveConfiguration.GetConfiguration(combine.GetEntryNumber(item.Text));
-// else
-// config = ((CombineConfiguration)combine.Configurations[comboBox1.SelectedItem.ToString()]).GetConfiguration(combine.GetEntryNumber(item.Text));
-//
-// checkBox1.Checked = Boolean.Parse(item.SubItems[2].Text);
-//
-// CombineEntry entry = (CombineEntry)combine.Entries[combine.GetEntryNumber(item.Text)];
-// int index = 0;
-// if (entry.Entry is IProject) {
-// IProject subproject = (IProject)entry.Entry;
-// for (int i = 0; i < subproject.Configurations.Count; ++i) {
-// string name = ((IConfiguration)subproject.Configurations[i]).Name;
-// if (name == item.SubItems[1].Text)
-// index = i;
-// actioncomboBox.Items.Add(name);
-// }
-//
-// } else {
-// Combine subcombine = (Combine)entry.Entry;
-//
-// for (int i = 0; i < subcombine.Configurations.Count; ++i) {
-// string name = ((CombineConfiguration)subcombine.Configurations[i]).Name;
-// if (name == item.SubItems[1].Text)
-// index = i;
-// actioncomboBox.Items.Add(name);
-// }
-// }
-// actioncomboBox.SelectedIndex = index;
-// }
-//
-// void InitializeEntryListView(object sender, EventArgs e)
-// {
-// entrylistView.BeginUpdate();
-// entrylistView.Items.Clear();
-// foreach (CombineEntry entry in combine.Entries) {
-// CombineConfiguration.Config config = combine.ActiveConfiguration.GetConfiguration(combine.GetEntryNumber(entry.Name));
-// entrylistView.Items.Add(new ListViewItem(new string[] {
-// entry.Name,
-// config.ConfigurationName,
-// config.Build.ToString()
-// }));
-// }
-// entrylistView.EndUpdate();
-// }
-//
-// void InitializeConfigurationComboBox()
-// {
-// if (combine.ActiveConfiguration != null) {
-// comboBox1.Items.Add("Active(" + combine.ActiveConfiguration.Name +")");
-// } else {
-// comboBox1.Items.Add("No active");
-// }
-// foreach (DictionaryEntry dentry in combine.Configurations) {
-// CombineConfiguration cconf = (CombineConfiguration)dentry.Value;
-// comboBox1.Items.Add(cconf.Name);
-// }
-// comboBox1.SelectedIndex = 0;
-// comboBox1.SelectedIndexChanged += new EventHandler(InitializeEntryListView);
-// }
-//
-// ///
-// /// Clean up any resources being used.
-// ///
-// protected override void Dispose(bool disposing)
-// {
-// if (disposing) {
-// if (components != null){
-// components.Dispose();
-// }
-// }
-// base.Dispose(disposing);
-// }
-//
-// #region Component Designer generated code
-// ///
-// /// Required method for Designer support - do not modify
-// /// the contents of this method with the code editor.
-// ///
-// private void InitializeComponent()
-// {
-//
-// bool flat = true;
-// this.label2 = new System.Windows.Forms.Label();
-// this.comboBox1 = new System.Windows.Forms.ComboBox();
-// this.button4 = new System.Windows.Forms.Button();
-// this.groupBox1 = new System.Windows.Forms.GroupBox();
-// this.checkBox1 = new System.Windows.Forms.CheckBox();
-// this.actioncomboBox = new System.Windows.Forms.ComboBox();
-// this.entrylistView = new System.Windows.Forms.ListView();
-// this.label1 = new System.Windows.Forms.Label();
-// this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
-// this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
-// this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
-// this.groupBox1.SuspendLayout();
-// this.SuspendLayout();
-// //
-// // label2
-// //
-// this.label2.Location = new System.Drawing.Point(16, 8);
-// this.label2.Name = "label2";
-// this.label2.Size = new System.Drawing.Size(168, 16);
-// this.label2.TabIndex = 0;
-// this.label2.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.CombineConfigLabel");
-//
-// //
-// // comboBox1
-// //
-// this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-// this.comboBox1.DropDownWidth = 176;
-// this.comboBox1.Location = new System.Drawing.Point(16, 24);
-// this.comboBox1.Name = "comboBox1";
-// this.comboBox1.Size = new System.Drawing.Size(224, 21);
-// this.comboBox1.TabIndex = 1;
-// //
-// // button4
-// //
-// this.button4.Location = new System.Drawing.Point(248, 24);
-// this.button4.Name = "button4";
-// this.button4.Size = new System.Drawing.Size(136, 23);
-// this.button4.TabIndex = 8;
-// this.button4.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.ConfigurationManagerButton");
-// button4.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // groupBox1
-// //
-// this.groupBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-// | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
-// this.checkBox1,
-// this.actioncomboBox,
-// this.entrylistView,
-// this.label1});
-// this.groupBox1.Location = new System.Drawing.Point(8, 56);
-// this.groupBox1.Name = "groupBox1";
-// this.groupBox1.Size = new System.Drawing.Size(432, 272);
-// this.groupBox1.TabIndex = 9;
-// this.groupBox1.TabStop = false;
-// this.groupBox1.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntriesGroupBox");
-// groupBox1.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // checkBox1
-// //
-// this.checkBox1.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-// this.checkBox1.Location = new System.Drawing.Point(232, 248);
-// this.checkBox1.Name = "checkBox1";
-// this.checkBox1.Size = new System.Drawing.Size(128, 16);
-// this.checkBox1.TabIndex = 7;
-// this.checkBox1.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.BuildCheckBox");
-// checkBox1.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // actioncomboBox
-// //
-// this.actioncomboBox.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-// this.actioncomboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-// this.actioncomboBox.DropDownWidth = 168;
-// this.actioncomboBox.Location = new System.Drawing.Point(8, 248);
-// this.actioncomboBox.Name = "actioncomboBox";
-// this.actioncomboBox.Size = new System.Drawing.Size(216, 21);
-// this.actioncomboBox.TabIndex = 5;
-//
-// //
-// // entrylistView
-// //
-// this.entrylistView.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-// | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.entrylistView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-// this.columnHeader1,
-// this.columnHeader2,
-// this.columnHeader3});
-// this.entrylistView.FullRowSelect = true;
-// this.entrylistView.GridLines = true;
-// this.entrylistView.HideSelection = false;
-// this.entrylistView.Location = new System.Drawing.Point(8, 16);
-// this.entrylistView.MultiSelect = false;
-// this.entrylistView.Name = "entrylistView";
-// this.entrylistView.Size = new System.Drawing.Size(416, 208);
-// this.entrylistView.TabIndex = 6;
-// this.entrylistView.View = System.Windows.Forms.View.Details;
-// entrylistView.BorderStyle = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-//
-// //
-// // label1
-// //
-// this.label1.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
-// this.label1.Location = new System.Drawing.Point(8, 232);
-// this.label1.Name = "label1";
-// this.label1.Size = new System.Drawing.Size(176, 16);
-// this.label1.TabIndex = 4;
-// this.label1.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntryConfigurationLabel");
-//
-// //
-// // columnHeader1
-// //
-// this.columnHeader1.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.EntryColumnHeader");
-// this.columnHeader1.Width = 242;
-//
-// //
-// // columnHeader2
-// //
-// this.columnHeader2.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.ConfigurationColumnHeader");
-// this.columnHeader2.Width = 109;
-//
-// //
-// // columnHeader3
-// //
-// this.columnHeader3.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Configurations.BuildColumnHeader");
-//
-// //
-// // UserControl3
-// //
-// this.Controls.AddRange(new System.Windows.Forms.Control[] {this.groupBox1,
-// this.label2,
-// this.comboBox1,
-// this.button4});
-// this.Name = "UserControl3";
-// this.Size = new System.Drawing.Size(448, 336);
-// this.groupBox1.ResumeLayout(false);
-// this.ResumeLayout(false);
-//
-// }
-// #endregion
-// }
-//}
-//
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineDependencyPanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineDependencyPanel.cs
deleted file mode 100644
index cd8ba0f81a..0000000000
--- a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineDependencyPanel.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-////
-////
-////
-////
-////
-////
-//
-//using System;
-//using System.Collections;
-//using System.ComponentModel;
-//using System.Drawing;
-//using System.Windows.Forms;
-//
-//using ICSharpCode.Core;
-//using ICSharpCode.Core;
-//using ICSharpCode.SharpDevelop.Project;
-//using ICSharpCode.Core;
-//
-//namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
-//{
-// ///
-// /// Summary description for UserControl2.
-// ///
-// public class CombineDependencyPanel : AbstractOptionPanel
-// {
-// private System.Windows.Forms.Label label1;
-// private System.Windows.Forms.ComboBox comboBox1;
-// private System.Windows.Forms.CheckedListBox checkedListBox1;
-// private System.Windows.Forms.Label label2;
-// ///
-// /// Required designer variable.
-// ///
-// private System.ComponentModel.Container components = null;
-//
-// Solution combine;
-//
-//
-//
-//
-// public override bool ReceiveDialogMessage(DialogMessage message)
-// {
-// if (message == DialogMessage.OK) {
-// // TODO : Project dependency accept
-// }
-// return true;
-// }
-//
-// void FillCheckListBox(object sender, EventArgs e)
-// {
-// checkedListBox1.Items.Clear();
-//
-// foreach (CombineEntry entry in combine.Entries) {
-// if (entry.Name != comboBox1.SelectedItem.ToString()) {
-// checkedListBox1.Items.Add(entry.Name);
-// }
-// }
-// }
-//
-// void SetValues(object sender, EventArgs e)
-// {
-// this.combine = (Combine)((Properties)CustomizationObject).Get("Combine");
-//
-// foreach (CombineEntry entry in combine.Entries)
-// comboBox1.Items.Add(entry.Name);
-//
-// if (comboBox1.Items.Count > 0) {
-// comboBox1.SelectedIndex = 0;
-// }
-//
-// FillCheckListBox(null, null);
-// }
-//
-// public CombineDependencyPanel()
-// {
-// // This call is required by the Windows.Forms Form Designer.
-// InitializeComponent();
-// CustomizationObjectChanged += new EventHandler(SetValues);
-// }
-//
-// ///
-// /// Clean up any resources being used.
-// ///
-// protected override void Dispose(bool disposing)
-// {
-// if (disposing) {
-// if (components != null){
-// components.Dispose();
-// }
-// }
-// base.Dispose(disposing);
-// }
-//
-// #region Windows Form Designer generated code
-// ///
-// /// Required method for Designer support - do not modify
-// /// the contents of this method with the code editor.
-// ///
-// private void InitializeComponent()
-// {
-// bool flat = true;
-// this.label1 = new System.Windows.Forms.Label();
-//
-// this.comboBox1 = new System.Windows.Forms.ComboBox();
-// this.checkedListBox1 = new System.Windows.Forms.CheckedListBox();
-// this.label2 = new System.Windows.Forms.Label();
-// this.SuspendLayout();
-// //
-// // label1
-// //
-// this.label1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.label1.Location = new System.Drawing.Point(8, 8);
-// this.label1.Name = "label1";
-// this.label1.Size = new System.Drawing.Size(304, 16);
-// this.label1.TabIndex = 0;
-// this.label1.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Dependencies.EntryLabel");
-// //
-// // comboBox1
-// //
-// this.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.comboBox1.DropDownWidth = 304;
-// this.comboBox1.Location = new System.Drawing.Point(8, 24);
-// this.comboBox1.Name = "comboBox1";
-// this.comboBox1.Size = new System.Drawing.Size(304, 21);
-// this.comboBox1.TabIndex = 1;
-// this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
-// comboBox1.SelectedIndexChanged += new EventHandler(FillCheckListBox);
-//
-// //
-// // checkedListBox1
-// //
-// this.checkedListBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-// | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.checkedListBox1.Location = new System.Drawing.Point(8, 72);
-// this.checkedListBox1.Name = "checkedListBox1";
-// this.checkedListBox1.Size = new System.Drawing.Size(304, 214);
-// this.checkedListBox1.TabIndex = 2;
-// checkedListBox1.BorderStyle = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-//
-// //
-// // label2
-// //
-// this.label2.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-// | System.Windows.Forms.AnchorStyles.Right);
-// this.label2.Location = new System.Drawing.Point(8, 56);
-// this.label2.Name = "label2";
-// this.label2.Size = new System.Drawing.Size(304, 16);
-// this.label2.TabIndex = 3;
-// this.label2.Text = ResourceService.GetString("Dialog.Options.CombineOptions.Dependencies.DependsOnLabel");
-// //
-// // Form10
-// //
-// this.ClientSize = new System.Drawing.Size(320, 293);
-// this.Controls.AddRange(new System.Windows.Forms.Control[] {this.label2,
-// this.checkedListBox1,
-// this.comboBox1,
-// this.label1});
-// this.Name = "Form10";
-// this.Text = "Form10";
-// this.ResumeLayout(false);
-//
-// }
-// #endregion
-// }
-//}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineStartupPanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineStartupPanel.cs
deleted file mode 100644
index 04910b4ee3..0000000000
--- a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/CombineStartupPanel.cs
+++ /dev/null
@@ -1,184 +0,0 @@
-////
-////
-////
-////
-////
-////
-//using System;
-//using System.Collections;
-//using System.ComponentModel;
-//using System.Drawing;
-//using System.Windows.Forms;
-//using ICSharpCode.Core;
-//
-//using ICSharpCode.Core;
-//using ICSharpCode.Core;
-//using ICSharpCode.SharpDevelop.Project;
-//
-//namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
-//{
-// public class CombineStartupPanel : AbstractOptionPanel
-// {
-// static
-// static
-//
-// Solution combine;
-//
-// public override bool ReceiveDialogMessage(DialogMessage message)
-// {
-// if (message == DialogMessage.OK) {
-// // write back singlestartup project
-// combine.SingleStartProjectName = ((ComboBox)ControlDictionary["singleComboBox"]).Text;
-// combine.SingleStartupProject = ((RadioButton)ControlDictionary["singleRadioButton"]).Checked;
-//
-// // write back new combine execute definitions
-// combine.CombineExecuteDefinitions.Clear();
-// foreach (ListViewItem item in ((ListView)ControlDictionary["entryListView"]).Items) {
-// EntryExecuteType type = EntryExecuteType.None;
-// if (item.SubItems[1].Text == ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.Execute")) {
-// type = EntryExecuteType.Execute;
-// }
-// combine.CombineExecuteDefinitions.Add(new CombineExecuteDefinition(
-// combine.GetEntry(item.Text),
-// type
-// ));
-// }
-// }
-// return true;
-// }
-//
-// void SetValues(object sender, EventArgs e)
-// {
-// this.combine = (Combine)((Properties)CustomizationObject).Get("Combine");
-//
-// ((RadioButton)ControlDictionary["singleRadioButton"]).Checked = combine.SingleStartupProject;
-// ((RadioButton)ControlDictionary["multipleRadioButton"]).Checked = !combine.SingleStartupProject;
-//
-// foreach (CombineEntry entry in combine.Entries) {
-// ((ComboBox)ControlDictionary["singleComboBox"]).Items.Add(entry.Name);
-// }
-//
-// ((ComboBox)ControlDictionary["singleComboBox"]).SelectedIndex = combine.GetEntryNumber(combine.SingleStartProjectName);
-//
-// ((RadioButton)ControlDictionary["singleRadioButton"]).CheckedChanged += new EventHandler(CheckedChanged);
-//
-// ((ListView)ControlDictionary["entryListView"]).SelectedIndexChanged += new EventHandler(SelectedEntryChanged);
-// ((ComboBox)ControlDictionary["actionComboBox"]).SelectedIndexChanged += new EventHandler(OptionsChanged);
-//
-// ListViewItem item;
-// CombineExecuteDefinition edef;
-// for (int n = 0; n < combine.CombineExecuteDefinitions.Count; n++) {
-// edef = (CombineExecuteDefinition)combine.CombineExecuteDefinitions[n];
-// item = new ListViewItem(new string[] {
-// edef.Entry.Name,
-// edef.Type == EntryExecuteType.None ? ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.None") : ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.Execute")
-// });
-// item.Tag = edef;
-// ((ListView)ControlDictionary["entryListView"]).Items.Add(item);
-// }
-// ((Button)ControlDictionary["moveUpButton"]).Click += new EventHandler(OnClickMoveUpButton);
-// ((Button)ControlDictionary["moveDownButton"]).Click += new EventHandler(OnClickMoveDownButtn);
-// CheckedChanged(null, null);
-// }
-//
-// protected void OnClickMoveUpButton(object sender, EventArgs e)
-// {
-// ListView.SelectedIndexCollection indexs = ((ListView)ControlDictionary["entryListView"]).SelectedIndices;
-// if (indexs.Count == 0) {
-// return;
-// }
-// int index = indexs[0];
-// if (index == 0) {
-// return;
-// }
-//
-// ((ListView)ControlDictionary["entryListView"]).BeginUpdate();
-// ListViewItem item = ((ListView)ControlDictionary["entryListView"]).Items[index - 1];
-// ((ListView)ControlDictionary["entryListView"]).Items.Remove(item);
-// ((ListView)ControlDictionary["entryListView"]).Items.Insert(index, item);
-// ((ListView)ControlDictionary["entryListView"]).EndUpdate();
-//
-// combine.CombineExecuteDefinitions.Remove(item.Tag);
-// combine.CombineExecuteDefinitions.Insert(index, item.Tag);
-// }
-//
-// protected void OnClickMoveDownButtn(object sender, EventArgs e)
-// {
-// ListView.SelectedIndexCollection indexs = ((ListView)ControlDictionary["entryListView"]).SelectedIndices;
-// if (indexs.Count == 0) {
-// return;
-// }
-// int index = indexs[0];
-// if (index >= (((ListView)ControlDictionary["entryListView"]).Items.Count - 1)) {
-// return;
-// }
-// ((ListView)ControlDictionary["entryListView"]).BeginUpdate();
-// ListViewItem item = ((ListView)ControlDictionary["entryListView"]).Items[index + 1];
-// ((ListView)ControlDictionary["entryListView"]).Items.Remove(item);
-// ((ListView)ControlDictionary["entryListView"]).Items.Insert(index, item);
-// ((ListView)ControlDictionary["entryListView"]).EndUpdate();
-//
-// combine.CombineExecuteDefinitions.Remove(item.Tag);
-// combine.CombineExecuteDefinitions.Insert(index, item.Tag);
-// }
-//
-// public CombineStartupPanel()
-// {
-// SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.CombineStartupPanel.xfrm"));
-//
-// CustomizationObjectChanged += new EventHandler(SetValues);
-// }
-//
-// void CheckedChanged(object sender, EventArgs e)
-// {
-// ((Button)ControlDictionary["moveUpButton"]).Enabled = ((RadioButton)ControlDictionary["multipleRadioButton"]).Checked;
-// ((Button)ControlDictionary["moveDownButton"]).Enabled = ((RadioButton)ControlDictionary["multipleRadioButton"]).Checked;
-// ((ListView)ControlDictionary["entryListView"]).Enabled = ((RadioButton)ControlDictionary["multipleRadioButton"]).Checked;
-// ((ComboBox)ControlDictionary["actionComboBox"]).Enabled = ((RadioButton)ControlDictionary["multipleRadioButton"]).Checked;
-//
-// ((ComboBox)ControlDictionary["singleComboBox"]).Enabled = ((RadioButton)ControlDictionary["singleRadioButton"]).Checked;
-// }
-//
-// void OptionsChanged(object sender, EventArgs e)
-// {
-// if (((ListView)ControlDictionary["entryListView"]).SelectedItems == null ||
-// ((ListView)ControlDictionary["entryListView"]).SelectedItems.Count == 0)
-// return;
-// ListViewItem item = ((ListView)ControlDictionary["entryListView"]).SelectedItems[0];
-// item.SubItems[1].Text = ((ComboBox)ControlDictionary["actionComboBox"]).SelectedItem.ToString();
-//
-// int index = ((ListView)ControlDictionary["entryListView"]).SelectedIndices[0];
-// CombineExecuteDefinition edef = (CombineExecuteDefinition)combine.CombineExecuteDefinitions[index];
-//
-// switch (((ComboBox)ControlDictionary["actionComboBox"]).SelectedIndex) {
-// case 0:
-// edef.Type = EntryExecuteType.None;
-// break;
-// case 1:
-// edef.Type = EntryExecuteType.Execute;
-// break;
-// default:
-// break;
-// }
-// }
-//
-// void SelectedEntryChanged(object sender, EventArgs e)
-// {
-// if (((ListView)ControlDictionary["entryListView"]).SelectedItems == null ||
-// ((ListView)ControlDictionary["entryListView"]).SelectedItems.Count == 0)
-// return;
-// ListViewItem item = ((ListView)ControlDictionary["entryListView"]).SelectedItems[0];
-// string txt = item.SubItems[1].Text;
-// ((ComboBox)ControlDictionary["actionComboBox"]).Items.Clear();
-// ((ComboBox)ControlDictionary["actionComboBox"]).Items.Add(ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.None"));
-// ((ComboBox)ControlDictionary["actionComboBox"]).Items.Add(ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.Execute"));
-//
-// if (txt == ResourceService.GetString("Dialog.Options.CombineOptions.Startup.Action.None")) {
-// ((ComboBox)ControlDictionary["actionComboBox"]).SelectedIndex = 0;
-// } else {
-// ((ComboBox)ControlDictionary["actionComboBox"]).SelectedIndex = 1;
-// }
-// }
-// }
-//}
-//
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/ConfigurationManager.cs b/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/ConfigurationManager.cs
deleted file mode 100644
index 46acaab173..0000000000
--- a/src/Main/Base/Project/Src/Gui/Dialogs/CombineConfiguration/ConfigurationManager.cs
+++ /dev/null
@@ -1,303 +0,0 @@
-////
-////
-////
-////
-////
-////
-//using System;
-//using System.Drawing;
-//using System.Collections;
-//using System.ComponentModel;
-//using System.Windows.Forms;
-//
-//using ICSharpCode.Core;
-//using ICSharpCode.Core;
-//
-//namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
-//{
-// ///
-// /// Summary description for Form2.
-// ///
-// public class ConfigurationManager : System.Windows.Forms.Form
-// {
-// private System.Windows.Forms.TreeView treeView1;
-// private System.Windows.Forms.Label label1;
-// private System.Windows.Forms.Label label2;
-// private System.Windows.Forms.ComboBox comboBox1;
-// private System.Windows.Forms.Label label3;
-// private System.Windows.Forms.Button okButton;
-// private System.Windows.Forms.Button cancelButton;
-// private System.Windows.Forms.Button helpButton;
-// private System.Windows.Forms.GroupBox groupBox1;
-// private System.Windows.Forms.ComboBox comboBox2;
-// private System.Windows.Forms.Label label4;
-// private System.Windows.Forms.Label label5;
-// private System.Windows.Forms.TextBox textBox1;
-// private System.Windows.Forms.Button createButton;
-// private System.Windows.Forms.Button removeButton;
-// private System.Windows.Forms.Button renameButton;
-// ///
-// /// Required designer variable.
-// ///
-// private System.ComponentModel.Container components = null;
-//
-//
-// public ConfigurationManager()
-// {
-// //
-// // Required for Windows Form Designer support
-// //
-// InitializeComponent();
-//
-// //
-// // TODO: Add any constructor code after InitializeComponent call
-// //
-// }
-//
-// ///
-// /// Clean up any resources being used.
-// ///
-// protected override void Dispose(bool disposing)
-// {
-// if (disposing) {
-// if (components != null){
-// components.Dispose();
-// }
-// }
-// base.Dispose(disposing);
-// }
-//
-// #region Windows Form Designer generated code
-// ///
-// /// Required method for Designer support - do not modify
-// /// the contents of this method with the code editor.
-// ///
-// private void InitializeComponent()
-// {
-// bool flat = true;
-//
-// this.treeView1 = new System.Windows.Forms.TreeView();
-// this.label1 = new System.Windows.Forms.Label();
-// this.label2 = new System.Windows.Forms.Label();
-// this.comboBox1 = new System.Windows.Forms.ComboBox();
-// this.label3 = new System.Windows.Forms.Label();
-// this.okButton = new System.Windows.Forms.Button();
-// this.cancelButton = new System.Windows.Forms.Button();
-// this.helpButton = new System.Windows.Forms.Button();
-// this.groupBox1 = new System.Windows.Forms.GroupBox();
-// this.comboBox2 = new System.Windows.Forms.ComboBox();
-// this.label4 = new System.Windows.Forms.Label();
-// this.label5 = new System.Windows.Forms.Label();
-// this.textBox1 = new System.Windows.Forms.TextBox();
-// this.createButton = new System.Windows.Forms.Button();
-// this.removeButton = new System.Windows.Forms.Button();
-// this.renameButton = new System.Windows.Forms.Button();
-// this.groupBox1.SuspendLayout();
-// this.SuspendLayout();
-// //
-// // treeView1
-// //
-// this.treeView1.ImageIndex = -1;
-// this.treeView1.Location = new System.Drawing.Point(8, 24);
-// this.treeView1.Name = "treeView1";
-// this.treeView1.SelectedImageIndex = -1;
-// this.treeView1.Size = new System.Drawing.Size(200, 240);
-// this.treeView1.TabIndex = 0;
-// treeView1.BorderStyle = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-//
-// //
-// // label1
-// //
-// this.label1.Location = new System.Drawing.Point(8, 8);
-// this.label1.Name = "label1";
-// this.label1.Size = new System.Drawing.Size(88, 16);
-// this.label1.TabIndex = 1;
-// this.label1.Text = "Entries:";
-// //
-// // label2
-// //
-// this.label2.Location = new System.Drawing.Point(216, 24);
-// this.label2.Name = "label2";
-// this.label2.Size = new System.Drawing.Size(88, 16);
-// this.label2.TabIndex = 2;
-// this.label2.Text = "Configuration";
-// //
-// // comboBox1
-// //
-// this.comboBox1.DropDownWidth = 264;
-// this.comboBox1.Location = new System.Drawing.Point(216, 40);
-// this.comboBox1.Name = "comboBox1";
-// this.comboBox1.Size = new System.Drawing.Size(264, 21);
-// this.comboBox1.TabIndex = 3;
-// //
-// // label3
-// //
-// label3.BorderStyle = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-// this.label3.Location = new System.Drawing.Point(216, 264);
-// this.label3.Name = "label3";
-// this.label3.Size = new System.Drawing.Size(272, 2);
-// this.label3.TabIndex = 4;
-// //
-// // okButton
-// //
-// this.okButton.Location = new System.Drawing.Point(256, 272);
-// this.okButton.Name = "okButton";
-// this.okButton.Size = new System.Drawing.Size(74, 23);
-// this.okButton.TabIndex = 5;
-// this.okButton.Text = "OK";
-// this.okButton.Click += new System.EventHandler(this.button1_Click);
-// okButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-// //
-// // cancelButton
-// //
-// this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-// this.cancelButton.Location = new System.Drawing.Point(336, 272);
-// this.cancelButton.Name = "cancelButton";
-// this.cancelButton.Size = new System.Drawing.Size(74, 23);
-// this.cancelButton.TabIndex = 6;
-// this.cancelButton.Text = "Cancel";
-// this.cancelButton.Click += new System.EventHandler(this.button2_Click);
-// cancelButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // helpButton
-// //
-// this.helpButton.Location = new System.Drawing.Point(416, 272);
-// this.helpButton.Name = "helpButton";
-// this.helpButton.Size = new System.Drawing.Size(74, 23);
-// this.helpButton.TabIndex = 7;
-// this.helpButton.Text = "Help";
-// this.helpButton.Click += new System.EventHandler(this.button3_Click);
-// helpButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // groupBox1
-// //
-// this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
-// this.createButton,
-// this.textBox1,
-// this.label5,
-// this.comboBox2,
-// this.label4});
-// this.groupBox1.Location = new System.Drawing.Point(216, 104);
-// this.groupBox1.Name = "groupBox1";
-// this.groupBox1.Size = new System.Drawing.Size(264, 144);
-// this.groupBox1.TabIndex = 8;
-// this.groupBox1.TabStop = false;
-// this.groupBox1.Text = "Create new Configuration";
-// groupBox1.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // comboBox2
-// //
-// this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-// this.comboBox2.DropDownWidth = 264;
-// this.comboBox2.Location = new System.Drawing.Point(8, 80);
-// this.comboBox2.Name = "comboBox2";
-// this.comboBox2.Size = new System.Drawing.Size(248, 21);
-// this.comboBox2.TabIndex = 3;
-// //
-// // label4
-// //
-// this.label4.Location = new System.Drawing.Point(8, 64);
-// this.label4.Name = "label4";
-// this.label4.Size = new System.Drawing.Size(128, 16);
-// this.label4.TabIndex = 2;
-// this.label4.Text = "Copy settings from";
-// //
-// // label5
-// //
-// this.label5.Location = new System.Drawing.Point(8, 16);
-// this.label5.Name = "label5";
-// this.label5.Size = new System.Drawing.Size(40, 16);
-// this.label5.TabIndex = 4;
-// this.label5.Text = "Name";
-// //
-// // textBox1
-// //
-// this.textBox1.Location = new System.Drawing.Point(8, 32);
-// this.textBox1.Name = "textBox1";
-// this.textBox1.Size = new System.Drawing.Size(248, 20);
-// this.textBox1.TabIndex = 5;
-// this.textBox1.Text = "";
-// textBox1.BorderStyle = flat ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
-//
-// //
-// // createButton
-// //
-// this.createButton.Location = new System.Drawing.Point(8, 112);
-// this.createButton.Name = "createButton";
-// this.createButton.TabIndex = 6;
-// this.createButton.Text = "Create";
-// createButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // removeButton
-// //
-// this.removeButton.Location = new System.Drawing.Point(216, 72);
-// this.removeButton.Name = "removeButton";
-// this.removeButton.TabIndex = 9;
-// this.removeButton.Text = "Remove";
-// removeButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // renameButton
-// //
-// this.renameButton.Location = new System.Drawing.Point(296, 72);
-// this.renameButton.Name = "renameButton";
-// this.renameButton.TabIndex = 10;
-// this.renameButton.Text = "Rename";
-// renameButton.FlatStyle = flat ? FlatStyle.Flat : FlatStyle.Standard;
-//
-// //
-// // Form2
-// //
-// this.AcceptButton = this.okButton;
-// this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-// this.CancelButton = this.cancelButton;
-// this.ClientSize = new System.Drawing.Size(498, 303);
-// this.Controls.AddRange(new System.Windows.Forms.Control[] {this.renameButton,
-// this.removeButton,
-// this.groupBox1,
-// this.helpButton,
-// this.cancelButton,
-// this.okButton,
-// this.label3,
-// this.comboBox1,
-// this.label2,
-// this.label1,
-// this.treeView1});
-// this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
-// this.MaximizeBox = false;
-// this.MinimizeBox = false;
-// this.Name = "Form2";
-// this.ShowInTaskbar = false;
-// this.Text = "Configuration Manager";
-// this.Load += new System.EventHandler(this.Form2_Load);
-// this.groupBox1.ResumeLayout(false);
-// this.ResumeLayout(false);
-//
-// }
-// #endregion
-//
-// private void button3_Click(object sender, System.EventArgs e)
-// {
-//
-// }
-//
-// private void button1_Click(object sender, System.EventArgs e)
-// {
-//
-// }
-//
-// private void Form2_Load(object sender, System.EventArgs e)
-// {
-//
-// }
-//
-// private void button2_Click(object sender, System.EventArgs e)
-// {
-//
-// }
-// }
-//}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.Designer.cs b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.Designer.cs
new file mode 100644
index 0000000000..0e4967f428
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.Designer.cs
@@ -0,0 +1,187 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace ICSharpCode.SharpDevelop.Gui
+{
+ partial class SolutionConfigurationEditor : System.Windows.Forms.Form
+ {
+ ///
+ /// Designer variable used to keep track of non-visual components.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Disposes resources used by the form.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing) {
+ if (components != null) {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ ///
+ /// This method is required for Windows Forms designer support.
+ /// Do not change the method contents inside the source code editor. The Forms designer might
+ /// not be able to load this method if it was changed manually.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.platformComboBox = new System.Windows.Forms.ComboBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.configurationComboBox = new System.Windows.Forms.ComboBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.grid = new System.Windows.Forms.DataGridView();
+ this.projectNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.configurationColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
+ this.platformColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.okButton = new System.Windows.Forms.Button();
+ this.panel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit();
+ this.panel2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.platformComboBox);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.configurationComboBox);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(504, 37);
+ this.panel1.TabIndex = 0;
+ //
+ // platformComboBox
+ //
+ this.platformComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.platformComboBox.FormattingEnabled = true;
+ this.platformComboBox.Location = new System.Drawing.Point(326, 6);
+ this.platformComboBox.Name = "platformComboBox";
+ this.platformComboBox.Size = new System.Drawing.Size(121, 21);
+ this.platformComboBox.TabIndex = 3;
+ this.platformComboBox.SelectedIndexChanged += new System.EventHandler(this.PlatformComboBoxSelectedIndexChanged);
+ //
+ // label2
+ //
+ this.label2.Location = new System.Drawing.Point(265, 9);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(64, 23);
+ this.label2.TabIndex = 2;
+ this.label2.Text = "Platform:";
+ this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // configurationComboBox
+ //
+ this.configurationComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.configurationComboBox.FormattingEnabled = true;
+ this.configurationComboBox.Location = new System.Drawing.Point(138, 6);
+ this.configurationComboBox.Name = "configurationComboBox";
+ this.configurationComboBox.Size = new System.Drawing.Size(121, 21);
+ this.configurationComboBox.TabIndex = 1;
+ this.configurationComboBox.SelectedIndexChanged += new System.EventHandler(this.ConfigurationComboBoxSelectedIndexChanged);
+ //
+ // label1
+ //
+ this.label1.Location = new System.Drawing.Point(3, 9);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(138, 23);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Solution configuration:";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // grid
+ //
+ this.grid.AllowUserToAddRows = false;
+ this.grid.AllowUserToDeleteRows = false;
+ this.grid.AllowUserToResizeRows = false;
+ this.grid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.grid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.projectNameColumn,
+ this.configurationColumn,
+ this.platformColumn});
+ this.grid.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.grid.Location = new System.Drawing.Point(0, 37);
+ this.grid.Name = "grid";
+ this.grid.Size = new System.Drawing.Size(504, 192);
+ this.grid.TabIndex = 1;
+ this.grid.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.GridCellValueChanged);
+ this.grid.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.GridDataError);
+ //
+ // projectNameColumn
+ //
+ this.projectNameColumn.HeaderText = "Project Name";
+ this.projectNameColumn.Name = "projectNameColumn";
+ this.projectNameColumn.ReadOnly = true;
+ //
+ // configurationColumn
+ //
+ this.configurationColumn.HeaderText = "Configuration";
+ this.configurationColumn.Name = "configurationColumn";
+ //
+ // platformColumn
+ //
+ this.platformColumn.HeaderText = "Platform";
+ this.platformColumn.Name = "platformColumn";
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.okButton);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel2.Location = new System.Drawing.Point(0, 229);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(504, 30);
+ this.panel2.TabIndex = 2;
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.okButton.Location = new System.Drawing.Point(417, 3);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(75, 23);
+ this.okButton.TabIndex = 0;
+ this.okButton.Text = "${res:Global.OKButtonText}";
+ this.okButton.UseVisualStyleBackColor = true;
+ //
+ // SolutionConfigurationEditor
+ //
+ this.AcceptButton = this.okButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(504, 259);
+ this.Controls.Add(this.grid);
+ this.Controls.Add(this.panel2);
+ this.Controls.Add(this.panel1);
+ this.MinimumSize = new System.Drawing.Size(457, 145);
+ this.Name = "SolutionConfigurationEditor";
+ this.Text = "Configuration Editor";
+ this.panel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit();
+ this.panel2.ResumeLayout(false);
+ this.ResumeLayout(false);
+ }
+ private System.Windows.Forms.DataGridView grid;
+ private System.Windows.Forms.ComboBox configurationComboBox;
+ private System.Windows.Forms.ComboBox platformComboBox;
+ private System.Windows.Forms.Button okButton;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.DataGridViewComboBoxColumn platformColumn;
+ private System.Windows.Forms.DataGridViewComboBoxColumn configurationColumn;
+ private System.Windows.Forms.DataGridViewTextBoxColumn projectNameColumn;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Panel panel1;
+ }
+}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.cs b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.cs
new file mode 100644
index 0000000000..15848a5393
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.cs
@@ -0,0 +1,168 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Project;
+
+namespace ICSharpCode.SharpDevelop.Gui
+{
+ public partial class SolutionConfigurationEditor
+ {
+ Solution solution;
+
+ bool inUpdate;
+ int configurationComboBoxEditIndex;
+ int platformComboBoxEditIndex;
+
+ public SolutionConfigurationEditor()
+ {
+ this.solution = ProjectService.OpenSolution;
+
+ //
+ // The InitializeComponent() call is required for Windows Forms designer support.
+ //
+ InitializeComponent();
+
+ this.Text = StringParser.Parse(this.Text);
+ label1.Text = StringParser.Parse(label1.Text);
+ label2.Text = StringParser.Parse(label2.Text);
+ okButton.Text = StringParser.Parse(okButton.Text);
+ //cancelButton.Text = StringParser.Parse(cancelButton.Text);
+
+ inUpdate = true;
+
+ SetItems(configurationComboBox.Items, solution.GetConfigurationNames());
+ SetItems(platformComboBox.Items, solution.GetPlatformNames());
+ SelectElement(configurationComboBox, solution.Preferences.ActiveConfiguration);
+ SelectElement(platformComboBox, solution.Preferences.ActivePlatform);
+
+ configurationComboBoxEditIndex = configurationComboBox.Items.Add("");
+ platformComboBoxEditIndex = platformComboBox.Items.Add("");
+
+ foreach (IProject p in solution.Projects) {
+ DataGridViewRow row = grid.Rows[grid.Rows.Add()];
+ row.Tag = p;
+ row.Cells[0].Value = p.Name;
+ }
+
+ UpdateGrid();
+ }
+
+ void SetItems(IList items, IEnumerable elements)
+ {
+ items.Clear();
+ foreach (string e in elements) items.Add(e);
+ }
+
+ void SelectElement(ComboBox box, string itemName)
+ {
+ box.SelectedIndex = box.Items.IndexOf(itemName);
+ }
+ void SelectElement(DataGridViewComboBoxCell box, string itemName)
+ {
+ if (box.Items.IndexOf(itemName) == -1) {
+ if (itemName == "Any CPU" && box.Items.IndexOf("AnyCPU") >= 0) {
+ box.Value = "AnyCPU";
+ } else {
+ box.Value = box.Items[0];
+ }
+ } else {
+ box.Value = itemName;
+ }
+ }
+
+ void UpdateGrid()
+ {
+ inUpdate = true;
+
+ Dictionary matchingDict =
+ new Dictionary();
+ foreach (Solution.ProjectConfigurationPlatformMatching matching in
+ solution.GetActiveConfigurationsAndPlatformsForProjects(configurationComboBox.Text,
+ platformComboBox.Text))
+ {
+ matchingDict[matching.Project] = matching;
+ }
+
+ foreach (DataGridViewRow row in grid.Rows) {
+ IProject p = (IProject)row.Tag;
+
+ Solution.ProjectConfigurationPlatformMatching matching;
+ if (!matchingDict.TryGetValue(p, out matching)) {
+ matching = new Solution.ProjectConfigurationPlatformMatching(p, p.Configuration, p.Platform, null);
+ }
+ DataGridViewComboBoxCell c1 = (DataGridViewComboBoxCell)row.Cells[1];
+ c1.Tag = matching;
+ SetItems(c1.Items, p.GetConfigurationNames());
+ SelectElement(c1, matching.Configuration);
+
+ DataGridViewComboBoxCell c2 = (DataGridViewComboBoxCell)row.Cells[2];
+ c2.Tag = matching;
+ SetItems(c2.Items, p.GetPlatformNames());
+ SelectElement(c2, matching.Platform);
+ }
+ inUpdate = false;
+ }
+
+ void ConfigurationComboBoxSelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (!inUpdate) {
+ inUpdate = true;
+ if (configurationComboBox.SelectedIndex == configurationComboBoxEditIndex) {
+ MessageBox.Show("Edit configurations: Feature not implemented yet.");
+ SelectElement(configurationComboBox, solution.Preferences.ActiveConfiguration);
+ }
+ UpdateGrid();
+ }
+ }
+
+ void PlatformComboBoxSelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (!inUpdate) {
+ inUpdate = true;
+ if (platformComboBox.SelectedIndex == platformComboBoxEditIndex) {
+ MessageBox.Show("Edit platforms: Feature not implemented yet.");
+ SelectElement(platformComboBox, solution.Preferences.ActivePlatform);
+ }
+ UpdateGrid();
+ }
+ }
+
+ void GridDataError(object sender, DataGridViewDataErrorEventArgs e)
+ {
+ e.ThrowException = true;
+ }
+
+ void GridCellValueChanged(object sender, DataGridViewCellEventArgs e)
+ {
+ if (!inUpdate && e.RowIndex >= 0) {
+ DataGridViewRow row = grid.Rows[e.RowIndex];
+ DataGridViewCell cell = row.Cells[e.ColumnIndex];
+ Solution.ProjectConfigurationPlatformMatching matching = cell.Tag as Solution.ProjectConfigurationPlatformMatching;
+ if (matching != null) {
+ if (e.ColumnIndex == configurationColumn.Index) {
+ matching.Configuration = cell.Value.ToString();
+ } else {
+ matching.Platform = cell.Value.ToString();
+ }
+
+ if (matching.SolutionItem == null) {
+ matching.SolutionItem = solution.CreateMatchingItem(configurationComboBox.Text,
+ platformComboBox.Text,
+ matching.Project);
+ }
+ matching.SolutionItem.Location = matching.Configuration + "|" + matching.Platform;
+ }
+ }
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.resx b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.resx
new file mode 100644
index 0000000000..2f667800f0
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/SolutionConfiguration/SolutionConfigurationEditor.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
\ No newline at end of file
diff --git a/src/Main/Base/Project/Src/Project/Solution/Solution.cs b/src/Main/Base/Project/Src/Project/Solution/Solution.cs
index 2e56984434..86eefb5e43 100644
--- a/src/Main/Base/Project/Src/Project/Solution/Solution.cs
+++ b/src/Main/Base/Project/Src/Project/Solution/Solution.cs
@@ -624,42 +624,68 @@ namespace ICSharpCode.SharpDevelop.Project
return platformNames;
}
- public void ApplySolutionConfigurationToProjects()
+ public void ApplySolutionConfigurationAndPlatformToProjects()
{
- ApplySolutionConfigurationAndPlatformToProjects();
+ foreach (ProjectConfigurationPlatformMatching l in
+ GetActiveConfigurationsAndPlatformsForProjects(preferences.ActiveConfiguration,
+ preferences.ActivePlatform))
+ {
+ l.Project.Configuration = l.Configuration;
+ l.Project.Platform = l.Platform;
+ }
}
- public void ApplySolutionPlatformToProjects()
+ internal class ProjectConfigurationPlatformMatching
{
- ApplySolutionConfigurationAndPlatformToProjects();
+ public readonly IProject Project;
+ public string Configuration;
+ public string Platform;
+ public SolutionItem SolutionItem;
+
+ public ProjectConfigurationPlatformMatching(IProject project, string configuration, string platform, SolutionItem solutionItem)
+ {
+ this.Project = project;
+ this.Configuration = configuration;
+ this.Platform = platform;
+ this.SolutionItem = solutionItem;
+ }
}
- public void ApplySolutionConfigurationAndPlatformToProjects()
+ internal List
+ GetActiveConfigurationsAndPlatformsForProjects(string solutionConfiguration, string solutionPlatform)
{
- string conf = preferences.ActiveConfiguration;
- string plat = preferences.ActivePlatform;
+ List results = new List();
ProjectSection prjSec = GetProjectConfigurationsSection();
- Dictionary dict = new Dictionary();
+ Dictionary dict = new Dictionary();
foreach (SolutionItem item in prjSec.Items) {
- dict[item.Name] = item.Location;
+ dict[item.Name] = item;
}
- string searchKeyPostFix = "." + conf + "|" + plat + ".Build.0";
+ string searchKeyPostFix = "." + solutionConfiguration + "|" + solutionPlatform + ".Build.0";
foreach (IProject p in Projects) {
string searchKey = p.IdGuid + searchKeyPostFix;
- string targetConfPlat;
- if (dict.TryGetValue(searchKey, out targetConfPlat)) {
+ SolutionItem solutionItem;
+ if (dict.TryGetValue(searchKey, out solutionItem)) {
+ string targetConfPlat = solutionItem.Location;
if (targetConfPlat.IndexOf('|') > 0) {
- p.Configuration = AbstractProject.GetConfigurationNameFromKey(targetConfPlat);
- p.Platform = AbstractProject.GetPlatformNameFromKey(targetConfPlat);
+ string conf = AbstractProject.GetConfigurationNameFromKey(targetConfPlat);
+ string plat = AbstractProject.GetPlatformNameFromKey(targetConfPlat);
+ results.Add(new ProjectConfigurationPlatformMatching(p, conf, plat, solutionItem));
} else {
- p.Configuration = targetConfPlat;
- p.Platform = plat;
+ results.Add(new ProjectConfigurationPlatformMatching(p, targetConfPlat, solutionPlatform, solutionItem));
}
} else {
- p.Configuration = conf;
- p.Platform = plat;
+ results.Add(new ProjectConfigurationPlatformMatching(p, solutionConfiguration, solutionPlatform, null));
}
}
+ return results;
+ }
+
+ internal SolutionItem CreateMatchingItem(string solutionConfiguration, string solutionPlatform, IProject project)
+ {
+ SolutionItem item = new SolutionItem(project.IdGuid + "." + solutionConfiguration + "|"
+ + solutionPlatform + ".Build.0", "");
+ GetProjectConfigurationsSection().Items.Add(item);
+ return item;
}
static Solution solutionBeingLoaded;