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

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

Исправлен баг с определением переноса строки в параграфе (баг 22622). Реализована возможность добавлять целиком ран в параграф, через функцию Add.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@56091 954022d7-b5bf-4e40-9824-e11837661b57
parent a2cb243c
......@@ -12626,32 +12626,53 @@ CDocument.prototype =
//-----------------------------------------------------------------------------------
// Функции для работы с textbox
//-----------------------------------------------------------------------------------
TextBox_Put : function(sText)
TextBox_Put : function(sText, rFonts)
{
if ( false === this.Document_Is_SelectionLocked(changestype_Paragraph_Content) )
{
this.Create_NewHistoryPoint();
if ( undefined === rFonts )
{
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.TurnOffRecalc = true;
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.TurnOffRecalc = true;
var Count = sText.length;
var e = global_keyboardEvent;
for ( var Index = 0; Index < Count; Index++ )
{
if ( Index === Count - 1 )
this.TurnOffRecalc = false;
var Count = sText.length;
var e = global_keyboardEvent;
for ( var Index = 0; Index < Count; Index++ )
{
if ( Index === Count - 1 )
this.TurnOffRecalc = false;
var _char = sText.charAt(Index);
if (" " == _char)
this.Paragraph_Add( new ParaSpace(1) );
else
this.Paragraph_Add( new ParaText(_char) );
}
var _char = sText.charAt(Index);
if (" " == _char)
this.Paragraph_Add( new ParaSpace(1) );
else
this.Paragraph_Add( new ParaText(_char) );
// На случай, если Count = 0
this.TurnOffRecalc = false;
}
else
{
var Para = this.Get_CurrentParagraph();
if ( null === Para )
return;
var RunPr = Para.Get_TextPr();
if ( null === RunPr || undefined === RunPr )
RunPr = new CTextPr();
RunPr.RFonts = rFonts;
var Run = new CParaRun( Para );
Run.Set_Pr( RunPr );
Para.Add( Run );
this.Recalculate();
}
// На случай, если Count = 0
this.TurnOffRecalc = false;
}
},
//-----------------------------------------------------------------------------------
......
......@@ -373,7 +373,39 @@ ParaHyperlink.prototype =
Add : function(Item)
{
this.Content[this.State.ContentPos].Add( Item );
switch (Item.Type)
{
case para_Run :
{
var CurItem = this.Content[this.State.ContentPos];
switch ( CurItem.Type )
{
case para_Run :
{
var NewRun = CurItem.Split2(CurItem.State.ContentPos);
this.Internal_Content_Add( CurPos + 1, Item );
this.Internal_Content_Add( CurPos + 2, NewRun );
break;
}
default:
{
this.Content[this.State.ContentPos].Add( Item );
break;
}
}
break;
}
default :
{
this.Content[this.State.ContentPos].Add( Item );
break;
}
}
},
Remove : function(Direction, bOnAddText)
......
This diff is collapsed.
......@@ -831,16 +831,20 @@ ParaRun.prototype =
Split : function (ContentPos, Depth)
{
var CurPos = ContentPos.Get(Depth);
return this.Split2( CurPos );
},
Split2 : function(Pos)
{
// Создаем новый ран
var NewRun = new ParaRun(this.Paragraph);
// Копируем настройки
NewRun.Set_Pr( this.Pr.Copy() );
// TODO: Как только избавимся от para_End переделать тут
// Проверим, если наш ран содержит para_End, тогда мы должны para_End переметить в правый ран
var CheckEndPos = -1;
var CheckEndPos2 = Math.min( CurPos, this.Content.length );
for ( var Pos = 0; Pos < CheckEndPos2; Pos++ )
......@@ -851,7 +855,7 @@ ParaRun.prototype =
break;
}
}
if ( -1 !== CheckEndPos )
CurPos = CheckEndPos;
......
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