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; // Пересчитываем следую ...@@ -63,6 +63,7 @@ var recalcresult_NextPage = 0x03; // Пересчитываем следую
var recalcresult_NextLine = 0x04; // Пересчитываем следующую строку var recalcresult_NextLine = 0x04; // Пересчитываем следующую строку
var recalcresult_CurLine = 0x05; // Пересчитываем текущую строку var recalcresult_CurLine = 0x05; // Пересчитываем текущую строку
var recalcresult_CurPagePara = 0x06; // Специальный случай, когда мы встретили картинку в начале параграфа var recalcresult_CurPagePara = 0x06; // Специальный случай, когда мы встретили картинку в начале параграфа
var recalcresult_PrevLine = 0x07; // Пересчитываем заново предыдущую строку (мб даже раньше, это должно идти в PRSW)
// Типы которые возвращают классы CDocument и CDocumentContent после пересчета страницы // Типы которые возвращают классы CDocument и CDocumentContent после пересчета страницы
var recalcresult2_End = 0x00; // Документ рассчитан до конца var recalcresult2_End = 0x00; // Документ рассчитан до конца
...@@ -14105,6 +14106,7 @@ CDocument.prototype.Get_MailMergedDocument = function(_nStartIndex, _nEndIndex) ...@@ -14105,6 +14106,7 @@ CDocument.prototype.Get_MailMergedDocument = function(_nStartIndex, _nEndIndex)
g_oTableId.TurnOff(); g_oTableId.TurnOff();
var LogicDocument = new CDocument(); var LogicDocument = new CDocument();
History.Document = this;
// Копируем стили, они все одинаковые для всех документов // Копируем стили, они все одинаковые для всех документов
LogicDocument.Styles = this.Styles.Copy(); LogicDocument.Styles = this.Styles.Copy();
......
...@@ -508,6 +508,20 @@ Paragraph.prototype.private_RecalculatePage = function(CurPage) ...@@ -508,6 +508,20 @@ Paragraph.prototype.private_RecalculatePage = function(CurPage)
PRS.Reset_Ranges(); PRS.Reset_Ranges();
PRS.Reset_PageBreak(); PRS.Reset_PageBreak();
PRS.Reset_RunRecalcInfo(); 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) else if (recalcresult_CurLine === RecalcResult)
{ {
...@@ -2115,6 +2129,12 @@ function CParagraphRecalculateStateWrap(Para) ...@@ -2115,6 +2129,12 @@ function CParagraphRecalculateStateWrap(Para)
this.BaseLineOffset = 0; this.BaseLineOffset = 0;
this.RecalcResult = 0x00;//recalcresult_NextElement; this.RecalcResult = 0x00;//recalcresult_NextElement;
this.PrevLineRecalcInfo = // Информация для пересчета предыдущей строки
{
Line : 0, // Номер строки, начиная с которой надо пересчитать
Object : null // Объект, который вызвал пересчет
};
} }
CParagraphRecalculateStateWrap.prototype = CParagraphRecalculateStateWrap.prototype =
...@@ -2158,6 +2178,12 @@ CParagraphRecalculateStateWrap.prototype = ...@@ -2158,6 +2178,12 @@ CParagraphRecalculateStateWrap.prototype =
this.LineBreakPos = new CParagraphContentPos(); this.LineBreakPos = new CParagraphContentPos();
}, },
Reset_PrevLineRecalcInfo : function()
{
this.PrevLineRecalcInfo.Line = 0;
this.PrevLineRecalcInfo.Object = null;
},
Set_LineBreakPos : function(PosObj) Set_LineBreakPos : function(PosObj)
{ {
this.LineBreakPos.Set( this.CurPos ); 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