[FEM] fix activation logic of post filters

only activate them when sensible/possible
This commit is contained in:
Uwe
2022-03-27 00:57:41 +01:00
parent 4dbb0f9155
commit dfd91f3ea2

View File

@@ -1255,7 +1255,19 @@ void CmdFemPostClipFilter::activated(int)
bool CmdFemPostClipFilter::isActive(void)
{
return hasActiveDocument();
// only activate if a result is either a post pipeline, scalar, cut or warp filter or itself
if (getSelection().getObjectsOfType<Fem::FemPostPipeline>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostScalarClipFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostCutFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostWarpVectorFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostClipFilter>().size() == 1)
return true;
else
return false;
}
@@ -1281,7 +1293,19 @@ void CmdFemPostCutFilter::activated(int)
bool CmdFemPostCutFilter::isActive(void)
{
return hasActiveDocument();
// only activate if a result is either a post pipeline, scalar, clip or warp filter or itself
if (getSelection().getObjectsOfType<Fem::FemPostPipeline>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostScalarClipFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostClipFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostWarpVectorFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostCutFilter>().size() == 1)
return true;
else
return false;
}
@@ -1418,7 +1442,17 @@ void CmdFemPostScalarClipFilter::activated(int)
bool CmdFemPostScalarClipFilter::isActive(void)
{
return hasActiveDocument();
// only activate if a result is either a post pipeline, clip, cut or warp filter
if (getSelection().getObjectsOfType<Fem::FemPostPipeline>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostClipFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostCutFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostWarpVectorFilter>().size() == 1)
return true;
else
return false;
}
@@ -1444,7 +1478,17 @@ void CmdFemPostWarpVectorFilter::activated(int)
bool CmdFemPostWarpVectorFilter::isActive(void)
{
return hasActiveDocument();
// only activate if a result is either a post pipeline, scalar, clip or cut filter
if (getSelection().getObjectsOfType<Fem::FemPostPipeline>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostScalarClipFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostCutFilter>().size() == 1)
return true;
else if (getSelection().getObjectsOfType<Fem::FemPostClipFilter>().size() == 1)
return true;
else
return false;
}