Commit a5e9f692 authored by Ilya.Kirillov's avatar Ilya.Kirillov

Сделано, чтобы при пересчете параграфа, можно было возвращаться к предыдущим...

Сделано, чтобы при пересчете параграфа, можно было возвращаться к предыдущим строками (сделано это для рассчета многострочных формул). 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@60954 954022d7-b5bf-4e40-9824-e11837661b57
parent daecd29f
......@@ -63,6 +63,7 @@ var recalcresult_NextPage = 0x03; // Пересчитываем следую
var recalcresult_NextLine = 0x04; // Пересчитываем следующую строку
var recalcresult_CurLine = 0x05; // Пересчитываем текущую строку
var recalcresult_CurPagePara = 0x06; // Специальный случай, когда мы встретили картинку в начале параграфа
var recalcresult_PrevLine = 0x07; // Пересчитываем заново предыдущую строку (мб даже раньше, это должно идти в PRSW)
// Типы которые возвращают классы CDocument и CDocumentContent после пересчета страницы
var recalcresult2_End = 0x00; // Документ рассчитан до конца
......@@ -14105,6 +14106,7 @@ CDocument.prototype.Get_MailMergedDocument = function(_nStartIndex, _nEndIndex)
g_oTableId.TurnOff();
var LogicDocument = new CDocument();
History.Document = this;
// Копируем стили, они все одинаковые для всех документов
LogicDocument.Styles = this.Styles.Copy();
......
......@@ -508,6 +508,20 @@ Paragraph.prototype.private_RecalculatePage = function(CurPage)
PRS.Reset_Ranges();
PRS.Reset_PageBreak();
PRS.Reset_RunRecalcInfo();
PRS.Reset_PrevLineRecalcInfo();
}
else if (recalcresult_PrevLine === RecalcResult)
{
if (PRS.Line < this.Pages[CurPage].StartLine)
PRS.Restore_RunRecalcInfo();
else
{
CurLine = PRS.Line;
PRS.Reset_Ranges();
PRS.Reset_PageBreak();
PRS.Reset_RunRecalcInfo();
}
}
else if (recalcresult_CurLine === RecalcResult)
{
......@@ -2115,6 +2129,12 @@ function CParagraphRecalculateStateWrap(Para)
this.BaseLineOffset = 0;
this.RecalcResult = 0x00;//recalcresult_NextElement;
this.PrevLineRecalcInfo = // Информация для пересчета предыдущей строки
{
Line : 0, // Номер строки, начиная с которой надо пересчитать
Object : null // Объект, который вызвал пересчет
};
}
CParagraphRecalculateStateWrap.prototype =
......@@ -2158,6 +2178,12 @@ CParagraphRecalculateStateWrap.prototype =
this.LineBreakPos = new CParagraphContentPos();
},
Reset_PrevLineRecalcInfo : function()
{
this.PrevLineRecalcInfo.Line = 0;
this.PrevLineRecalcInfo.Object = null;
},
Set_LineBreakPos : function(PosObj)
{
this.LineBreakPos.Set( this.CurPos );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment