summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-10-04 15:36:47 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-10-04 15:36:47 +0200
commita8743449386303ec8beea24d6afceba88d23d9e8 (patch)
tree344f54f4e8b4f9909ba32476cd76ccf95eeaabee /modules
parent146d87c230d3e9b788f508c95601ae45fdb19f14 (diff)
parent404fd0b2dc8246d764d6e4536449f338273b9217 (diff)
downloadredot-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.cs42
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs28
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;