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

Исправлен баг с пересылкой измнений в совместном редактировании, при котором...

Исправлен баг с пересылкой измнений в совместном редактировании, при котором не в то время включался пересчет нумерации (баг 26454). Исправлен баг с drag-n-drop текста в неправильное место(баг 26443). Исправлен баг с неочисткой селекта в колонтитулах (баг 25673). Исправлен баг с неправильным пересчетом параграфов с обтеканием вокруг flow-объектов (баг 26465). Исправлен баг с зацикливанием поиска в автофигурах (баг 26437).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58231 954022d7-b5bf-4e40-9824-e11837661b57
parent f41821c5
...@@ -589,6 +589,7 @@ function CCollaborativeEditing() ...@@ -589,6 +589,7 @@ function CCollaborativeEditing()
this.m_aNeedLock = []; // Массив со списком залоченных объектов(которые были залочены, но еще не были добавлены на данном клиенте) this.m_aNeedLock = []; // Массив со списком залоченных объектов(которые были залочены, но еще не были добавлены на данном клиенте)
this.m_aLinkData = []; // Массив, указателей, которые нам надо выставить при загрузке чужих изменений this.m_aLinkData = []; // Массив, указателей, которые нам надо выставить при загрузке чужих изменений
this.m_aEndActions = []; // Массив действий, которые надо выполнить после принятия чужих изменений
this.m_bGlobalLock = false; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется) this.m_bGlobalLock = false; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется)
this.m_bGlobalLockSelection = false; // Запрещаем изменять селект и курсор this.m_bGlobalLockSelection = false; // Запрещаем изменять селект и курсор
...@@ -1083,6 +1084,16 @@ function CCollaborativeEditing() ...@@ -1083,6 +1084,16 @@ function CCollaborativeEditing()
Class.FromBinary = true; Class.FromBinary = true;
}; };
this.Clear_EndActions = function()
{
this.m_aEndActions.length = 0;
};
this.Add_EndActions = function(Class, Data)
{
this.m_aEndActions.push({Class : Class, Data : Data});
};
this.OnEnd_ReadForeignChanges = function() this.OnEnd_ReadForeignChanges = function()
{ {
var Count = this.m_aNewObjects.length; var Count = this.m_aNewObjects.length;
...@@ -1093,6 +1104,14 @@ function CCollaborativeEditing() ...@@ -1093,6 +1104,14 @@ function CCollaborativeEditing()
Class.FromBinary = false; Class.FromBinary = false;
} }
Count = this.m_aEndActions.length;
for (var Index = 0; Index < Count; Index++)
{
var Item = this.m_aEndActions[Index];
Item.Class.Process_EndLoad(Item.Data);
}
this.Clear_EndActions();
this.Clear_NewObjects(); this.Clear_NewObjects();
}; };
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
......
...@@ -8752,9 +8752,7 @@ CDocument.prototype = ...@@ -8752,9 +8752,7 @@ CDocument.prototype =
if ( 1 === ElementsCount && type_Paragraph === FirstElement.Element.GetType() && ( true === FirstElement.Element.Is_Empty() || true == FirstElement.SelectedAll ) ) if ( 1 === ElementsCount && type_Paragraph === FirstElement.Element.GetType() && ( true === FirstElement.Element.Is_Empty() || true == FirstElement.SelectedAll ) )
{ {
bConcatS = false; bConcatS = false;
DstIndex++;
if ( true === FirstElement.Element.Is_Empty() )
DstIndex++;
} }
} }
else if ( true === Para.Cursor_IsStart() ) else if ( true === Para.Cursor_IsStart() )
...@@ -10674,6 +10672,9 @@ CDocument.prototype = ...@@ -10674,6 +10672,9 @@ CDocument.prototype =
// Если нам надо повторять колонтитул, а он уже изначально повторяющийся, тогда не делаем ничего // Если нам надо повторять колонтитул, а он уже изначально повторяющийся, тогда не делаем ничего
if ( null === _CurHdrFtr ) if ( null === _CurHdrFtr )
return; return;
// Очистим селект
_CurHdrFtr.Selection_Remove();
// Просто удаляем запись о данном колонтитуле в секции // Просто удаляем запись о данном колонтитуле в секции
SectPr.Set_HdrFtr( bHeader, bFirst, bEven, null ); SectPr.Set_HdrFtr( bHeader, bFirst, bEven, null );
......
...@@ -1640,7 +1640,7 @@ CAbstractNum.prototype = ...@@ -1640,7 +1640,7 @@ CAbstractNum.prototype =
} }
// Сразу нельзя запускать пересчет, т.к. возможно еще не все ссылки проставлены // Сразу нельзя запускать пересчет, т.к. возможно еще не все ссылки проставлены
CollaborativeEditing.Add_LinkData(this, {iLvl : iLvl}); CollaborativeEditing.Add_EndActions(this, {iLvl : iLvl});
}, },
Write_ToBinary2 : function(Writer) Write_ToBinary2 : function(Writer)
...@@ -1672,7 +1672,11 @@ CAbstractNum.prototype = ...@@ -1672,7 +1672,11 @@ CAbstractNum.prototype =
Load_LinkData : function(LinkData) Load_LinkData : function(LinkData)
{ {
var iLvl = LinkData.iLvl; },
Process_EndLoad : function(Data)
{
var iLvl = Data.iLvl;
if (undefined !== iLvl) if (undefined !== iLvl)
{ {
// Пересчитываем стили у все параграфов с данной нумерацией // Пересчитываем стили у все параграфов с данной нумерацией
......
...@@ -68,14 +68,16 @@ CParagraphContentWithContentBase.prototype.protected_GetRangesCount = function(L ...@@ -68,14 +68,16 @@ CParagraphContentWithContentBase.prototype.protected_GetRangesCount = function(L
// с номерами больше, чем RangeIndex. Возвращается позиция предпоследнего отрезка, либо 0. // с номерами больше, чем RangeIndex. Возвращается позиция предпоследнего отрезка, либо 0.
CParagraphContentWithContentBase.prototype.protected_AddRange = function(LineIndex, RangeIndex) CParagraphContentWithContentBase.prototype.protected_AddRange = function(LineIndex, RangeIndex)
{ {
// Удаляем лишние записи о строках // Удаляем лишние записи о строках и отрезках
if (this.Lines[0] > LineIndex + 1) if (this.Lines[0] >= LineIndex + 1)
{ {
var RangeOffset = this.protected_GetRangeOffset(LineIndex, 0); var RangeOffset = this.protected_GetRangeOffset(LineIndex, 0) + RangeIndex * 2;
this.Lines.splice(RangeOffset, this.Lines.length - RangeOffset); this.Lines.splice(RangeOffset, this.Lines.length - RangeOffset);
this.Lines.splice(LineIndex + 1, this.Lines[0] - LineIndex);
if (this.Lines[0] !== LineIndex + 1)
this.Lines.splice(LineIndex + 1, this.Lines[0] - LineIndex);
} }
if (0 === RangeIndex) if (0 === RangeIndex)
{ {
if (this.Lines[0] !== LineIndex + 1) if (this.Lines[0] !== LineIndex + 1)
......
...@@ -278,8 +278,8 @@ CDocument.prototype.Search_GetId = function(bNext) ...@@ -278,8 +278,8 @@ CDocument.prototype.Search_GetId = function(bNext)
if ( null != Id ) if ( null != Id )
return Id; return Id;
ParaDrawing.GoTo_Text( true === bNext ? false : true, false );
this.DrawingObjects.resetSelection(); this.DrawingObjects.resetSelection();
ParaDrawing.GoTo_Text( true === bNext ? false : true, false );
} }
if ( docpostype_Content === this.CurPos.Type ) if ( docpostype_Content === this.CurPos.Type )
......
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