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 = ...@@ -12626,32 +12626,53 @@ CDocument.prototype =
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
// Функции для работы с textbox // Функции для работы с textbox
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
TextBox_Put : function(sText) TextBox_Put : function(sText, rFonts)
{ {
if ( false === this.Document_Is_SelectionLocked(changestype_Paragraph_Content) ) if ( false === this.Document_Is_SelectionLocked(changestype_Paragraph_Content) )
{ {
this.Create_NewHistoryPoint(); this.Create_NewHistoryPoint();
if ( undefined === rFonts )
{
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.TurnOffRecalc = true;
// Отключаем пересчет, включим перед последним добавлением. Поскольку, var Count = sText.length;
// у нас все добавляется в 1 параграф, так можно делать. var e = global_keyboardEvent;
this.TurnOffRecalc = true; for ( var Index = 0; Index < Count; Index++ )
{
if ( Index === Count - 1 )
this.TurnOffRecalc = false;
var Count = sText.length; var _char = sText.charAt(Index);
var e = global_keyboardEvent; if (" " == _char)
for ( var Index = 0; Index < Count; Index++ ) this.Paragraph_Add( new ParaSpace(1) );
{ else
if ( Index === Count - 1 ) this.Paragraph_Add( new ParaText(_char) );
this.TurnOffRecalc = false; }
var _char = sText.charAt(Index); // На случай, если Count = 0
if (" " == _char) this.TurnOffRecalc = false;
this.Paragraph_Add( new ParaSpace(1) ); }
else else
this.Paragraph_Add( new ParaText(_char) ); {
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 = ...@@ -373,7 +373,39 @@ ParaHyperlink.prototype =
Add : function(Item) 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) Remove : function(Direction, bOnAddText)
......
This diff is collapsed.
...@@ -831,16 +831,20 @@ ParaRun.prototype = ...@@ -831,16 +831,20 @@ ParaRun.prototype =
Split : function (ContentPos, Depth) Split : function (ContentPos, Depth)
{ {
var CurPos = ContentPos.Get(Depth); var CurPos = ContentPos.Get(Depth);
return this.Split2( CurPos );
},
Split2 : function(Pos)
{
// Создаем новый ран // Создаем новый ран
var NewRun = new ParaRun(this.Paragraph); var NewRun = new ParaRun(this.Paragraph);
// Копируем настройки // Копируем настройки
NewRun.Set_Pr( this.Pr.Copy() ); NewRun.Set_Pr( this.Pr.Copy() );
// TODO: Как только избавимся от para_End переделать тут // TODO: Как только избавимся от para_End переделать тут
// Проверим, если наш ран содержит para_End, тогда мы должны para_End переметить в правый ран // Проверим, если наш ран содержит para_End, тогда мы должны para_End переметить в правый ран
var CheckEndPos = -1; var CheckEndPos = -1;
var CheckEndPos2 = Math.min( CurPos, this.Content.length ); var CheckEndPos2 = Math.min( CurPos, this.Content.length );
for ( var Pos = 0; Pos < CheckEndPos2; Pos++ ) for ( var Pos = 0; Pos < CheckEndPos2; Pos++ )
...@@ -851,7 +855,7 @@ ParaRun.prototype = ...@@ -851,7 +855,7 @@ ParaRun.prototype =
break; break;
} }
} }
if ( -1 !== CheckEndPos ) if ( -1 !== CheckEndPos )
CurPos = 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