From 2921c7a8cc0ade9d9b4e6a9aebd354fe88a8f6c6 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Mon, 31 Jul 2017 15:54:48 +0300 Subject: BXC #53783 --- .../GtkNewProjectDialogBackend.cs | 38 ++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index dedb568c54..abff34f36a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -34,7 +34,10 @@ using MonoDevelop.Components.AutoTest; using MonoDevelop.Components.Commands; using MonoDevelop.Ide.Templates; using MonoDevelop.Ide.Gui; - +using AppKit; +using Foundation; +using MonoDevelop.Core; + namespace MonoDevelop.Ide.Projects { partial class GtkNewProjectDialogBackend : INewProjectDialogBackend @@ -59,7 +62,7 @@ namespace MonoDevelop.Ide.Projects templatesTreeView.Selection.SelectFunction = TemplatesTreeViewSelection; templatesTreeView.RowActivated += TreeViewRowActivated; cancelButton.Clicked += CancelButtonClicked; - nextButton.Clicked += (sender, e) => MoveToNextPage (); + nextButton.Clicked += NextButtonClicked; previousButton.Clicked += (sender, e) => MoveToPreviousPage (); nextButton.CanDefault = true; @@ -68,6 +71,37 @@ namespace MonoDevelop.Ide.Projects // Setup the treeview to be able to have a context menu var actionHandler = new ActionDelegate (templatesTreeView); actionHandler.PerformShowMenu += PerformShowMenu; + } + + void NextButtonClicked (object sender, EventArgs e) + { + bool isLastPage = controller.IsLastPage; + MoveToNextPage (); + if (isLastPage) { + var message = GenerateProjectCreatedMessage (); + ShowAccessibityNotification (message); + } + } + + void ShowAccessibityNotification (string message) + { + var accessibleObject = this.Accessible; + if (accessibleObject == null) + return; + var nsObject = AtkCocoaMacExtensions.GetNSAccessibilityElement (accessibleObject) as NSObject; + if (nsObject == null) + return; + var dictionary = + new NSDictionary (NSAccessibilityNotificationUserInfoKeys.AnnouncementKey, new NSString (message), + NSAccessibilityNotificationUserInfoKeys.PriorityKey, NSAccessibilityPriorityLevel.High); + NSAccessibility.PostNotification (nsObject, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); + } + + string GenerateProjectCreatedMessage () + { + var message = GettextCatalog.GetString ("{0} successfully created"); + var template = controller.SelectedTemplate; + return String.Format (message, template.Name); } public void ShowDialog () -- cgit v1.2.3 From 36954fe0be8e0ece65bed215e5036d5e300a0319 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 14:05:34 +0300 Subject: #53783 --- .../GtkNewProjectDialogBackend.cs | 36 +++++++++++----------- .../INewProjectController.cs | 7 +++-- .../NewProjectController.cs | 14 +++++++-- 3 files changed, 34 insertions(+), 23 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index abff34f36a..f8be581b11 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -37,6 +37,8 @@ using MonoDevelop.Ide.Gui; using AppKit; using Foundation; using MonoDevelop.Core; +using System.Threading.Tasks; +using MonoDevelop.Ide.Projects; namespace MonoDevelop.Ide.Projects { @@ -73,16 +75,18 @@ namespace MonoDevelop.Ide.Projects actionHandler.PerformShowMenu += PerformShowMenu; } - void NextButtonClicked (object sender, EventArgs e) + void ProjectCreationFailed (object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (true); + void ProjectCreationSucceed (object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (false); + async void NextButtonClicked (object sender, EventArgs e) => await MoveToNextPage (); + + void ShowProjectCreationAccessibityNotification (bool hasError) { - bool isLastPage = controller.IsLastPage; - MoveToNextPage (); - if (isLastPage) { - var message = GenerateProjectCreatedMessage (); - ShowAccessibityNotification (message); - } + var projectTemplate = controller.SelectedTemplate; + var messageText = GettextCatalog.GetString (hasError ? "{0} creation fail" : "{0} successfully created", + projectTemplate.Name); + ShowAccessibityNotification (messageText); } - + void ShowAccessibityNotification (string message) { var accessibleObject = this.Accessible; @@ -97,13 +101,6 @@ namespace MonoDevelop.Ide.Projects NSAccessibility.PostNotification (nsObject, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); } - string GenerateProjectCreatedMessage () - { - var message = GettextCatalog.GetString ("{0} successfully created"); - var template = controller.SelectedTemplate; - return String.Format (message, template.Name); - } - public void ShowDialog () { MessageService.ShowCustomDialog (this); @@ -122,16 +119,17 @@ namespace MonoDevelop.Ide.Projects public void RegisterController (INewProjectDialogController controller) { this.controller = controller; + controller.ProjectCreationFailed += ProjectCreationFailed; + controller.ProjectCreationSucceed += ProjectCreationSucceed; languageCellRenderer.SelectedLanguage = controller.SelectedLanguage; topBannerLabel.Text = controller.BannerText; - LoadTemplates (); SelectTemplateDefinedbyController (); if (CanMoveToNextPage && !controller.ShowTemplateSelection) MoveToNextPage (); } - static void SetTemplateCategoryCellData (TreeViewColumn col, CellRenderer renderer, TreeModel model, TreeIter it) + void SetTemplateCategoryCellData (TreeViewColumn col, CellRenderer renderer, TreeModel model, TreeIter it) { var categoryTextRenderer = (GtkTemplateCategoryCellRenderer)renderer; categoryTextRenderer.Category = (TemplateCategory)model.GetValue (it, TemplateCategoryColumn); @@ -541,12 +539,14 @@ namespace MonoDevelop.Ide.Projects } } - async void MoveToNextPage () + async Task MoveToNextPage () { if (controller.IsLastPage) { try { CanMoveToNextPage = false; await controller.Create (); + } catch { + throw; } finally { CanMoveToNextPage = true; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs index ebf0154203..76b58d7a69 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs @@ -29,11 +29,14 @@ using System.Collections.Generic; using MonoDevelop.Ide.Templates; using Xwt.Drawing; using System.Threading.Tasks; - +using System; + namespace MonoDevelop.Ide.Projects { interface INewProjectDialogController - { + { + event EventHandler ProjectCreationFailed; + event EventHandler ProjectCreationSucceed; IEnumerable TemplateCategories { get; } List RecentTemplates { get; } TemplateCategory SelectedSecondLevelCategory { get; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs index b1309458b6..d13c0b1cbe 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs @@ -1,4 +1,4 @@ -// +// // NewProjectDialogController.cs // // Author: @@ -43,6 +43,7 @@ using MonoDevelop.Ide.Templates; using MonoDevelop.Projects; using Xwt.Drawing; using System.Threading.Tasks; +using System.Threading; namespace MonoDevelop.Ide.Projects { @@ -50,7 +51,10 @@ namespace MonoDevelop.Ide.Projects /// To be renamed to NewProjectDialog /// class NewProjectDialogController : INewProjectDialogController - { + { + public event EventHandler ProjectCreationFailed; + public event EventHandler ProjectCreationSucceed; + string chooseTemplateBannerText = GettextCatalog.GetString ("Choose a template for your new project"); string configureYourWorkspaceBannerText = GettextCatalog.GetString ("Configure your new workspace"); string configureYourSolutionBannerText = GettextCatalog.GetString ("Configure your new solution"); @@ -610,8 +614,10 @@ namespace MonoDevelop.Ide.Projects if (wizardProvider.HasWizard) wizardProvider.BeforeProjectIsCreated (); - if (!await CreateProject ()) + if (!await CreateProject ()) { + ProjectCreationFailed?.Invoke (this, new EventArgs ()); return; + } Solution parentSolution = null; @@ -697,6 +703,8 @@ namespace MonoDevelop.Ide.Projects IsNewItemCreated = true; UpdateDefaultSettings (); + var result = ProjectCreationSucceed?.BeginInvoke(this, new EventArgs (), new AsyncCallback ((_) => {} ),null); + result.AsyncWaitHandle.WaitOne (); dialog.CloseDialog (); } -- cgit v1.2.3 From f0d96e1932ec3b567ba43b96409a04b892326413 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 14:35:31 +0300 Subject: #53783 --- .../AtkCocoaHelperMac.cs | 13 +++++++++++++ .../AtkCocoaHelperNoOp.cs | 4 ++++ .../GtkNewProjectDialogBackend.cs | 18 ++---------------- 3 files changed, 19 insertions(+), 16 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs index 6dedc4b8d9..bcdbbe7101 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs @@ -523,6 +523,19 @@ namespace MonoDevelop.Components.AtkCocoaHelper nsa.AccessibilityLinkedUIElements = newLinkedElements; } + + public static void MakeAccessibilityAnnouncement (this Atk.Object o, string message) + { + if (o == null) + return; + var nsObject = AtkCocoaMacExtensions.GetNSAccessibilityElement (o) as NSObject; + if (nsObject == null) + return; + var dictionary = + new NSDictionary (NSAccessibilityNotificationUserInfoKeys.AnnouncementKey, new NSString (message), + NSAccessibilityNotificationUserInfoKeys.PriorityKey, NSAccessibilityPriorityLevel.High); + NSAccessibility.PostNotification (nsObject, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); + } } public class AccessibilityElementProxy : IAccessibilityElementProxy diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs index 6843a55a72..bc2fc262f3 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs @@ -153,6 +153,10 @@ namespace MonoDevelop.Components.AtkCocoaHelper public static void AddLinkedUIElement (this Atk.Object o, params Atk.Object [] linked) { } + + public static void MakeAccessibilityAnnouncement (this Atk.Object o, string message) + { + } } public class AccessibilityElementProxy : IAccessibilityElementProxy diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index f8be581b11..e7c07455b0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -83,24 +83,10 @@ namespace MonoDevelop.Ide.Projects { var projectTemplate = controller.SelectedTemplate; var messageText = GettextCatalog.GetString (hasError ? "{0} creation fail" : "{0} successfully created", - projectTemplate.Name); - ShowAccessibityNotification (messageText); + projectTemplate.Name); + this.Accessible.MakeAccessibilityAnnouncement (messageText); } - void ShowAccessibityNotification (string message) - { - var accessibleObject = this.Accessible; - if (accessibleObject == null) - return; - var nsObject = AtkCocoaMacExtensions.GetNSAccessibilityElement (accessibleObject) as NSObject; - if (nsObject == null) - return; - var dictionary = - new NSDictionary (NSAccessibilityNotificationUserInfoKeys.AnnouncementKey, new NSString (message), - NSAccessibilityNotificationUserInfoKeys.PriorityKey, NSAccessibilityPriorityLevel.High); - NSAccessibility.PostNotification (nsObject, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); - } - public void ShowDialog () { MessageService.ShowCustomDialog (this); -- cgit v1.2.3 From c6f4ffb2b105db534e27f11bba9764ae668d47c5 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 14:46:16 +0300 Subject: #53783 --- .../MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs index bcdbbe7101..f5210a61b1 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs @@ -528,7 +528,7 @@ namespace MonoDevelop.Components.AtkCocoaHelper { if (o == null) return; - var nsObject = AtkCocoaMacExtensions.GetNSAccessibilityElement (o) as NSObject; + var nsObject = GetNSAccessibilityElement (o) as NSObject; if (nsObject == null) return; var dictionary = -- cgit v1.2.3 From 0c7f4c6e7290bda10ed4ff16431e77a2aaaad81e Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 14:48:48 +0300 Subject: #537883 --- .../MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs | 2 -- 1 file changed, 2 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index e7c07455b0..72a6e10f44 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -34,8 +34,6 @@ using MonoDevelop.Components.AutoTest; using MonoDevelop.Components.Commands; using MonoDevelop.Ide.Templates; using MonoDevelop.Ide.Gui; -using AppKit; -using Foundation; using MonoDevelop.Core; using System.Threading.Tasks; using MonoDevelop.Ide.Projects; -- cgit v1.2.3 From 2be19d83faa9ab59dbbb1d6f78b88675b7f8a4b6 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 15:06:38 +0300 Subject: #53783 --- .../MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index 72a6e10f44..039460ea93 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -79,9 +79,9 @@ namespace MonoDevelop.Ide.Projects void ShowProjectCreationAccessibityNotification (bool hasError) { - var projectTemplate = controller.SelectedTemplate; - var messageText = GettextCatalog.GetString (hasError ? "{0} creation fail" : "{0} successfully created", - projectTemplate.Name); + var projectTemplate = controller.SelectedTemplate; + var textTemplate= hasError ? "{0} creation fail" : "{0} successfully created"; + var messageText = GettextCatalog.GetString (textTemplate, projectTemplate.Name); this.Accessible.MakeAccessibilityAnnouncement (messageText); } @@ -262,6 +262,9 @@ namespace MonoDevelop.Ide.Projects if (!controller.IsLastPage) projectConfigurationWidget.Destroy (); + controller.ProjectCreationFailed -= ProjectCreationFailed; + controller.ProjectCreationSucceed -= ProjectCreationSucceed; + base.Destroy (); } -- cgit v1.2.3 From 85baf7d4c1e321f8ef1c259517f495ce3d024be2 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 15:27:53 +0300 Subject: #53783 --- .../MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index 039460ea93..4279096f6a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -80,8 +80,8 @@ namespace MonoDevelop.Ide.Projects void ShowProjectCreationAccessibityNotification (bool hasError) { var projectTemplate = controller.SelectedTemplate; - var textTemplate= hasError ? "{0} creation fail" : "{0} successfully created"; - var messageText = GettextCatalog.GetString (textTemplate, projectTemplate.Name); + var textTemplate= hasError ? "creation fail" : "successfully created"; + var messageText = $"{projectTemplate.Name} {GettextCatalog.GetString (textTemplate)}"; this.Accessible.MakeAccessibilityAnnouncement (messageText); } -- cgit v1.2.3 From e9a1ec6b3780637967c8aeb3e6035f0cff8a91de Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 15:44:19 +0300 Subject: #53783 --- .../MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs | 6 +++--- .../MonoDevelop.Ide.Projects/INewProjectController.cs | 2 +- .../MonoDevelop.Ide.Projects/NewProjectController.cs | 12 +++++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index 4279096f6a..fe53ebb4bf 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -74,7 +74,7 @@ namespace MonoDevelop.Ide.Projects } void ProjectCreationFailed (object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (true); - void ProjectCreationSucceed (object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (false); + void ProjectCreated(object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (false); async void NextButtonClicked (object sender, EventArgs e) => await MoveToNextPage (); void ShowProjectCreationAccessibityNotification (bool hasError) @@ -104,7 +104,7 @@ namespace MonoDevelop.Ide.Projects { this.controller = controller; controller.ProjectCreationFailed += ProjectCreationFailed; - controller.ProjectCreationSucceed += ProjectCreationSucceed; + controller.ProjectCreated += ProjectCreated; languageCellRenderer.SelectedLanguage = controller.SelectedLanguage; topBannerLabel.Text = controller.BannerText; LoadTemplates (); @@ -263,7 +263,7 @@ namespace MonoDevelop.Ide.Projects projectConfigurationWidget.Destroy (); controller.ProjectCreationFailed -= ProjectCreationFailed; - controller.ProjectCreationSucceed -= ProjectCreationSucceed; + controller.ProjectCreated -= ProjectCreated; base.Destroy (); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs index 76b58d7a69..f1c0aea808 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/INewProjectController.cs @@ -36,7 +36,7 @@ namespace MonoDevelop.Ide.Projects interface INewProjectDialogController { event EventHandler ProjectCreationFailed; - event EventHandler ProjectCreationSucceed; + event EventHandler ProjectCreated; IEnumerable TemplateCategories { get; } List RecentTemplates { get; } TemplateCategory SelectedSecondLevelCategory { get; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs index d13c0b1cbe..b42d9dcdbd 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs @@ -53,7 +53,7 @@ namespace MonoDevelop.Ide.Projects class NewProjectDialogController : INewProjectDialogController { public event EventHandler ProjectCreationFailed; - public event EventHandler ProjectCreationSucceed; + public event EventHandler ProjectCreated; string chooseTemplateBannerText = GettextCatalog.GetString ("Choose a template for your new project"); string configureYourWorkspaceBannerText = GettextCatalog.GetString ("Configure your new workspace"); @@ -703,8 +703,14 @@ namespace MonoDevelop.Ide.Projects IsNewItemCreated = true; UpdateDefaultSettings (); - var result = ProjectCreationSucceed?.BeginInvoke(this, new EventArgs (), new AsyncCallback ((_) => {} ),null); - result.AsyncWaitHandle.WaitOne (); + + var tcs = new TaskCompletionSource (); + Gtk.Application.Invoke ((sender, args) => { + ProjectCreated?.Invoke (this, EventArgs.Empty); + tcs.SetResult (true); + }); + await tcs.Task; + dialog.CloseDialog (); } -- cgit v1.2.3 From 117168056a98ba239b334cd580c0234e69270233 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 15:53:38 +0300 Subject: #53783 --- .../MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs index b42d9dcdbd..bcc8f7d9fc 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs @@ -615,7 +615,7 @@ namespace MonoDevelop.Ide.Projects wizardProvider.BeforeProjectIsCreated (); if (!await CreateProject ()) { - ProjectCreationFailed?.Invoke (this, new EventArgs ()); + ProjectCreationFailed?.Invoke (this, EventArgs.Empty); return; } -- cgit v1.2.3 From 85e02044ebe74c690c5c1532a396eb1524e72133 Mon Sep 17 00:00:00 2001 From: Dmytro Ovcharov Date: Tue, 1 Aug 2017 16:03:24 +0300 Subject: #53729 --- .../MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'main/src/core/MonoDevelop.Ide') diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs index fe53ebb4bf..3cd7692dd5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs @@ -80,8 +80,14 @@ namespace MonoDevelop.Ide.Projects void ShowProjectCreationAccessibityNotification (bool hasError) { var projectTemplate = controller.SelectedTemplate; - var textTemplate= hasError ? "creation fail" : "successfully created"; - var messageText = $"{projectTemplate.Name} {GettextCatalog.GetString (textTemplate)}"; + + string messageText; + + if (hasError) + messageText = GettextCatalog.GetString ("{0} failed to create", projectTemplate.Name); + else + messageText = GettextCatalog.GetString ("{0} successfully created", projectTemplate.Name); + this.Accessible.MakeAccessibilityAnnouncement (messageText); } -- cgit v1.2.3