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
{ {
private static ContextActionsService instance = new ContextActionsService(); private static ContextActionsService instance = new ContextActionsService();
const string PropertyServiceKey = "DisabledContextActionProviders";
public static ContextActionsService Instance { public static ContextActionsService Instance {
get { get {
return instance; return instance;
@ -32,9 +34,10 @@ namespace ICSharpCode.SharpDevelop.Refactoring
private ContextActionsService() private ContextActionsService()
{ {
this.providers = AddInTree.BuildItems<IContextActionsProvider>("/SharpDevelop/ViewContent/AvalonEdit/ContextActions", null, false); this.providers = AddInTree.BuildItems<IContextActionsProvider>("/SharpDevelop/ViewContent/AvalonEdit/ContextActions", null, false);
var disabledActions = LoadProviderVisibilities().ToLookup(s => s);
foreach (var provider in providers) { foreach (var provider in providers) {
// load from configuration // 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); 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
if (providerForAction.TryGetValue(action, out provider)) { if (providerForAction.TryGetValue(action, out provider)) {
provider.IsVisible = isVisible; 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>(); Dictionary<IContextAction, IContextActionsProvider> providerForAction = new Dictionary<IContextAction, IContextActionsProvider>();
/// <summary> /// <summary>

Loading…
Cancel
Save