diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-04 15:36:47 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-04 15:36:47 +0200 |
commit | a8743449386303ec8beea24d6afceba88d23d9e8 (patch) | |
tree | 344f54f4e8b4f9909ba32476cd76ccf95eeaabee /modules | |
parent | 146d87c230d3e9b788f508c95601ae45fdb19f14 (diff) | |
parent | 404fd0b2dc8246d764d6e4536449f338273b9217 (diff) | |
download | redot-engine-a8743449386303ec8beea24d6afceba88d23d9e8.tar.gz |
Merge pull request #82683 from raulsntos/dotnet/fix-transient-parent-or-something-idk
Fix C# editor dialogs
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mono/editor/GodotTools/GodotTools/Build/BuildManager.cs | 42 | ||||
-rw-r--r-- | modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs | 28 |
2 files changed, 39 insertions, 31 deletions
diff --git a/modules/mono/editor/GodotTools/GodotTools/Build/BuildManager.cs b/modules/mono/editor/GodotTools/GodotTools/Build/BuildManager.cs index 9bb4fd153b..907511d140 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Build/BuildManager.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Build/BuildManager.cs @@ -206,17 +206,19 @@ namespace GodotTools.Build if (!File.Exists(buildInfo.Project)) return true; // No project to build. - using var pr = new EditorProgress("dotnet_build_project", "Building .NET project...", 1); - - pr.Step("Building project", 0); + bool success; + using (var pr = new EditorProgress("dotnet_build_project", "Building .NET project...", 1)) + { + pr.Step("Building project", 0); + success = Build(buildInfo); + } - if (!Build(buildInfo)) + if (!success) { ShowBuildErrorDialog("Failed to build project"); - return false; } - return true; + return success; } private static bool CleanProjectBlocking(BuildInfo buildInfo) @@ -224,32 +226,36 @@ namespace GodotTools.Build if (!File.Exists(buildInfo.Project)) return true; // No project to clean. - using var pr = new EditorProgress("dotnet_clean_project", "Cleaning .NET project...", 1); - - pr.Step("Cleaning project", 0); + bool success; + using (var pr = new EditorProgress("dotnet_clean_project", "Cleaning .NET project...", 1)) + { + pr.Step("Cleaning project", 0); + success = Build(buildInfo); + } - if (!Build(buildInfo)) + if (!success) { ShowBuildErrorDialog("Failed to clean project"); - return false; } - return true; + return success; } private static bool PublishProjectBlocking(BuildInfo buildInfo) { - using var pr = new EditorProgress("dotnet_publish_project", "Publishing .NET project...", 1); - - pr.Step("Running dotnet publish", 0); + bool success; + using (var pr = new EditorProgress("dotnet_publish_project", "Publishing .NET project...", 1)) + { + pr.Step("Running dotnet publish", 0); + success = Publish(buildInfo); + } - if (!Publish(buildInfo)) + if (!success) { ShowBuildErrorDialog("Failed to publish .NET project"); - return false; } - return true; + return success; } private static BuildInfo CreateBuildInfo( diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs index 48e654c286..a00c812c79 100644 --- a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs +++ b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs @@ -65,6 +65,7 @@ namespace GodotTools private bool CreateProjectSolution() { + string errorMessage = null; using (var pr = new EditorProgress("create_csharp_solution", "Generating solution...".TTR(), 2)) { pr.Step("Generating C# project...".TTR()); @@ -96,22 +97,23 @@ namespace GodotTools } catch (IOException e) { - ShowErrorDialog("Failed to save solution. Exception message: ".TTR() + e.Message); - return false; + errorMessage = "Failed to save solution. Exception message: ".TTR() + e.Message; } - - pr.Step("Done".TTR()); - - // Here, after all calls to progress_task_step - CallDeferred(nameof(_ShowDotnetFeatures)); } else { - ShowErrorDialog("Failed to create C# project.".TTR()); + errorMessage = "Failed to create C# project.".TTR(); } + } - return true; + if (!string.IsNullOrEmpty(errorMessage)) + { + ShowErrorDialog(errorMessage); + return false; } + + _ShowDotnetFeatures(); + return true; } private void _ShowDotnetFeatures() @@ -161,14 +163,14 @@ namespace GodotTools { _errorDialog.Title = title; _errorDialog.DialogText = message; - _errorDialog.PopupCentered(); + EditorInterface.Singleton.PopupDialogCentered(_errorDialog); } public void ShowConfirmCreateSlnDialog() { _confirmCreateSlnDialog.Title = "C# solution already exists. This will override the existing C# project file, any manual changes will be lost.".TTR(); _confirmCreateSlnDialog.DialogText = "Create C# solution".TTR(); - _confirmCreateSlnDialog.PopupCentered(); + EditorInterface.Singleton.PopupDialogCentered(_confirmCreateSlnDialog); } private static string _vsCodePath = string.Empty; @@ -483,11 +485,11 @@ namespace GodotTools _editorSettings = EditorInterface.Singleton.GetEditorSettings(); _errorDialog = new AcceptDialog(); - editorBaseControl.AddChild(_errorDialog); + _errorDialog.SetUnparentWhenInvisible(true); _confirmCreateSlnDialog = new ConfirmationDialog(); + _confirmCreateSlnDialog.SetUnparentWhenInvisible(true); _confirmCreateSlnDialog.Confirmed += () => CreateProjectSolution(); - editorBaseControl.AddChild(_confirmCreateSlnDialog); MSBuildPanel = new MSBuildPanel(); MSBuildPanel.BuildStateChanged += BuildStateChanged; |