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

Сделана обработка клавиш PgUp, PgDn в колонтитулах (баг 25019). Исправлен баг...

Сделана обработка клавиш PgUp, PgDn в колонтитулах (баг 25019). Исправлен баг с необновлением скомпилированного стиля текста после Undo для добавления стиля к параграфу (баги 25042, 25039). Исправлен баг с заменой неправильно набранного слова(орфография), внутри которого был конец или начало комментария (баг 24915). 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57015 954022d7-b5bf-4e40-9824-e11837661b57
parent d43f9b17
This diff is collapsed.
......@@ -1155,6 +1155,82 @@ CHeaderFooterController.prototype =
//-----------------------------------------------------------------------------------
// Функции для работы с колонтитулами
//-----------------------------------------------------------------------------------
GoTo_NextHdrFtr : function()
{
var CurHdrFtr = this.CurHdrFtr;
if (null === CurHdrFtr || -1 === CurHdrFtr.RecalcInfo.CurPage)
return;
var CurPage = CurHdrFtr.RecalcInfo.CurPage;
var Pages = this.Pages;
if (hdrftr_Header === CurHdrFtr.Type && undefined !== Pages[CurPage].Footer)
CurHdrFtr = Pages[CurPage].Footer;
else
CurHdrFtr = null;
while (null === CurHdrFtr)
{
CurPage++;
if (undefined === Pages[CurPage])
break;
else if (undefined !== Pages[CurPage].Header && null !== Pages[CurPage].Header)
CurHdrFtr = Pages[CurPage].Header;
else if (undefined !== Pages[CurPage].Footer && null !== Pages[CurPage].Footer)
CurHdrFtr = Pages[CurPage].Footer;
}
if (null !== CurHdrFtr)
{
this.CurHdrFtr = CurHdrFtr;
CurHdrFtr.Set_Page(CurPage);
CurHdrFtr.Content.Cursor_MoveToStartPos(false);
return true;
}
return false;
},
GoTo_PrevHdrFtr : function()
{
var CurHdrFtr = this.CurHdrFtr;
if (null === CurHdrFtr || -1 === CurHdrFtr.RecalcInfo.CurPage)
return;
var CurPage = CurHdrFtr.RecalcInfo.CurPage;
var Pages = this.Pages;
if (hdrftr_Footer === CurHdrFtr.Type && undefined !== Pages[CurPage].Header)
CurHdrFtr = Pages[CurPage].Header;
else
CurHdrFtr = null;
while (null === CurHdrFtr)
{
CurPage--;
if (undefined === Pages[CurPage])
return;
else if (undefined !== Pages[CurPage].Footer && null !== Pages[CurPage].Footer)
CurHdrFtr = Pages[CurPage].Footer;
else if (undefined !== Pages[CurPage].Header && null !== Pages[CurPage].Header)
CurHdrFtr = Pages[CurPage].Header;
}
if (null !== CurHdrFtr)
{
this.CurHdrFtr = CurHdrFtr;
CurHdrFtr.Set_Page(CurPage);
CurHdrFtr.Content.Cursor_MoveToStartPos(false);
return true;
}
return false;
},
Get_CurPage : function()
{
if ( null != this.CurHdrFtr )
......
......@@ -93,6 +93,18 @@ ParaHyperlink.prototype =
return NewHyperlink;
},
Recalc_RunsCompiledPr : function()
{
var Count = this.Content.length;
for (var Pos = 0; Pos < Count; Pos++)
{
var Element = this.Content[Pos];
if (Element.Recalc_RunsCompiledPr)
Element.Recalc_RunsCompiledPr();
}
},
Get_AllDrawingObjects : function(DrawingObjs)
{
......
......@@ -4468,8 +4468,8 @@ Paragraph.prototype =
if ( StartContentPos.Compare( EndContentPos ) > 0 )
Direction = -1;
var OldStartPos = Math.min( this.Selection.StartPos, this.Content.length - 1 );
var OldEndPos = Math.min( this.Selection.EndPos, this.Content.length - 1 );
var OldStartPos = Math.max(0, Math.min( this.Selection.StartPos, this.Content.length - 1 ));
var OldEndPos = Math.max(0, Math.min( this.Selection.EndPos, this.Content.length - 1 ));
if ( OldStartPos > OldEndPos )
{
......@@ -7837,6 +7837,18 @@ Paragraph.prototype =
{
this.CompiledPr.NeedRecalc = true;
},
Recalc_RunsCompiledPr : function()
{
var Count = this.Content.length;
for (var Pos = 0; Pos < Count; Pos++)
{
var Element = this.Content[Pos];
if (Element.Recalc_RunsCompiledPr)
Element.Recalc_RunsCompiledPr();
}
},
// Формируем конечные свойства параграфа на основе стиля, возможной нумерации и прямых настроек.
// Без пересчета расстояния между параграфами.
......@@ -8152,8 +8164,9 @@ Paragraph.prototype =
this.Pr.PStyle = Id;
}
// Надо пересчитать конечный стиль
// Надо пересчитать конечный стиль самого параграфа и всех текстовых блоков
this.CompiledPr.NeedRecalc = true;
this.Recalc_RunsCompiledPr();
if ( true === bDoNotDeleteProps )
return;
......@@ -8189,7 +8202,7 @@ Paragraph.prototype =
{
this.Content[Index].Clear_TextPr();
}
}
}
},
// Добавление стиля в параграф при открытии и копировании
......@@ -8211,6 +8224,7 @@ Paragraph.prototype =
// Надо пересчитать конечный стиль
this.CompiledPr.NeedRecalc = true;
this.Recalc_RunsCompiledPr();
},
// Проверяем находится ли курсор в конце параграфа
......@@ -10314,6 +10328,7 @@ Paragraph.prototype =
this.Pr.PStyle = undefined;
this.CompiledPr.NeedRecalc = true;
this.Recalc_RunsCompiledPr();
break;
}
......@@ -10695,6 +10710,7 @@ Paragraph.prototype =
this.Pr.PStyle = undefined;
this.CompiledPr.NeedRecalc = true;
this.Recalc_RunsCompiledPr();
break;
}
......@@ -11915,6 +11931,7 @@ Paragraph.prototype =
this.Pr.PStyle = undefined;
this.CompiledPr.NeedRecalc = true;
this.Recalc_RunsCompiledPr();
break;
}
......@@ -12489,6 +12506,22 @@ Paragraph.prototype =
// Удалим старое слово
var StartPos = Element.StartPos;
var EndPos = Element.EndPos;
// Если комментарии попадают в текст, тогда сначала их надо отдельно удалить
var CommentsToDelete = {};
var EPos = EndPos.Get(0);
var SPos = StartPos.Get(0);
for (var Pos = SPos; Pos <= EPos; Pos++)
{
var Item = this.Content[Pos];
if (para_Comment === Item.Type)
CommentsToDelete[Item.CommentId] = true;
}
for (var CommentId in CommentsToDelete)
{
this.LogicDocument.Remove_Comment( CommentId, true );
}
this.Set_SelectionContentPos( StartPos, EndPos );
this.Selection.Use = true;
......
......@@ -4316,6 +4316,11 @@ ParaRun.prototype =
this.RecalcInfo.Measure = true;
},
Recalc_RunsCompiledPr : function()
{
this.Recalc_CompiledPr(true);
},
Get_CompiledPr : function(bCopy)
{
if ( true === this.RecalcInfo.TextPr )
......
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