fixes B2016-166: calvert pagination for complicated AER/RNO page break

This commit is contained in:
Kathy Ruffing 2016-07-14 11:44:13 +00:00
parent 7bd76400c3
commit 85ea4d6efb

View File

@ -1337,18 +1337,28 @@ namespace Volian.Print.Library
{
foreach (int stepLevel in myList.Keys)
foreach (float yLoc in myList[stepLevel].Keys)
if (yLocation == yLoc)
{
vlnParagraph myPara = myList[stepLevel][yLoc];
if (Overlap(myPara, myParaBreak))
if (stepLevel > maxLevel)
{
vlnParagraph myPara = myList[stepLevel][yLoc];
//DebugPagination.WriteLine("'MaxBreakLevel',{0},{1},'{2}'", myPara.MyItemInfo.ItemID, stepLevel, myPara.MyItemInfo.ShortPath);
//Console.WriteLine("'MaxBreakLevel',{0},{1},'{2}'", myPara.MyItemInfo.ItemID, stepLevel, myPara.MyItemInfo.ShortPath);
if (!myPara.HasAncestor(myParaBreak))
maxLevel = stepLevel;
}
}
return maxLevel;
}
private static bool Overlap(vlnParagraph myPara, vlnParagraph myParaBreak)
{
// Fix for B2016-166: Calvert pagination-splitting a Note in AER from its associated step
if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertPagination)
return (myPara.YOffset <= myParaBreak.YOffset &&
(myPara.YOffset + myPara.Height) >= myParaBreak.YOffset);
return(myPara.YOffset == myParaBreak.YOffset);
}
private bool HasAncestor(vlnParagraph myParaBreak)
{
if (myParaBreak == MyParent) return true;