Commit 05ba014c authored by Ilya.Kirillov's avatar Ilya.Kirillov

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

Исправлен баг с обновлением информации об исправлении. Сделана отрисовка удаленных элементов формул в режиме рецензирования. Сделан начальный вариант удаления в режиме рецензирования.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@66506 954022d7-b5bf-4e40-9824-e11837661b57
parent b53d1b78
......@@ -843,6 +843,10 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
ParaMath.prototype.Remove = function(Direction, bOnAddText)
{
var TrackRevisions = null;
if (this.Paragraph && this.Paragraph.LogicDocument)
TrackRevisions = this.Paragraph.LogicDocument.Is_TrackRevisions();
var oSelectedContent = this.GetSelectContent();
var nStartPos = oSelectedContent.Start;
......@@ -852,6 +856,7 @@ ParaMath.prototype.Remove = function(Direction, bOnAddText)
if (nStartPos === nEndPos)
{
var oElement = oContent.getElem(nStartPos);
var ElementReviewType = oElement.Get_ReviewType();
// Если данный элемент - ран, удаляем внутри рана, если нет, тогда удаляем целиком элемент
if (para_Math_Run === oElement.Type)
......@@ -933,17 +938,31 @@ ParaMath.prototype.Remove = function(Direction, bOnAddText)
}
else
{
oContent.Remove_FromContent(nStartPos, 1);
this.Selection_Remove();
oContent.CurPos = nStartPos;
if (para_Math_Run === oContent.Content[nStartPos].Type)
oContent.Content[nStartPos].Cursor_MoveToStartPos();
if (true === TrackRevisions)
{
if (reviewtype_Common === ElementReviewType)
{
oElement.Set_ReviewType(reviewtype_Remove);
}
else if (reviewtype_Add === ElementReviewType)
{
oContent.Remove_FromContent(nStartPos, 1);
if (para_Math_Run === oContent.Content[nStartPos].Type)
oContent.Content[nStartPos].Cursor_MoveToStartPos();
}
}
else
{
oContent.Remove_FromContent(nStartPos, 1);
if (para_Math_Run === oContent.Content[nStartPos].Type)
oContent.Content[nStartPos].Cursor_MoveToStartPos();
}
oContent.Correct_Content();
oContent.Correct_ContentPos(-1); // -1, потому что нам надо встать перед элементом, а не после
this.Selection_Remove();
}
}
else
......@@ -959,25 +978,52 @@ ParaMath.prototype.Remove = function(Direction, bOnAddText)
var oStartElement = oContent.getElem(nStartPos);
var oEndElement = oContent.getElem(nEndPos);
// Если последний элемент - ран, удаляем внутри, если нет, тогда удаляем целиком элемент
if (para_Math_Run === oEndElement.Type)
oEndElement.Remove(Direction);
else
oContent.Remove_FromContent(nEndPos, 1);
// Удаляем все промежуточные элементы
oContent.Remove_FromContent(nStartPos + 1, nEndPos - nStartPos - 1);
this.Selection_Remove();
oContent.CurPos = nStartPos;
if (true === TrackRevisions)
{
for (var CurPos = nEndPos; CurPos >= nStartPos; --CurPos)
{
var Element = oContent.getElem(CurPos);
var ElementReviewType = Element.Get_ReviewType();
// Если первый элемент - ран, удаляем внутри рана, если нет, тогда удаляем целиком элемент
if (para_Math_Run === oStartElement.Type)
oStartElement.Remove(Direction);
if (para_Math_Run === Element.Type && (CurPos === nEndPos || CurPos === nStartPos))
{
// Удаление разруливается внутри рана
Element.Remove(Direction);
}
else
{
if (reviewtype_Common === ElementReviewType)
{
Element.Set_ReviewType(reviewtype_Remove);
}
else if (reviewtype_Add === ElementReviewType)
{
oContent.Remove_FromContent(CurPos, 1);
}
}
}
}
else
oContent.Remove_FromContent(nStartPos, 1);
{
// Если последний элемент - ран, удаляем внутри, если нет, тогда удаляем целиком элемент
if (para_Math_Run === oEndElement.Type)
oEndElement.Remove(Direction);
else
oContent.Remove_FromContent(nEndPos, 1);
oContent.CurPos = nStartPos;
// Удаляем все промежуточные элементы
oContent.Remove_FromContent(nStartPos + 1, nEndPos - nStartPos - 1);
// Если первый элемент - ран, удаляем внутри рана, если нет, тогда удаляем целиком элемент
if (para_Math_Run === oStartElement.Type)
oStartElement.Remove(Direction);
else
oContent.Remove_FromContent(nStartPos, 1);
}
oContent.Correct_Content();
oContent.Correct_ContentPos(Direction);
this.Selection_Remove();
}
};
......@@ -3696,9 +3742,9 @@ CChangesMathEqArrayPr.prototype.Load_Changes = function(Reader, Class)
function CChangesMathBaseReviewType(NewType, NewInfo, OldType, OldInfo)
{
this.NewType = NewType;
this.NewInfo = NewInfo ? undefined : NewInfo.Copy();
this.NewInfo = NewInfo ? NewInfo.Copy() : undefined;
this.OldType = OldType;
this.OldInfo = OldInfo ? undefined : OldInfo.Copy();
this.OldInfo = OldInfo ? OldInfo.Copy() : undefined;
}
CChangesMathBaseReviewType.prototype.Type = historyitem_Math_ReviewType;
CChangesMathBaseReviewType.prototype.Undo = function(Class)
......
......@@ -4590,9 +4590,9 @@ ParaRun.prototype.Draw_Lines = function(PDSL)
if (this.Paragraph)
{
if (bAddReview)
aUnderline.Add(UnderlineY, UnderlineY, X, X + ItemWidthVisible, LineW, 255, 0, 0);
aUnderline.Add(UnderlineY, UnderlineY, X, X + ItemWidthVisible, LineW, REVIEW_COLOR.r, REVIEW_COLOR.g, REVIEW_COLOR.b);
else if (bRemReview)
aStrikeout.Add(StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, 255, 0, 0);
aStrikeout.Add(StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, REVIEW_COLOR.r, REVIEW_COLOR.g, REVIEW_COLOR.b);
}
X += ItemWidthVisible;
......@@ -4661,7 +4661,9 @@ ParaRun.prototype.Draw_Lines = function(PDSL)
case para_Math_BreakOperator:
case para_Math_Ampersand:
{
if ( true === CurTextPr.DStrikeout )
if (true === bRemReview)
aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, REVIEW_COLOR.r, REVIEW_COLOR.g, REVIEW_COLOR.b, undefined, CurTextPr );
else if (true === CurTextPr.DStrikeout)
aDStrikeout.Add( StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b, undefined, CurTextPr );
else if ( true === CurTextPr.Strikeout )
aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b, undefined, CurTextPr );
......@@ -4673,6 +4675,8 @@ ParaRun.prototype.Draw_Lines = function(PDSL)
case para_Math_Placeholder:
{
var ctrPrp = this.Parent.GetCtrPrp();
if (true === bRemReview)
aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, REVIEW_COLOR.r, REVIEW_COLOR.g, REVIEW_COLOR.b, undefined, CurTextPr );
if(true === ctrPrp.DStrikeout)
aDStrikeout.Add( StrikeoutY, StrikeoutY, X, X + ItemWidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b, undefined, CurTextPr );
else if(true === ctrPrp.Strikeout)
......
......@@ -1720,6 +1720,10 @@ CMathBase.prototype.Draw_Lines = function(PDSL)
var aStrikeout = PDSL.Strikeout;
var aDStrikeout = PDSL.DStrikeout;
var ReviewType = this.Get_ReviewType();
var bAddReview = reviewtype_Add === ReviewType ? true : false;
var bRemReview = reviewtype_Remove === ReviewType ? true : false;
var ArgSize = this.Get_CompiledArgSize();
var fontCoeff = MatGetKoeffArgSize(CtrPrp.FontSize, ArgSize.value);
......@@ -1761,7 +1765,9 @@ CMathBase.prototype.Draw_Lines = function(PDSL)
var Bound = this.Bounds.Get_LineBound(CurLine, CurRange);
if ( true === CtrPrp.DStrikeout )
if (true === bRemReview)
aStrikeout.Add(Y, Y, X, X + Bound.W, LineW, REVIEW_COLOR.r, REVIEW_COLOR.g, REVIEW_COLOR.b);
else if ( true === CtrPrp.DStrikeout )
aDStrikeout.Add( Y, Y, X, X + Bound.W, LineW, CurColor.r, CurColor.g, CurColor.b );
else if ( true === CtrPrp.Strikeout )
aStrikeout.Add( Y, Y, X, X + Bound.W, LineW, CurColor.r, CurColor.g, CurColor.b );
......@@ -1783,6 +1789,7 @@ CMathBase.prototype.Draw_Lines = function(PDSL)
this.Content[CurPos].Draw_Lines(PDSL);
PDSL.X = Bound.X + Bound.W;
};
CMathBase.prototype.Make_ShdColor = function(PDSE, CurTextPr)
......@@ -2318,20 +2325,17 @@ CMathBase.prototype.Get_ReviewType = function()
{
return this.ReviewType;
};
CMathBase.prototype.Set_ReviewType = function(Value)
CMathBase.prototype.Set_ReviewType = function(Type)
{
CMathBase.superclass.Set_ReviewType.apply(this, arguments);
if (Value !== this.ReviewType)
if (Type !== this.ReviewType)
{
var OldReviewType = this.ReviewType;
var OldReviewInfo = this.ReviewInfo.Copy();
this.ReviewType = Value;
this.ReviewInfo.Update();
var NewInfo = new CReviewInfo();
NewInfo.Update();
History.Add(this, new CChangesMathBaseReviewType(Value, this.ReviewInfo, OldReviewType, OldReviewInfo));
this.private_UpdateTrackRevisions();
History.Add(this, new CChangesMathBaseReviewType(Type, NewInfo, this.ReviewType, this.ReviewInfo));
this.raw_SetReviewType(Type, NewInfo);
}
};
CMathBase.prototype.Set_ReviewTypeWithInfo = function(ReviewType, ReviewInfo)
......
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