From 36f79924cb5ccf1c502f5e349b0561aee39a510c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kon=C3=AD=C4=8Dek?= Date: Sun, 15 Aug 2010 15:02:24 +0000 Subject: [PATCH] Visible / hidden actions are saved to SharpDevelop properties. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6415 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../ContextActions/ContextActionsService.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs index 6e1d0da380..e40cd8ba2d 100644 --- a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs +++ b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs @@ -21,6 +21,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring { private static ContextActionsService instance = new ContextActionsService(); + const string PropertyServiceKey = "DisabledContextActionProviders"; + public static ContextActionsService Instance { get { return instance; @@ -32,9 +34,10 @@ namespace ICSharpCode.SharpDevelop.Refactoring private ContextActionsService() { this.providers = AddInTree.BuildItems("/SharpDevelop/ViewContent/AvalonEdit/ContextActions", null, false); + var disabledActions = LoadProviderVisibilities().ToLookup(s => s); foreach (var provider in providers) { // load from configuration - provider.IsVisible = true; + provider.IsVisible = !disabledActions.Contains(provider.GetType().FullName); } } @@ -42,6 +45,17 @@ namespace ICSharpCode.SharpDevelop.Refactoring { return new EditorActionsProvider(editor, this.providers); } + + static List LoadProviderVisibilities() + { + return PropertyService.Get(PropertyServiceKey, new List()); + } + + public void SaveProviderVisibilities() + { + List disabledProviders = this.providers.Where(p => !p.IsVisible).Select(p => p.GetType().FullName).ToList(); + PropertyService.Set(PropertyServiceKey, disabledProviders); + } } @@ -79,8 +93,12 @@ namespace ICSharpCode.SharpDevelop.Refactoring if (providerForAction.TryGetValue(action, out provider)) { provider.IsVisible = isVisible; } + ContextActionsService.Instance.SaveProviderVisibilities(); } + /// + /// For every returned action remembers its provider for so that SetVisible can work. + /// Dictionary providerForAction = new Dictionary(); ///