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
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs35
1 files changed, 25 insertions, 10 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs
index fd70f5f9b0..511320179f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs
@@ -122,13 +122,13 @@ namespace MonoDevelop.Ide.Gui.OptionPanels
return Environment.GetFolderPath (IntPtr.Size == 8?
Environment.SpecialFolder.ProgramFilesX86 : Environment.SpecialFolder.ProgramFiles);
}
-
+
protected virtual void OnButtonAddClicked (object sender, System.EventArgs e)
{
var dlg = new SelectFolderDialog (GettextCatalog.GetString ("Select the mono installation prefix")) {
TransientFor = this.Toplevel as Gtk.Window,
};
-
+
//set a platform-dependent default folder for the dialog if possible
if (Platform.IsWindows) {
// ProgramFilesX86 is broken on 32-bit WinXP
@@ -139,17 +139,32 @@ namespace MonoDevelop.Ide.Gui.OptionPanels
if (System.IO.Directory.Exists ("/usr"))
dlg.CurrentFolder = "/usr";
}
-
+
if (!dlg.Run ())
return;
-
- var rinfo = new MonoRuntimeInfo (dlg.SelectedFile);
- if (!rinfo.IsValidRuntime) {
- MessageService.ShowError (GettextCatalog.GetString ("Mono runtime not found"), GettextCatalog.GetString ("Please provide a valid directory prefix where mono is installed (for example, /usr)"));
- return;
+
+ var rinfo64 = new MonoRuntimeInfo (dlg.SelectedFile, true);
+ var rinfo32 = new MonoRuntimeInfo (dlg.SelectedFile, false);
+ if (rinfo64.IsValidRuntime && rinfo32.IsValidRuntime) {
+ newInfos.Add (rinfo64);
+ store.AppendValues (rinfo64.DisplayName, rinfo64);
+ newInfos.Add (rinfo32);
+ store.AppendValues (rinfo32.DisplayName, rinfo32);
+ } else if (rinfo64.IsValidRuntime) {
+ newInfos.Add (rinfo64);
+ store.AppendValues (rinfo64.DisplayName, rinfo64);
+ } else if (rinfo32.IsValidRuntime) {
+ newInfos.Add (rinfo32);
+ store.AppendValues (rinfo32.DisplayName, rinfo32);
+ } else {
+ var rinfo = new MonoRuntimeInfo (dlg.SelectedFile, null);
+ if (rinfo.IsValidRuntime) {
+ newInfos.Add (rinfo);
+ store.AppendValues (rinfo.DisplayName, rinfo);
+ } else {
+ MessageService.ShowError (GettextCatalog.GetString ("Mono runtime not found"), GettextCatalog.GetString ("Please provide a valid directory prefix where mono is installed (for example, /usr)"));
+ }
}
- newInfos.Add (rinfo);
- store.AppendValues (rinfo.DisplayName, rinfo);
}
protected virtual void OnButtonRemoveClicked (object sender, System.EventArgs e)