diff options
author | Greg Munn <greg@sgmunn.com> | 2017-04-04 18:21:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-04 18:21:35 +0300 |
commit | f751f961178084606d65e58de048a1d6801933e8 (patch) | |
tree | ef8899b6d65b5854d91be05abee7aee9a6244383 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted | |
parent | b3e38f9cd25ac36428dc1a00d2d90fec88058a14 (diff) | |
parent | f88227e2be30fb7a3176f5a7c391748c262f2cc2 (diff) |
Merge pull request #1892 from mono/fix46965
Optimize GettingStarted new project handling
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStarted.cs | 17 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNode.cs | 2 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNodeBuilder.cs | 1 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProjectExtension.cs | 25 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProvider.cs (renamed from main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProviderBase.cs) | 7 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedViewContent.cs | 2 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/IGettingStartedProvider.cs | 14 |
7 files changed, 17 insertions, 51 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStarted.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStarted.cs index d728594d72..5f2df8984f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStarted.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStarted.cs @@ -12,7 +12,7 @@ namespace MonoDevelop.Ide.GettingStarted { static readonly string GettingStartedProvidersExtensionPoint = "/MonoDevelop/Ide/GettingStartedProviders"; - static List<IGettingStartedProvider> providers = new List<IGettingStartedProvider> (); + static List<GettingStartedProvider> providers = new List<GettingStartedProvider> (); static GettingStarted () { @@ -22,17 +22,18 @@ namespace MonoDevelop.Ide.GettingStarted static void OnExtensionChanged (object s, ExtensionNodeEventArgs args) { if (args.Change == ExtensionChange.Add) - providers.Add ((IGettingStartedProvider)args.ExtensionObject); + providers.Add ((GettingStartedProvider)args.ExtensionObject); else if (args.Change == ExtensionChange.Remove) - providers.Remove ((IGettingStartedProvider)args.ExtensionObject); + providers.Remove ((GettingStartedProvider)args.ExtensionObject); } - public static IGettingStartedProvider GetGettingStartedProvider (this Project project) + public static GettingStartedProvider GetGettingStartedProvider (this Project project) { - foreach (var provider in providers) { - if (provider.SupportsProject (project)) - return provider; - } + if (project != null) + foreach (var provider in providers) { + if (provider.SupportsProject (project)) + return provider; + } return null; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNode.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNode.cs index 6ef9db83b7..f095b0e20a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNode.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNode.cs @@ -15,7 +15,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public Project Project { get; private set; } - public IGettingStartedProvider Provider { get; private set; } + public GettingStartedProvider Provider { get; private set; } internal GettingStartedProjectExtension Extension { get; private set; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNodeBuilder.cs index 8cce132ef7..b4fd7c118b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedNodeBuilder.cs @@ -51,7 +51,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad { var node = dataObject as GettingStartedNode; node.Removed += OnNodeHidden; - node.Extension.NotifyNodeAdded (); } public override void OnNodeRemoved (object dataObject) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProjectExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProjectExtension.cs index 4cfab17808..e41d6c03b0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProjectExtension.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProjectExtension.cs @@ -1,17 +1,12 @@ using System; using System.Xml; -using MonoDevelop.Components; -using MonoDevelop.Core; -using MonoDevelop.Ide; using MonoDevelop.Ide.Gui.Pads.ProjectPad; -using MonoDevelop.Ide.WebBrowser; using MonoDevelop.Projects; namespace MonoDevelop.Ide.GettingStarted { public class GettingStartedProjectExtension : ProjectExtension { - static bool showGettingStartedOnce = false; GettingStartedNode treeDataObject; public GettingStartedNode ProjectPadNode { @@ -28,26 +23,6 @@ namespace MonoDevelop.Ide.GettingStarted base.OnInitializeFromTemplate (projectCreateInfo, template); if (string.Equals (template.GetAttribute ("HideGettingStarted"), "true", StringComparison.OrdinalIgnoreCase)) Project.UserProperties.SetValue ("HideGettingStarted", true); - else - showGettingStartedOnce = true; - } - - internal void NotifyNodeAdded () - { - ShowGettingStartedOnce (); - } - - void ShowGettingStartedOnce () - { - var provider = ProjectPadNode.Provider; - if (provider == null) - return; - - if (showGettingStartedOnce) { - showGettingStartedOnce = false; - - Runtime.RunInMainThread (() => GettingStarted.ShowGettingStarted (Project)); - } } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProviderBase.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProvider.cs index 14ed0c8790..0d7c8e5640 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProviderBase.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedProvider.cs @@ -1,10 +1,11 @@ using System; using MonoDevelop.Components; +using MonoDevelop.Ide.Templates; using MonoDevelop.Projects; namespace MonoDevelop.Ide.GettingStarted { - public abstract class GettingStartedProviderBase : IGettingStartedProvider + public abstract class GettingStartedProvider { public abstract bool SupportsProject (Project project); @@ -27,6 +28,10 @@ namespace MonoDevelop.Ide.GettingStarted IdeApp.Workbench.OpenDocument (vc, true); } } + + public virtual void SupportedProjectCreated (ProcessedTemplateResult templateResult) + { + } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedViewContent.cs index 3cf282d077..c24d074fc3 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedViewContent.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/GettingStartedViewContent.cs @@ -11,7 +11,7 @@ namespace MonoDevelop.Ide.GettingStarted { Control gettingStartedWidget; - public GettingStartedViewContent (Project project, IGettingStartedProvider provider) + public GettingStartedViewContent (Project project, GettingStartedProvider provider) { Project = project; gettingStartedWidget = provider.GetGettingStartedWidget (project); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/IGettingStartedProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/IGettingStartedProvider.cs deleted file mode 100644 index 8e2c74664a..0000000000 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.GettingStarted/IGettingStartedProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using MonoDevelop.Components; -using MonoDevelop.Projects; - -namespace MonoDevelop.Ide.GettingStarted -{ - public interface IGettingStartedProvider - { - bool SupportsProject (Project project); - Control GetGettingStartedWidget (Project project); - void ShowGettingStarted (Project project, string pageHint = null); - } -} - |