Commit 3e90cd5d authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

В колонках настройки параграфа "не разрывать" и "висячая строка" не работают,...

В колонках настройки параграфа "не разрывать" и "висячая строка" не работают, если в параграфе есть объекты с обтеканием.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@67892 954022d7-b5bf-4e40-9824-e11837661b57
parent ae85bf4a
...@@ -1265,8 +1265,12 @@ Paragraph.prototype.private_RecalculateLineBottomBound = function(CurLine, CurPa ...@@ -1265,8 +1265,12 @@ Paragraph.prototype.private_RecalculateLineBottomBound = function(CurLine, CurPa
// Перенос не делаем, если это первая строка на новой странице // Перенос не делаем, если это первая строка на новой странице
if (true === this.Use_YLimit() && (Top > this.YLimit || Bottom2 > this.YLimit) && (CurLine != this.Pages[CurPage].FirstLine || (0 === RealCurPage && (null != this.Get_DocumentPrev() || true === this.Parent.Is_TableCellContent()))) && false === BreakPageLineEmpty) if (true === this.Use_YLimit() && (Top > this.YLimit || Bottom2 > this.YLimit) && (CurLine != this.Pages[CurPage].FirstLine || (0 === RealCurPage && (null != this.Get_DocumentPrev() || true === this.Parent.Is_TableCellContent()))) && false === BreakPageLineEmpty)
{ {
// TODO: Неразрывные абзацы и висячие строки внутри колонок вместе с плавающими объектами пока не обсчитываем
var bSkipWidowAndKeepLines = this.private_CheckSkipKeepLinesAndWidowControl(CurPage);
// Проверим висячую строку // Проверим висячую строку
if (this.Parent instanceof CDocument if (this.Parent instanceof CDocument
&& false === bSkipWidowAndKeepLines
&& true === this.Parent.RecalcInfo.Can_RecalcWidowControl() && true === this.Parent.RecalcInfo.Can_RecalcWidowControl()
&& true === ParaPr.WidowControl && true === ParaPr.WidowControl
&& CurLine - this.Pages[CurPage].StartLine <= 1 && CurLine - this.Pages[CurPage].StartLine <= 1
...@@ -1290,7 +1294,7 @@ Paragraph.prototype.private_RecalculateLineBottomBound = function(CurLine, CurPa ...@@ -1290,7 +1294,7 @@ Paragraph.prototype.private_RecalculateLineBottomBound = function(CurLine, CurPa
// страницу параграфа разместить в какой либо колонке (пересчитывая их по очереди), если параграф // страницу параграфа разместить в какой либо колонке (пересчитывая их по очереди), если параграф
// все равно не рассчитан до конца, тогда размещаем его в первой колонке и делаем перенос на следующую // все равно не рассчитан до конца, тогда размещаем его в первой колонке и делаем перенос на следующую
// страницу. // страницу.
if (true === ParaPr.KeepLines && this.LogicDocument) if (true === ParaPr.KeepLines && this.LogicDocument && false === bSkipWidowAndKeepLines)
{ {
var CompatibilityMode = this.LogicDocument.Get_CompatibilityMode(); var CompatibilityMode = this.LogicDocument.Get_CompatibilityMode();
if (CompatibilityMode <= document_compatibility_mode_Word14) if (CompatibilityMode <= document_compatibility_mode_Word14)
...@@ -1482,7 +1486,7 @@ Paragraph.prototype.private_RecalculateLineEnd = function(CurLine, CurPa ...@@ -1482,7 +1486,7 @@ Paragraph.prototype.private_RecalculateLineEnd = function(CurLine, CurPa
this.Lines[CurLine].Ranges.length = PRS.Range + 1; this.Lines[CurLine].Ranges.length = PRS.Range + 1;
// Проверим висячую строку // Проверим висячую строку
if ( true === ParaPr.WidowControl && CurLine === this.Pages[CurPage].StartLine && CurLine >= 1 ) if (true === ParaPr.WidowControl && CurLine === this.Pages[CurPage].StartLine && CurLine >= 1 && false === this.private_CheckSkipKeepLinesAndWidowControl(CurPage))
{ {
// Проверим не встречается ли в предыдущей строке BreakPage, если да, тогда не учитываем WidowControl // Проверим не встречается ли в предыдущей строке BreakPage, если да, тогда не учитываем WidowControl
var BreakPagePrevLine = (this.Lines[CurLine - 1].Info & paralineinfo_BreakPage) | 0; var BreakPagePrevLine = (this.Lines[CurLine - 1].Info & paralineinfo_BreakPage) | 0;
...@@ -1908,6 +1912,33 @@ Paragraph.prototype.private_RecalculateGetTabPos = function(X, ParaPr, CurPage) ...@@ -1908,6 +1912,33 @@ Paragraph.prototype.private_RecalculateGetTabPos = function(X, ParaPr, CurPage)
return { NewX : NewX, TabValue : ( null === Tab ? tab_Left : Tab.Value ) }; return { NewX : NewX, TabValue : ( null === Tab ? tab_Left : Tab.Value ) };
}; };
Paragraph.prototype.private_CheckSkipKeepLinesAndWidowControl = function(CurPage)
{
var bSkipWidowAndKeepLines = false;
if (this.ColumnsCount > 1)
{
var bWrapDrawing = false;
for (var TempPage = 0; TempPage <= CurPage; ++TempPage)
{
for (var DrawingIndex = 0, DrawingsCount = this.Pages[TempPage].Drawings.length; DrawingIndex < DrawingsCount; ++DrawingIndex)
{
if (this.Pages[TempPage].Drawings[DrawingIndex].Use_TextWrap())
{
bWrapDrawing = true;
break;
}
}
if (bWrapDrawing)
break;
}
bSkipWidowAndKeepLines = bWrapDrawing;
}
return bSkipWidowAndKeepLines;
};
var ERecalcPageType = var ERecalcPageType =
{ {
START : 0x00, // начать заново пересчет, с начала страницы START : 0x00, // начать заново пересчет, с начала страницы
......
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