Browse Source

Original AddInManager now only shows its menu item (Tools menu), if AddInManager2 is not installed or enabled.

pull/32/head
Andreas Weizel 13 years ago
parent
commit
39cbae8588
  1. 9
      src/AddIns/Misc/AddInManager/Project/AddInManager.addin
  2. 19
      src/AddIns/Misc/AddInManager/Project/Src/Commands.cs

9
src/AddIns/Misc/AddInManager/Project/AddInManager.addin

@ -11,13 +11,16 @@
<Runtime> <Runtime>
<Import assembly = "ICSharpCode.AddInManager.dll"> <Import assembly = "ICSharpCode.AddInManager.dll">
<ConditionEvaluator name="AddInManagerAddInState" class="ICSharpCode.AddInManager.AddInManagerAddInStateConditionEvaluator"/> <ConditionEvaluator name="AddInManagerAddInState" class="ICSharpCode.AddInManager.AddInManagerAddInStateConditionEvaluator"/>
<ConditionEvaluator name="AddInManager2NotInstalled" class="ICSharpCode.AddInManager.AddInManager2NotInstalledConditionEvaluator"/>
</Import> </Import>
</Runtime> </Runtime>
<Path name = "/SharpDevelop/Workbench/Tools"> <Path name = "/SharpDevelop/Workbench/Tools">
<MenuItem id = "ShowAddInManager" <Condition name="AddInManager2NotInstalled">
label = "${res:AddInManager.Title}" <MenuItem id = "ShowAddInManager"
class = "ICSharpCode.AddInManager.ShowCommand"/> label = "${res:AddInManager.Title}"
class = "ICSharpCode.AddInManager.ShowCommand"/>
</Condition>
</Path> </Path>
<Path name = "/SharpDevelop/Workbench/DisplayBindings"> <Path name = "/SharpDevelop/Workbench/DisplayBindings">

19
src/AddIns/Misc/AddInManager/Project/Src/Commands.cs

@ -4,6 +4,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using ICSharpCode.Core; using ICSharpCode.Core;
using System.Linq;
#if !STANDALONE #if !STANDALONE
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
@ -43,6 +44,24 @@ namespace ICSharpCode.AddInManager
} }
} }
public class AddInManager2NotInstalledConditionEvaluator : IConditionEvaluator
{
public bool IsValid(object caller, Condition condition)
{
#if !STANDALONE
AddIn addInManager2AddIn = SD.AddInTree.AddIns.Where(
a => ((a.Manifest != null) && (a.Manifest.PrimaryIdentity == "ICSharpCode.AddInManager2")))
.FirstOrDefault();
if (addInManager2AddIn != null)
{
return !addInManager2AddIn.Enabled;
}
#endif
return true;
}
}
public class DisableCommand : AbstractMenuCommand public class DisableCommand : AbstractMenuCommand
{ {
public override void Run() public override void Run()

Loading…
Cancel
Save