Commit 20e50106 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@53520 954022d7-b5bf-4e40-9824-e11837661b57
parent 7b950521
...@@ -1089,6 +1089,27 @@ CDocument.prototype = ...@@ -1089,6 +1089,27 @@ CDocument.prototype =
// Увеличиваем номер пересчета // Увеличиваем номер пересчета
this.RecalcId++; this.RecalcId++;
if ( true === Debug_ParaRunMode )
{
// Проверяем можно ли сделать быстрый пересчет
var SimpleChanges = History.Is_SimpleChanges();
if ( 1 === SimpleChanges.length )
{
var Run = SimpleChanges[0].Class;
var Para = Run.Paragraph;
var Res = Para.Recalculate_Fast( SimpleChanges );
if ( false !== Res )
{
// Перерисуем страницу, на которой произошли изменения
this.DrawingDocument.OnRecalculatePage( 0, this.Pages[0] );
this.DrawingDocument.OnEndRecalculate( false, true );
return;
}
}
}
// Очищаем данные пересчета // Очищаем данные пересчета
this.RecalcInfo.Reset(); this.RecalcInfo.Reset();
...@@ -1096,8 +1117,6 @@ CDocument.prototype = ...@@ -1096,8 +1117,6 @@ CDocument.prototype =
// Получаем данные об произошедших изменениях // Получаем данные об произошедших изменениях
var RecalcData = ( undefined === _RecalcData ? History.Get_RecalcData() : _RecalcData ); var RecalcData = ( undefined === _RecalcData ? History.Get_RecalcData() : _RecalcData );
//var SimplePara = History.Is_SimpleChanges();
//SimplePara.Recalculate_Fast();
// 1. Пересчитываем все автофигуры, которые нужно пересчитать. Изменения в них ни на что не влияют. // 1. Пересчитываем все автофигуры, которые нужно пересчитать. Изменения в них ни на что не влияют.
for ( var GraphIndex = 0; GraphIndex < RecalcData.Flow.length; GraphIndex++ ) for ( var GraphIndex = 0; GraphIndex < RecalcData.Flow.length; GraphIndex++ )
...@@ -1646,9 +1665,6 @@ CDocument.prototype = ...@@ -1646,9 +1665,6 @@ CDocument.prototype =
this.Pages[PageIndex].EndPos = Count - 1; this.Pages[PageIndex].EndPos = Count - 1;
console.log("LastRecalc: " + ((new Date().getTime() - StartTime) / 1000) ); console.log("LastRecalc: " + ((new Date().getTime() - StartTime) / 1000) );
console.log("RangesCount: " + RunRangesCount );
console.log("RangesElementCount: " + RunRangesElementsCount );
console.log("ParaRangesCount: " + ParaRangesCount );
RunRangesCount = 0; RunRangesCount = 0;
RunRangesElementsCount = 0; RunRangesElementsCount = 0;
...@@ -1706,22 +1722,20 @@ CDocument.prototype = ...@@ -1706,22 +1722,20 @@ CDocument.prototype =
return; return;
} }
this.Recalculate_Page( _PageIndex, _bStart, _StartIndex ); if ( _PageIndex > this.FullRecalc.StartPage + 2 )
{
// if ( _PageIndex > this.FullRecalc.StartPage + 2 ) this.FullRecalc.Id = setTimeout( Document_Recalculate_Page, 20 );
// { /*
// this.FullRecalc.Id = setTimeout( Document_Recalculate_Page, 20 ); this.FullRecalc.Id = setTimeout( function()
// /* {
// this.FullRecalc.Id = setTimeout( function() var LogicDocument = editor.WordControl.m_oLogicDocument;
// { var FullRecalc = LogicDocument.FullRecalc;
// var LogicDocument = editor.WordControl.m_oLogicDocument; LogicDocument.Recalculate_Page( FullRecalc.PageIndex, FullRecalc.Start, FullRecalc.StartIndex );
// var FullRecalc = LogicDocument.FullRecalc; }, 10 );
// LogicDocument.Recalculate_Page( FullRecalc.PageIndex, FullRecalc.Start, FullRecalc.StartIndex ); */
// }, 10 ); }
// */ else
// } this.Recalculate_Page( _PageIndex, _bStart, _StartIndex );
// else
// this.Recalculate_Page( _PageIndex, _bStart, _StartIndex );
} }
}, },
......
...@@ -51,6 +51,9 @@ var historyitem_Paragraph_PresentationPr_Level = 33; // Изменяем у ...@@ -51,6 +51,9 @@ var historyitem_Paragraph_PresentationPr_Level = 33; // Изменяем у
var historyitem_Paragraph_FramePr = 34; // Изменяем настройки рамки var historyitem_Paragraph_FramePr = 34; // Изменяем настройки рамки
var historyitem_Paragraph_Shd = 35; // Изменяем настройки заливки целиком var historyitem_Paragraph_Shd = 35; // Изменяем настройки заливки целиком
var historyitem_Run_AddItem = 1;
var historyitem_Run_RemoveItem = 2;
// Типы изменений в классе ParaTextPr // Типы изменений в классе ParaTextPr
var historyitem_TextPr_Change = 1; // Изменяем настройку var historyitem_TextPr_Change = 1; // Изменяем настройку
var historyitem_TextPr_Bold = 2; // Изменяем жирность var historyitem_TextPr_Bold = 2; // Изменяем жирность
...@@ -773,11 +776,11 @@ CHistory.prototype = ...@@ -773,11 +776,11 @@ CHistory.prototype =
return null; return null;
} }
if ( Class instanceof Paragraph && Class.Is_SimpleChanges(Point.Items) ) if ( Class instanceof ParaRun && Class.Is_SimpleChanges(Point.Items) )
return Class; return Point.Items;
} }
return null; return [];
}, },
Set_Additional_ExtendDocumentToPos : function() Set_Additional_ExtendDocumentToPos : function()
......
This diff is collapsed.
This diff is collapsed.
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