Commit df7cb8c2 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Поправила Recalculate_CurPos (не учитывались CurLine, CurRange в CMathContent)

2. Поправила баг : не вставали на home в начале формулы, если в начале стоял пустой Run перед мат объектом
3. Поправила баг на смене текстовых настроек для случая, когда был один мат объект заселекчен
4. Поправила баг : не пересчитывались CtrPrp, когда меняли размер шрифта 
(+ добавила изменение в историю: смена CtrPrp)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57259 954022d7-b5bf-4e40-9824-e11837661b57
parent eefb8647
...@@ -4030,6 +4030,11 @@ ParaRun.prototype = ...@@ -4030,6 +4030,11 @@ ParaRun.prototype =
SearchPos.Pos.Update( FirstPos, Depth ); SearchPos.Pos.Update( FirstPos, Depth );
return true; return true;
} }
else if(this.Type == para_Math_Run && this.Parent.Is_FirstComposition())
{
SearchPos.Pos.Update( 0, Depth );
return true;
}
else else
return false; return false;
}, },
...@@ -7432,7 +7437,6 @@ ParaRun.prototype.Math_Update_Cursor = function(X, Y, CurPage, UpdateTarget) ...@@ -7432,7 +7437,6 @@ ParaRun.prototype.Math_Update_Cursor = function(X, Y, CurPage, UpdateTarget)
} }
ParaRun.prototype.Set_MathPrp = function(props) ParaRun.prototype.Set_MathPrp = function(props)
{ {
//History.Add( this, { Type : historyitem_ParaRun_TextPr, New : TextPr, Old : OldValue } );
this.MathPrp.setMathProps(props); this.MathPrp.setMathProps(props);
} }
ParaRun.prototype.Apply_StyleBold = function(Value) ParaRun.prototype.Apply_StyleBold = function(Value)
......
...@@ -1372,7 +1372,12 @@ CMathBase.prototype = ...@@ -1372,7 +1372,12 @@ CMathBase.prototype =
}, },
Apply_TextPr: function(TextPr, IncFontSize, ApplyToAll) Apply_TextPr: function(TextPr, IncFontSize, ApplyToAll)
{ {
this.CtrPrp.Merge(TextPr); if(TextPr.FontSize !== undefined)
{
History.Add( this, { Type : historyitem_Math_CtrPrpFSize, New : TextPr.FontSize, Old : this.CtrPrp.FontSize } );
this.CtrPrp.FontSize = TextPr.FontSize;
this.RecalcInfo.bCtrPrp = true;
}
for(var i=0; i < this.nRow; i++) for(var i=0; i < this.nRow; i++)
{ {
...@@ -1440,6 +1445,49 @@ CMathBase.prototype = ...@@ -1440,6 +1445,49 @@ CMathBase.prototype =
if(!this.elements[i][j].IsJustDraw()) if(!this.elements[i][j].IsJustDraw())
this.elements[i][j].Get_AllFontNames(AllFonts); this.elements[i][j].Get_AllFontNames(AllFonts);
} }
},
Undo: function(Data)
{
var type = Data.Type;
switch(type)
{
case historyitem_Math_CtrPrpFSize:
{
this.CtrPrp.FontSize = Data.Old;
this.RecalcInfo.bCtrPrp = true;
break;
}
}
},
Redo: function(Data)
{
var type = Data.Type;
switch(type)
{
case historyitem_Math_CtrPrpFSize:
{
this.CtrPrp.FontSize = Data.New;
this.RecalcInfo.bCtrPrp = true;
break;
}
}
},
Refresh_RecalcData: function()
{
if(this.ParaMath !== null)
this.ParaMath.Refresh_RecalcData(); // Refresh_RecalcData сообщает родительскому классу, что у него произошли изменения, нужно пересчитать
},
Save_Changes: function(Data, Writer)
{
},
Load_Changes : function(Reader)
{
} }
////////////////////////// //////////////////////////
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
var historyitem_Math_AddItem = 1; // Добавляем элемент var historyitem_Math_AddItem = 1; // Добавляем элемент
var historyitem_Math_RemoveItem = 2; // Удаляем элемент var historyitem_Math_RemoveItem = 2; // Удаляем элемент
var historyitem_Math_CtrPrpFSize = 3; // CtrPrp
...@@ -3928,18 +3929,6 @@ CMathContent.prototype = ...@@ -3928,18 +3929,6 @@ CMathContent.prototype =
return items; return items;
}, },
/*removeAreaSelect: function()
{
if( this.IsPlaceholder() ) //удаляем тагет
{
var empty = this.content[0]; //CEmpty
this.content.length = 0;
this.content.push( empty );
this.CurPos = 0;
}
else if( this.selectUse() ) //т.к. после того как удалили тагет у нас эти 2 значения не равны, равенство их выставляется позднее, после добавления символа
this.remove(1);
},*/
fillPlaceholders: function() fillPlaceholders: function()
{ {
this.content.length = 0; this.content.length = 0;
...@@ -3976,25 +3965,6 @@ CMathContent.prototype = ...@@ -3976,25 +3965,6 @@ CMathContent.prototype =
} }
else else
this.content[i].Math_Recalculate(this, ParaMath.Paragraph, oMeasure); this.content[i].Math_Recalculate(this, ParaMath.Paragraph, oMeasure);
/*else if(this.content[i].typeObj == MATH_PLACEHOLDER)
{
if(!this.bRoot)
{
var oWPrp = this.Parent.Get_CompiledCtrPrp_2(); // without arg Size
this.ParaMath.ApplyArgSize(oWPrp, this.argSize);
oWPrp.Italic = false;
oMeasure.SetFont(oWPrp);
this.content[i].Resize(this, oMeasure);
}
}
else
{
this.content[i].Math_Recalculate(this, ParaMath.Paragraph, oMeasure);
}*/
this.WidthToElement[i] = width; this.WidthToElement[i] = width;
...@@ -4115,12 +4085,6 @@ CMathContent.prototype = ...@@ -4115,12 +4085,6 @@ CMathContent.prototype =
} }
else else
this.content[i].Math_Draw(x, y, pGraphics); this.content[i].Math_Draw(x, y, pGraphics);
/*else if(this.content[i].typeObj == MATH_PARA_RUN)
this.content[i].Math_Draw(x, y, pGraphics);
else
this.content[i].draw(x, y, pGraphics);*/
} }
} }
...@@ -4247,43 +4211,6 @@ CMathContent.prototype = ...@@ -4247,43 +4211,6 @@ CMathContent.prototype =
if( this.argSize > -2 ) if( this.argSize > -2 )
this.argSize--; this.argSize--;
}, },
/*setItalic: function(flag)
{
var rPrp = new CTextPr();
rPrp.Italic = flag;
if(this.IsEmpty())
{
this.addRunPrp(rPrp);
}
else
{
for(var i = 1; i < this.content.length; i++)
{
if(this.content[i].value.typeObj == MATH_RUN_PRP)
this.content[i].value.Merge(rPrp);
}
}
},
setRPrp: function(RunPrp) // object CMathRun
{
for(var i = 0; i < this.content.length; i++)
{
var obj = this.content[i].value;
if(obj.typeObj == MATH_RUN_PRP)
{
obj.Merge(RunPrp);
}
else if(obj.typeObj == MATH_COMP)
{
obj.setRPrp(RunPrp);
}
}
},*/
/*apply_RunPr: function(RunPrp)
{
this.setRPrp(RunPrp);
},*/
GetCtrPrp: function() // for placeholder GetCtrPrp: function() // for placeholder
{ {
var ctrPrp = new CTextPr(); var ctrPrp = new CTextPr();
...@@ -4342,29 +4269,8 @@ CMathContent.prototype = ...@@ -4342,29 +4269,8 @@ CMathContent.prototype =
_X = this.pos.x + this.ParaMath.X + this.WidthToElement[this.CurPos]; _X = this.pos.x + this.ParaMath.X + this.WidthToElement[this.CurPos];
result = this.content[this.CurPos].Recalculate_CurPos(_X, Y, CurrentRun, 0, 0, _CurPage, UpdateCurPos, UpdateTarget, ReturnTarget); result = this.content[this.CurPos].Recalculate_CurPos(_X, Y, CurrentRun, _CurRange, _CurLine, _CurPage, UpdateCurPos, UpdateTarget, ReturnTarget);
} }
/*else
{
Y = this.pos.y + this.ParaMath.Y + this.size.ascent;
_X = this.pos.x + this.ParaMath.X + this.size.width;
*//*var ctrPrp = this.Parent.getCtrPrp();
this.ParaMath.ApplyArgSize(ctrPrp);*//*
var ctrPrp = this.Parent.Get_CompiledCtrPrp();
var sizeCursor = ctrPrp.FontSize*g_dKoef_pt_to_mm;
Y -= sizeCursor*0.8;
this.ParaMath.Paragraph.DrawingDocument.SetTargetSize(sizeCursor);
//Para.DrawingDocument.UpdateTargetFromPaint = true;
this.ParaMath.Paragraph.DrawingDocument.UpdateTarget( _X, Y, this.ParaMath.Paragraph.Get_StartPage_Absolute() + _CurPage );
result = {X: _X, Y: Y};
}*/
return result; return result;
}, },
...@@ -4539,17 +4445,6 @@ CMathContent.prototype = ...@@ -4539,17 +4445,6 @@ CMathContent.prototype =
if(startPos == endPos) if(startPos == endPos)
result = this.content[startPos].Selection_IsEmpty(); result = this.content[startPos].Selection_IsEmpty();
/*if(startPos == endPos)
{
var bRunPrp = this.content[startPos].typeObj == MATH_RUN_PRP,
bComp = this.content[startPos].typeObj == MATH_COMP;
if(bRunPrp || bComp)
result = this.content[startPos].Selection_IsEmpty();
else
result = false; // placeholder
}*/
return result; return result;
}, },
SelectToParent : function() SelectToParent : function()
...@@ -4681,10 +4576,6 @@ CMathContent.prototype = ...@@ -4681,10 +4576,6 @@ CMathContent.prototype =
SearchPos.CurX += this.pos.x + this.WidthToElement[pos]; SearchPos.CurX += this.pos.x + this.WidthToElement[pos];
this.content[pos].Get_ParaContentPosByXY(SearchPos, Depth, _CurLine, _CurRange, StepEnd); this.content[pos].Get_ParaContentPosByXY(SearchPos, Depth, _CurLine, _CurRange, StepEnd);
} }
/*else
{
this.content[pos].Get_ParaContentPosByXY(SearchPos, Depth, _CurLine, _CurRange, StepEnd);
}*/
} }
}, },
Get_ParaContentPos: function(bSelection, bStart, ContentPos) Get_ParaContentPos: function(bSelection, bStart, ContentPos)
...@@ -4879,7 +4770,9 @@ CMathContent.prototype = ...@@ -4879,7 +4770,9 @@ CMathContent.prototype =
var NewRuns; var NewRuns;
var LRun, CRun, RRun; var LRun, CRun, RRun;
if( !this.Selection.Use || (this.Selection.Use && StartPos == EndPos) ) // TextPr меняем только в одном Run var bSelectOneElement = this.Selection.Use && StartPos == EndPos;
if( !this.Selection.Use || (bSelectOneElement && this.content[StartPos].Type == MATH_PARA_RUN) ) // TextPr меняем только в одном Run
{ {
var Pos = !this.Selection.Use ? this.CurPos : StartPos; var Pos = !this.Selection.Use ? this.CurPos : StartPos;
...@@ -4907,6 +4800,10 @@ CMathContent.prototype = ...@@ -4907,6 +4800,10 @@ CMathContent.prototype =
this.Selection.End = CRunPos; this.Selection.End = CRunPos;
} }
else if(bSelectOneElement && this.content[StartPos].Type == MATH_COMP)
{
this.content[StartPos].Apply_TextPr(TextPr, IncFontSize, true);
}
else else
{ {
if(StartPos > EndPos) if(StartPos > EndPos)
...@@ -5350,6 +5247,20 @@ CMathContent.prototype = ...@@ -5350,6 +5247,20 @@ CMathContent.prototype =
{ {
return this.content[nNum]; return this.content[nNum];
}, },
Is_FirstComposition: function()
{
var result = false;
if(this.content.length > 1)
{
var bEmptyRun = this.content[0].Is_Empty(),
bEmptyRun = this.content[1].Type == para_Math_Composition;
if(bEmptyRun && bEmptyRun)
result = true;
}
return result;
},
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
......
...@@ -54,6 +54,10 @@ CMathTextPrp.prototype = ...@@ -54,6 +54,10 @@ CMathTextPrp.prototype =
this.Italic = prp.Italic; this.Italic = prp.Italic;
} }
}*/ }*/
// смена хентов
// editor.SetFontRenderingMode(2);
function CMathPosition() function CMathPosition()
{ {
this.x = 0; this.x = 0;
......
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