Commit 42976085 authored by Ilya.Kirillov's avatar Ilya.Kirillov

Поправлена функция копирования для класс CFraction. Сделано, чтобы при...

Поправлена функция копирования для класс  CFraction. Сделано, чтобы при удалении последнего элемента в формуле сама формула удалялась. Поправлена функция копирования в ParaRun для формул.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58741 954022d7-b5bf-4e40-9824-e11837661b57
parent 74740a79
......@@ -102,6 +102,8 @@ ParaMath.prototype.Copy = function(Selected)
/// argSize, bDot и bRoot выставить на объединении контентов
NewMath.SetNeedResize();
return NewMath;
};
......@@ -112,7 +114,13 @@ ParaMath.prototype.Set_Paragraph = function(Paragraph)
ParaMath.prototype.Is_Empty = function()
{
return this.Root.content.length == 0;
if (this.Root.content.length <= 0)
return true;
if (1 === this.Root.content.length)
return this.Root.content[0].Is_Empty({SkipPlcHldr : true});
return false;
};
ParaMath.prototype.Is_StartFromNewLine = function()
......
......@@ -2321,8 +2321,7 @@ Paragraph.prototype =
if ( true !== this.Content[this.CurPos.ContentPos].Selection_IsUse() )
{
this.Selection_Remove();
this.Correct_Content(StartPos, EndPos);
this.Correct_Content();
}
else
{
......@@ -2332,7 +2331,7 @@ Paragraph.prototype =
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
this.Correct_Content(StartPos, EndPos);
this.Correct_Content();
this.Document_SetThisElementCurrent(false);
......@@ -4813,7 +4812,7 @@ Paragraph.prototype =
{
// В данной функции мы корректируем содержимое параграфа:
// 1. Спаренные пустые раны мы удаляем (удаляем 1 ран)
// 2. Удаляем пустые гиперссылки
// 2. Удаляем пустые гиперссылки и пустые формулы
// 3. Добавляем пустой ран в место, где нет рана (например, между двумя идущими подряд гиперссылками)
// 4. Удаляем пустые комментарии
......@@ -4825,7 +4824,7 @@ Paragraph.prototype =
{
var CurElement = this.Content[CurPos];
if ( para_Hyperlink === CurElement.Type && true === CurElement.Is_Empty() )
if ((para_Hyperlink === CurElement.Type || para_Math === CurElement.Type) && true === CurElement.Is_Empty())
{
this.Internal_Content_Remove( CurPos );
CurPos++;
......@@ -4865,7 +4864,7 @@ Paragraph.prototype =
else
{
// TODO (Para_End): Предпоследний элемент мы не проверяем, т.к. на ран с Para_End мы не ориентируемся
if ( true === CurElement.Is_Empty() && CurPos < this.Content.length - 2 && para_Run === this.Content[CurPos + 1].Type )
if ( true === CurElement.Is_Empty() && CurPos < this.Content.length - 1 && para_Run === this.Content[CurPos + 1].Type )
this.Internal_Content_Remove( CurPos );
}
}
......@@ -4876,6 +4875,13 @@ Paragraph.prototype =
this.LogicDocument.Remove_Comment( CommentsToDelete[CommentIndex], true, false );
}
// Проверим, чтобы предпоследний элемент был Run
if (1 === this.Content.length || para_Run !== this.Content[this.Content.length - 2].Type)
{
var NewRun = new ParaRun(this);
this.Internal_Content_Add(this.Content.length - 1, NewRun);
}
this.Correct_ContentPos2();
},
......
......@@ -96,14 +96,14 @@ ParaRun.prototype.Save_StartState = function()
//-----------------------------------------------------------------------------------
ParaRun.prototype.Copy = function(Selected)
{
var NewRun = new ParaRun(this.Paragraph);
var bMath = this.Type == para_Math_Run ? true : false;
var NewRun = new ParaRun(this.Paragraph, bMath);
NewRun.Set_Pr( this.Pr.Copy() );
if(this.Type == para_Math_Run)
{
if(true === bMath)
NewRun.MathPrp = this.MathPrp.Copy();
}
var StartPos = 0;
var EndPos = this.Content.length;
......@@ -216,10 +216,11 @@ ParaRun.prototype.Is_Empty = function(Props)
{
var SkipAnchor = (undefined !== Props ? Props.SkipAnchor : false);
var SkipEnd = (undefined !== Props ? Props.SkipEnd : false);
var SkipPlcHldr= (undefined !== Props ? Props.SkipPlcHldr: false);
var Count = this.Content.length;
if ( true !== SkipAnchor && true !== SkipEnd )
if (true !== SkipAnchor && true !== SkipEnd && true !== SkipPlcHldr)
{
if ( Count > 0 )
return false;
......@@ -233,7 +234,7 @@ ParaRun.prototype.Is_Empty = function(Props)
var Item = this.Content[CurPos];
var ItemType = Item.Type;
if ( ( true !== SkipAnchor || para_Drawing !== ItemType || false !== Item.Is_Inline() ) && ( true !== SkipEnd || para_End !== ItemType ) )
if ((true !== SkipAnchor || para_Drawing !== ItemType || false !== Item.Is_Inline()) && (true !== SkipEnd || para_End !== ItemType) && (true !== SkipPlcHldr || true !== Item.IsPlaceholder()))
return false;
}
......
......@@ -395,6 +395,23 @@ CFraction.prototype.getPropsForWrite = function()
{
return this.Pr;
}
CFraction.prototype.Copy = function()
{
var oProps =
{
ctrPrp : this.CtrPrp.Copy(),
type : this.Pr.Type
};
var NewFraction = new CFraction(oProps);
this.Denominator.getElement().CopyTo(NewFraction.Denominator.getElement(), false);
this.Numerator.getElement().CopyTo(NewFraction.Numerator.getElement(), false);
NewFraction.fillContent();
return NewFraction;
};
CFraction.prototype.Refresh_RecalcData = function(Data)
{
}
......
......@@ -2262,9 +2262,23 @@ CMathContent.prototype =
if ( this.Selection.End >= Pos )
this.Selection.End++;
this.private_CorrectSelectionPos();
this.private_CorrectCurPos();
}
},
private_CorrectSelectionPos : function()
{
this.Selection.Start = Math.max(0, Math.min(this.content.length - 1, this.Selection.Start));
this.Selection.End = Math.max(0, Math.min(this.content.length - 1, this.Selection.End));
},
private_CorrectCurPos : function()
{
this.CurPos = Math.max(0, Math.min(this.content.length - 1, this.CurPos));
},
Add_ToContent : function(Pos, Item)
{
this.Internal_Content_Add(Pos, Item);
......@@ -2288,6 +2302,8 @@ CMathContent.prototype =
this.CurPos -= Count;
else
this.CurPos = Pos;
this.private_CorrectCurPos();
}
if ( true === this.Selection.Use )
......@@ -2307,6 +2323,8 @@ CMathContent.prototype =
else
this.Selection.End = Pos;
}
this.private_CorrectSelectionPos();
}
},
......@@ -2546,9 +2564,10 @@ CMathContent.prototype =
else
oElement = this.content[nPos].Copy(false);
OtherContent.Internal_Content_Add(OtherContent.length, oElement);
OtherContent.Internal_Content_Add(OtherContent.content.length, oElement);
}
},
Selection_Remove: function()
{
var start = this.Selection.Start,
......
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