Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@xamarin.com>2015-12-15 18:11:44 +0300
committerMatt Ward <matt.ward@xamarin.com>2015-12-15 18:49:50 +0300
commit71e44fd02e331563f1b846e0e48ec17bac9aa3aa (patch)
tree5b8d30ad922182d7617027f46992937d69523ebc /main
parent16bbf3a32daabc9d4ddd1f7a6447c0630eec5d06 (diff)
[Ide] Show active configuration in project options dialog.
Fixed bug #11022 - Project Options should mark active configuration in configuration editing combo https://bugzilla.xamarin.com/show_bug.cgi?id=11022 The Configuration drop down box in the Project Options dialog now shows which configuration is currently active in the IDE by appending (Active) text to the combo box. This makes it clearer that changing the editing configuration would change the active configuration.
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs46
1 files changed, 38 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
index 070a3ce134..a199f98283 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
@@ -38,6 +38,8 @@ namespace MonoDevelop.Ide.Gui.Dialogs
{
MultiConfigItemOptionsDialog dialog;
Gtk.ComboBox configCombo;
+ Gtk.ListStore configListStore;
+ const int configListStoreConfigNameColumn = 1;
Gtk.ComboBox platformCombo;
List<ItemConfiguration> currentConfigs = new List<ItemConfiguration> ();
List<string> platforms = new List<string> ();
@@ -100,7 +102,11 @@ namespace MonoDevelop.Ide.Gui.Dialogs
Gtk.HBox combosBox = new Gtk.HBox (false, 6);
cbox.PackStart (combosBox, false, false, 0);
combosBox.PackStart (new Gtk.Label (GettextCatalog.GetString ("Configuration:")), false, false, 0);
- configCombo = Gtk.ComboBox.NewText ();
+ configListStore = new Gtk.ListStore (typeof(string), typeof(string));
+ configCombo = new Gtk.ComboBox (configListStore);
+ var cell = new Gtk.CellRendererText ();
+ configCombo.PackStart (cell, true);
+ configCombo.AddAttribute (cell, "text", 0);
combosBox.PackStart (configCombo, false, false, 0);
combosBox.PackStart (new Gtk.Label (GettextCatalog.GetString ("Platform:")), false, false, 0);
platformCombo = Gtk.ComboBox.NewText ();
@@ -150,19 +156,34 @@ namespace MonoDevelop.Ide.Gui.Dialogs
void FillConfigurations ()
{
loading = true;
- ((Gtk.ListStore)configCombo.Model).Clear ();
+ configListStore.Clear ();
if (allowMixedConfigurations)
- configCombo.AppendText (GettextCatalog.GetString ("All Configurations"));
-
+ AppendComboConfig (GettextCatalog.GetString ("All Configurations"));
+
HashSet<string> configs = new HashSet<string> ();
foreach (ItemConfiguration config in FilterConfigurations (dialog.ConfigurationData.Configurations)) {
if (configs.Add (config.Name))
- configCombo.AppendText (config.Name);
+ AppendComboConfig (config.Name);
}
loading = false;
}
+
+ void AppendComboConfig (string configName)
+ {
+ bool isActive = IdeApp.Workspace.ActiveConfigurationId == configName;
+ AppendComboConfig (configName, isActive);
+ }
+
+ void AppendComboConfig (string configName, bool isActive = false)
+ {
+ string displayName = configName;
+ if (isActive)
+ displayName = configName + " " + GettextCatalog.GetString ("(Active)");
+
+ configListStore.AppendValues (displayName, configName);
+ }
protected virtual bool ConfigurationsAreEqual (IEnumerable<ItemConfiguration> configs)
{
@@ -183,7 +204,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
string configName = null;
if (!allowMixedConfigurations || configCombo.Active > 0)
- configName = configCombo.ActiveText;
+ configName = GetSelectedComboConfig ();
foreach (ItemConfiguration config in FilterConfigurations (dialog.ConfigurationData.Configurations)) {
if ((configName == null || config.Name == configName) && !platforms.Contains (config.Platform)) {
@@ -193,6 +214,15 @@ namespace MonoDevelop.Ide.Gui.Dialogs
}
loading = false;
}
+
+ string GetSelectedComboConfig ()
+ {
+ Gtk.TreeIter iter;
+ if (configCombo.GetActiveIter (out iter)) {
+ return (string)configCombo.Model.GetValue (iter, configListStoreConfigNameColumn);
+ }
+ return null;
+ }
void OnConfigChanged (object s, EventArgs a)
{
@@ -229,7 +259,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
currentConfigs.Clear ();
- string configName = dialog.CurrentConfig = configCombo.ActiveText;
+ string configName = dialog.CurrentConfig = GetSelectedComboConfig ();
if (configName == GettextCatalog.GetString ("All Configurations"))
configName = null;
@@ -290,7 +320,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
Gtk.TreeIter it;
if (configCombo.Model.GetIterFirst (out it)) {
do {
- if (config == (string) configCombo.Model.GetValue (it, 0)) {
+ if (config == (string) configCombo.Model.GetValue (it, configListStoreConfigNameColumn)) {
configCombo.SetActiveIter (it);
break;
}