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/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs')
-rw-r--r--main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs18
1 files changed, 7 insertions, 11 deletions
diff --git a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
index cdfdc78f73..938ce3a94b 100644
--- a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
@@ -32,6 +32,7 @@ using MonoDevelop.Core;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Gui.Components;
using MonoDevelop.Ide;
+using System.Threading.Tasks;
namespace MonoDevelop.Gettext.NodeBuilders
{
@@ -122,7 +123,7 @@ namespace MonoDevelop.Gettext.NodeBuilders
if (project == null)
return;
MessageService.ShowCustomDialog (new TranslationProjectOptionsDialog (project));
- IdeApp.Workspace.Save ();
+ IdeApp.Workspace.SaveAsync ();
}
[CommandUpdateHandler (Commands.AddTranslation)]
@@ -144,7 +145,7 @@ namespace MonoDevelop.Gettext.NodeBuilders
if (MessageService.RunCustomDialog (chooser) == (int)ResponseType.Ok) {
string language = chooser.Language + (chooser.HasCountry ? "_" + chooser.Country : "");
- using (IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetOutputProgressMonitor (monitorTitle, "md-package", true, true)) {
+ using (ProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetOutputProgressMonitor (monitorTitle, "md-package", true, true)) {
project.AddNewTranslation (language, monitor);
UpdateTranslations (project);
}
@@ -154,14 +155,10 @@ namespace MonoDevelop.Gettext.NodeBuilders
chooser.Destroy ();
}
}
- static IAsyncOperation currentUpdateTranslationOperation = MonoDevelop.Core.ProgressMonitoring.NullAsyncOperation.Success;
+ static Task currentUpdateTranslationOperation = Task.FromResult (0);
- void UpdateTranslationsAsync (object ob)
+ void UpdateTranslationsAsync (ProgressMonitor monitor, TranslationProject project)
{
- object[] data = (object[]) ob;
- IProgressMonitor monitor = (IProgressMonitor) data [0];
- TranslationProject project = (TranslationProject) data [1];
-
try {
project.UpdateTranslations (monitor);
Gtk.Application.Invoke (delegate {
@@ -180,9 +177,8 @@ namespace MonoDevelop.Gettext.NodeBuilders
{
if (currentUpdateTranslationOperation != null && !currentUpdateTranslationOperation.IsCompleted)
return;
- IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBuildProgressMonitor ();
- currentUpdateTranslationOperation = monitor.AsyncOperation;
- DispatchService.BackgroundDispatch (new StatefulMessageHandler (UpdateTranslationsAsync), new object[] {monitor, project});
+ ProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBuildProgressMonitor ();
+ currentUpdateTranslationOperation = Task.Factory.StartNew (() => UpdateTranslationsAsync (monitor, project));
}
[CommandHandler (Commands.UpdateTranslations)]