Browse Source

Visible / hidden actions are saved to SharpDevelop properties.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6415 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Martin Koníček 15 years ago
parent
commit
36f79924cb
  1. 20
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs

20
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs

@ -21,6 +21,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -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 @@ -32,9 +34,10 @@ namespace ICSharpCode.SharpDevelop.Refactoring
private ContextActionsService()
{
this.providers = AddInTree.BuildItems<IContextActionsProvider>("/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 @@ -42,6 +45,17 @@ namespace ICSharpCode.SharpDevelop.Refactoring
{
return new EditorActionsProvider(editor, this.providers);
}
static List<string> LoadProviderVisibilities()
{
return PropertyService.Get(PropertyServiceKey, new List<string>());
}
public void SaveProviderVisibilities()
{
List<string> 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 @@ -79,8 +93,12 @@ namespace ICSharpCode.SharpDevelop.Refactoring
if (providerForAction.TryGetValue(action, out provider)) {
provider.IsVisible = isVisible;
}
ContextActionsService.Instance.SaveProviderVisibilities();
}
/// <summary>
/// For every returned action remembers its provider for so that SetVisible can work.
/// </summary>
Dictionary<IContextAction, IContextActionsProvider> providerForAction = new Dictionary<IContextAction, IContextActionsProvider>();
/// <summary>

Loading…
Cancel
Save