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:
authorJose Miguel Torres <jostor@microsoft.com>2019-07-25 18:27:26 +0300
committerGitHub <noreply@github.com>2019-07-25 18:27:26 +0300
commitb4a2b5332741b84bcb8af627efccd1cc57637909 (patch)
treebdd54731c66d6cc6d944b8debb7023fbfddf0f8a /main/src/addins
parent8c59b16c33066c8862b44e95bde77aa01fd1ab1d (diff)
parentc6950692db6d26daf06d3d555f124e39e3dfb749 (diff)
Merge pull request #8219 from mono/Fixes-697714
[dotnetcore] Turns DotNetCoreNotInstalledDialog into a InfoBar
Diffstat (limited to 'main/src/addins')
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj2
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledInfoBar.cs (renamed from main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledDialog.cs)68
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs25
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreSdk.cs6
4 files changed, 35 insertions, 66 deletions
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
index 01aa705bac..bb1c502dc0 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.csproj
@@ -26,7 +26,7 @@
<Compile Include="MonoDevelop.DotNetCore\DotNetCorePath.cs" />
<Compile Include="MonoDevelop.DotNetCore\DotNetCoreExecutionHandler.cs" />
<Compile Include="MonoDevelop.DotNetCore.Templating\DotNetCoreProjectTemplateWizard.cs" />
- <Compile Include="MonoDevelop.DotNetCore\DotNetCoreNotInstalledDialog.cs" />
+ <Compile Include="MonoDevelop.DotNetCore\DotNetCoreNotInstalledInfoBar.cs" />
<Compile Include="MonoDevelop.DotNetCore\DotNetCoreSdkPaths.cs" />
<Compile Include="MonoDevelop.DotNetCore\DotNetCoreCanReferenceProjectExtension.cs" />
<Compile Include="MonoDevelop.DotNetCore\DotNetCliToolReference.cs" />
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledDialog.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledInfoBar.cs
index 9fb149f4f3..dd4578c87d 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledDialog.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreNotInstalledInfoBar.cs
@@ -1,5 +1,5 @@
//
-// DotNetCoreNotInstalledDialog.cs
+// DotNetCoreNotInstalledInfoBar.cs
//
// Author:
// Matt Ward <matt.ward@xamarin.com>
@@ -26,70 +26,38 @@
using MonoDevelop.Core;
using MonoDevelop.Ide;
-using MonoDevelop.Ide.Gui;
-using System;
+using MonoDevelop.Ide.Gui.Components;
namespace MonoDevelop.DotNetCore
{
- class DotNetCoreNotInstalledDialog : IDisposable
+ class DotNetCoreNotInstalledInfoBar
{
- static readonly string defaultMessage = GettextCatalog.GetString (".NET Core SDK is not installed. This is required to build and run .NET Core projects.");
-
- GenericMessage message;
- AlertButton downloadButton;
string downloadUrl = DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl ();
- public DotNetCoreNotInstalledDialog ()
- {
- Build ();
- }
-
- void Build ()
- {
- message = new GenericMessage {
- Text = defaultMessage,
- DefaultButton = 1,
- Icon = Stock.Information
- };
-
- downloadButton = new AlertButton (GettextCatalog.GetString ("Download .NET Core..."));
- message.Buttons.Add (AlertButton.Cancel);
- message.Buttons.Add (downloadButton);
-
- message.AlertButtonClicked += AlertButtonClicked;
- }
-
- void AlertButtonClicked (object sender, AlertButtonEventArgs e)
- {
- if (e.Button == downloadButton)
- IdeServices.DesktopService.ShowUrl (downloadUrl);
- }
-
- public void Dispose ()
- {
- message.AlertButtonClicked -= AlertButtonClicked;
- }
+ public string Message { get; set; }
+ public bool IsUnsupportedVersion { get; set; }
+ public bool IsNetStandard { get; set; }
+ public DotNetCoreVersion RequiredDotNetCoreVersion { get; set; }
+ public string CurrentDotNetCorePath { get; set; }
- public void Show ()
+ public void Prompt ()
{
- if (IsUnsupportedVersion || IsNetStandard) //for .net standard we'll show generic message
+ var items = new InfoBarItem [] {
+ new InfoBarItem (GettextCatalog.GetString ("Download .NET Core"), InfoBarItemKind.Button, DownloadButtonClicked, true)
+ };
+
+ if (IsUnsupportedVersion || IsNetStandard || RequiredDotNetCoreVersion == null) //for .net standard we'll show generic message
Message = DotNetCoreSdk.GetNotSupportedVersionMessage ();
else {
Message = DotNetCoreSdk.GetNotSupportedVersionMessage (RequiredDotNetCoreVersion.OriginalString);
downloadUrl = DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl (RequiredDotNetCoreVersion);
}
- MessageService.GenericAlert (message);
+ IdeApp.Workbench.ShowInfoBar (false, new InfoBarOptions (Message) {
+ Items = items
+ });
}
- public string Message {
- get { return message.Text; }
- set { message.Text = value; }
- }
-
- public bool IsUnsupportedVersion { get; set; }
- public bool IsNetStandard { get; set; }
- public DotNetCoreVersion RequiredDotNetCoreVersion { get; set; }
- public string CurrentDotNetCorePath { get; set; }
+ void DownloadButtonClicked () => IdeServices.DesktopService.ShowUrl (downloadUrl);
}
}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs
index df43588e79..217a718ff0 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs
@@ -194,10 +194,7 @@ namespace MonoDevelop.DotNetCore
Task ShowCannotExecuteDotNetCoreApplicationDialog ()
{
return Runtime.RunInMainThread (() => {
- using (var dialog = new DotNetCoreNotInstalledDialog ()) {
- dialog.Message = GettextCatalog.GetString (".NET Core is required to run this application.");
- dialog.Show ();
- }
+ CreateInfoBarInstance ().Prompt ();
});
}
@@ -206,19 +203,23 @@ namespace MonoDevelop.DotNetCore
return Runtime.RunInMainThread (() => {
if (ShownDotNetCoreSdkNotInstalledDialogForSolution ())
return;
-
+
Project.ParentSolution.ExtendedProperties [ShownDotNetCoreSdkInstalledExtendedPropertyName] = "true";
- using (var dialog = new DotNetCoreNotInstalledDialog ()) {
- dialog.IsUnsupportedVersion = unsupportedSdkVersion;
- dialog.RequiredDotNetCoreVersion = DotNetCoreVersion.Parse (Project.TargetFramework.Id.Version);
- dialog.CurrentDotNetCorePath = sdkPaths.MSBuildSDKsPath;
- dialog.IsNetStandard = Project.TargetFramework.Id.IsNetStandard ();
- dialog.Show ();
- }
+ CreateInfoBarInstance (unsupportedSdkVersion).Prompt ();
});
}
+ DotNetCoreNotInstalledInfoBar CreateInfoBarInstance (bool unsupportedSdkVersion = false)
+ {
+ return new DotNetCoreNotInstalledInfoBar {
+ IsUnsupportedVersion = unsupportedSdkVersion,
+ RequiredDotNetCoreVersion = DotNetCoreVersion.Parse (Project.TargetFramework.Id.Version),
+ CurrentDotNetCorePath = sdkPaths.MSBuildSDKsPath,
+ IsNetStandard = Project.TargetFramework.Id.IsNetStandard ()
+ };
+ }
+
bool ShownDotNetCoreSdkNotInstalledDialogForSolution ()
{
return Project.ParentSolution.ExtendedProperties.Contains (ShownDotNetCoreSdkInstalledExtendedPropertyName);
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreSdk.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreSdk.cs
index 60028713d4..50992bf057 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreSdk.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreSdk.cs
@@ -184,10 +184,10 @@ namespace MonoDevelop.DotNetCore
{
string GetMessage (DotNetCoreVersion currentVersion)
{
- return GettextCatalog.GetString ("NET Core {0}.{1} SDK version {2} is not compatible with this version of Visual Studio for Mac. Install the latest update to the .NET Core {0}.{1} SDK by visiting {3}.", currentVersion.Major, currentVersion.Minor, currentVersion.ToString (), DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl (currentVersion));
+ return GettextCatalog.GetString (".NET Core {0}.{1} SDK version {2} is not compatible with this version of Visual Studio for Mac. Install the latest update to the .NET Core {0}.{1} SDK by visiting {3}", currentVersion.Major, currentVersion.Minor, currentVersion.ToString (), DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl (currentVersion));
}
- var installedVersion = Versions.OrderByDescending (x => x).FirstOrDefault ();
+ var installedVersion = Versions?.OrderByDescending (x => x).FirstOrDefault ();
if (installedVersion != null) {
if (installedVersion < DotNetCoreVersion.MinimumSupportedSdkVersion) {
return GetMessage (installedVersion);
@@ -198,7 +198,7 @@ namespace MonoDevelop.DotNetCore
}
}
- return GettextCatalog.GetString (".NET Core {0} SDK is required to build this application, and is not installed. Install the latest update to the .NET Core {0} SDK by visiting {1}.", version, DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl (version));
+ return GettextCatalog.GetString (".NET Core {0} SDK is required to build this application, and is not installed. Install the latest update to the .NET Core {0} SDK by visiting {1}", version, DotNetCoreDownloadUrl.GetDotNetCoreDownloadUrl (version));
}
}
}