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

Исправлен баг с компиляцией стиля параграфа в совместном редактировании (баг...

Исправлен баг с компиляцией стиля параграфа в совместном редактировании (баг 24531). Исправлен баг с выделением при drag-n-drop (баг 24529). Исправлен баг с drag-n-drop при переносе переграфа целиком (баги 24523, 24513).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@56444 954022d7-b5bf-4e40-9824-e11837661b57
parent 0ce4aef9
...@@ -1591,6 +1591,8 @@ CAbstractNum.prototype = ...@@ -1591,6 +1591,8 @@ CAbstractNum.prototype =
break; break;
} }
} }
return Writer; return Writer;
}, },
...@@ -1612,6 +1614,7 @@ CAbstractNum.prototype = ...@@ -1612,6 +1614,7 @@ CAbstractNum.prototype =
var Type = Reader.GetLong(); var Type = Reader.GetLong();
var iLvl = 0;
switch ( Type ) switch ( Type )
{ {
case historyitem_AbstractNum_LvlChange: case historyitem_AbstractNum_LvlChange:
...@@ -1619,7 +1622,7 @@ CAbstractNum.prototype = ...@@ -1619,7 +1622,7 @@ CAbstractNum.prototype =
// Long : iLvl // Long : iLvl
// Variable : Lvl // Variable : Lvl
var iLvl = Reader.GetLong(); iLvl = Reader.GetLong();
this.Read_Lvl_FromBinary( this.Lvl[iLvl], Reader ); this.Read_Lvl_FromBinary( this.Lvl[iLvl], Reader );
break; break;
...@@ -1630,13 +1633,16 @@ CAbstractNum.prototype = ...@@ -1630,13 +1633,16 @@ CAbstractNum.prototype =
// Long : iLvl // Long : iLvl
// Vairable : TextPr // Vairable : TextPr
var iLvl = Reader.GetLong(); iLvl = Reader.GetLong();
this.Lvl[iLvl].TextPr = new CTextPr(); this.Lvl[iLvl].TextPr = new CTextPr();
this.Lvl[iLvl].TextPr.Read_FromBinary(Reader); this.Lvl[iLvl].TextPr.Read_FromBinary(Reader);
break; break;
} }
} }
// Пересчитываем стили у все параграфов с данной нумерацией
this.Recalc_CompiledPr(iLvl);
}, },
Write_ToBinary2 : function(Writer) Write_ToBinary2 : function(Writer)
...@@ -1669,6 +1675,26 @@ CAbstractNum.prototype = ...@@ -1669,6 +1675,26 @@ CAbstractNum.prototype =
Load_LinkData : function(LinkData) Load_LinkData : function(LinkData)
{ {
},
Recalc_CompiledPr : function(iLvl)
{
// Ищем все параграфы, который используют данную нумерацию и проставляем у них, то что их стиль
// нужно перекомпилировать.
var NumPr = new CNumPr();
NumPr.NumId = this.Id;
NumPr.Lvl = iLvl;
var LogicDocument = editor.WordControl.m_oLogicDocument;
var AllParagraphs = LogicDocument.Get_AllParagraphs_ByNumbering( NumPr );
var Count = AllParagraphs.length;
for ( var Index = 0; Index < Count; Index++ )
{
var Para = AllParagraphs[Index];
Para.Recalc_CompiledPr();
}
}, },
//сравниваем abstractNum //сравниваем abstractNum
......
...@@ -223,7 +223,7 @@ Paragraph.prototype = ...@@ -223,7 +223,7 @@ Paragraph.prototype =
// Копируем настройки // Копируем настройки
Para.Set_Pr(this.Pr.Copy()); Para.Set_Pr(this.Pr.Copy());
Para.TextPr.Set_Value( this.TextPr.Value ); Para.TextPr.Set_Value( this.TextPr.Value.Copy() );
// Удаляем содержимое нового параграфа // Удаляем содержимое нового параграфа
Para.Internal_Content_Remove2(0, Para.Content.length); Para.Internal_Content_Remove2(0, Para.Content.length);
...@@ -11364,14 +11364,14 @@ Paragraph.prototype = ...@@ -11364,14 +11364,14 @@ Paragraph.prototype =
// Подправим селект. Заметим, что метки выделения изменяются внутри функции Internal_Content_Add // Подправим селект. Заметим, что метки выделения изменяются внутри функции Internal_Content_Add
// за счет того, что EndPos - StartPos > 1. // за счет того, что EndPos - StartPos > 1.
if ( this.Selection.StartPos < this.Selection.EndPos && true === this.Content[this.Selection.StartPos].Selection_IsEmpty() ) if ( this.Selection.StartPos < this.Selection.EndPos && true === this.Content[this.Selection.StartPos].Selection_IsEmpty(true) )
this.Selection.StartPos++; this.Selection.StartPos++;
else if ( this.Selection.EndPos < this.Selection.StartPos && true === this.Content[this.Selection.EndPos].Selection_IsEmpty() ) else if ( this.Selection.EndPos < this.Selection.StartPos && true === this.Content[this.Selection.EndPos].Selection_IsEmpty(true) )
this.Selection.EndPos++; this.Selection.EndPos++;
if ( this.Selection.StartPos < this.Selection.EndPos && true === this.Content[this.Selection.EndPos].Selection_IsEmpty() ) if ( this.Selection.StartPos < this.Selection.EndPos && true === this.Content[this.Selection.EndPos].Selection_IsEmpty(true) )
this.Selection.EndPos--; this.Selection.EndPos--;
else if ( this.Selection.EndPos < this.Selection.StartPos && true === this.Content[this.Selection.StartPos].Selection_IsEmpty() ) else if ( this.Selection.EndPos < this.Selection.StartPos && true === this.Content[this.Selection.StartPos].Selection_IsEmpty(true) )
this.Selection.StartPos--; this.Selection.StartPos--;
} }
} }
...@@ -13764,12 +13764,18 @@ Paragraph.prototype = ...@@ -13764,12 +13764,18 @@ Paragraph.prototype =
StartPos = this.Selection.EndPos; StartPos = this.Selection.EndPos;
EndPos = this.Selection.StartPos; EndPos = this.Selection.StartPos;
} }
if ( true === this.Selection_IsFromStart() && true === this.Selection_CheckParaEnd() )
{
DocContent.Add( new CSelectedElement( this.Copy(this.Parent), true ) );
return;
}
var Para = new Paragraph(this.DrawingDocument, this.Parent, 0, 0, 0, 0, 0); var Para = new Paragraph(this.DrawingDocument, this.Parent, 0, 0, 0, 0, 0);
// Копируем настройки // Копируем настройки
Para.Set_Pr(this.Pr.Copy()); Para.Set_Pr(this.Pr.Copy());
Para.TextPr.Set_Value( this.TextPr.Value ); Para.TextPr.Set_Value( this.TextPr.Value.Copy() );
// Копируем содержимое параграфа // Копируем содержимое параграфа
for ( var Pos = StartPos; Pos <= EndPos; Pos++ ) for ( var Pos = StartPos; Pos <= EndPos; Pos++ )
......
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