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

Сделан drag-n-drop формулы в формулу. Сделан запрет на перенос в формулу не формулы.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58829 954022d7-b5bf-4e40-9824-e11837661b57
parent 17323484
...@@ -8676,9 +8676,60 @@ CDocument.prototype = ...@@ -8676,9 +8676,60 @@ CDocument.prototype =
return; return;
} }
// В формулу вставляем только формулу
var ParaNearPos = NearPos.Paragraph.Get_ParaNearestPos(NearPos);
if (null === ParaNearPos || ParaNearPos.Classes.length < 2)
{
History.Remove_LastPoint();
return;
}
var LastClass = ParaNearPos.Classes[ParaNearPos.Classes.length - 1];
if (para_Math_Run === LastClass.Type)
{
// Проверяем, что вставляемый контент тоже формула
var Element = DocContent.Elements[0].Element;
var MathRun = LastClass;
if (1 !== DocContent.Elements.length || type_Paragraph !== Element.Get_Type() || 2 !== Element.Content.length || para_Math !== Element.Content[0].Type || null === MathRun.Parent)
{
History.Remove_LastPoint();
return;
}
// Если надо удаляем выделенную часть (пересчет отключаем на время удаления)
if ( true !== bCopy )
{
this.TurnOffRecalc = true;
this.Remove(1, false, false, false);
this.TurnOffRecalc = false;
}
this.Selection_Remove();
var NewMathRun = MathRun.Split2(ParaNearPos.NearPos.ContentPos.Data[ParaNearPos.NearPos.ContentPos.Depth - 1]);
var MathContent = ParaNearPos.Classes[ParaNearPos.Classes.length - 2];
var MathContentPos = MathContent.CurPos; // TODO: текущая позиция выставилась в функции Check_NearestPos
MathContent.Add_ToContent(MathContentPos + 1, NewMathRun);
MathContent.Insert_MathContent(Element.Content[0].Root, MathContentPos + 1);
this.Recalculate();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
this.Document_UpdateRulersState();
return;
}
else if (para_Run !== LastClass.Type)
{
History.Remove_LastPoint();
return;
}
// Если мы копируем, тогда не надо проверять выделенные параграфы, а если переносим, тогда проверяем // Если мы копируем, тогда не надо проверять выделенные параграфы, а если переносим, тогда проверяем
var CheckChangesType = (true !== bCopy ? changestype_Document_Content : changestype_None); var CheckChangesType = (true !== bCopy ? changestype_Document_Content : changestype_None);
if ( false === this.Document_Is_SelectionLocked( CheckChangesType, { Type : changestype_2_ElementsArray_and_Type, Elements : [Para], CheckType : changestype_Paragraph_Content } ) ) if ( false === this.Document_Is_SelectionLocked( CheckChangesType, { Type : changestype_2_ElementsArray_and_Type, Elements : [Para], CheckType : changestype_Paragraph_Content } ) )
{ {
// Если надо удаляем выделенную часть (пересчет отключаем на время удаления) // Если надо удаляем выделенную часть (пересчет отключаем на время удаления)
......
...@@ -393,16 +393,14 @@ ParaMath.prototype.Clear_TextPr = function() ...@@ -393,16 +393,14 @@ ParaMath.prototype.Clear_TextPr = function()
ParaMath.prototype.Check_NearestPos = function(ParaNearPos, Depth) ParaMath.prototype.Check_NearestPos = function(ParaNearPos, Depth)
{ {
/*var MathNearPos = new CParagraphElementNearPos(); this.Selection_Remove();
MathNearPos.NearPos = ParaNearPos.NearPos; this.Set_ParaContentPos(ParaNearPos.NearPos.ContentPos, Depth);
MathNearPos.Depth = Depth;
// CParagraphNearPos for ParaNearPos var oSelectedContent = this.GetSelectContent();
this.NearPosArray.push( MathNearPos ); var oContent = oSelectedContent.Content;
ParaNearPos.Classes.push( this );
var CurPos = ParaNearPos.NearPos.ContentPos.Get(Depth); ParaNearPos.Classes.push(oContent);
this.Content[CurPos].Check_NearestPos( ParaNearPos, Depth + 1 );*/ ParaNearPos.Classes.push(oContent.content[oContent.CurPos]);
}; };
ParaMath.prototype.Get_DrawingObjectRun = function(Id) ParaMath.prototype.Get_DrawingObjectRun = function(Id)
......
...@@ -395,7 +395,7 @@ CBorderBox.prototype.Read_FromBinary2 = function( Reader ) ...@@ -395,7 +395,7 @@ CBorderBox.prototype.Read_FromBinary2 = function( Reader )
this.Id = Reader.GetString2(); this.Id = Reader.GetString2();
this.baseContent = g_oTableId.Get_ById(Reader.GetString2()); this.baseContent = g_oTableId.Get_ById(Reader.GetString2());
this.CtrlPr.Read_FromBinary(Reader); this.CtrPrp.Read_FromBinary(Reader);
this.Pr.Read_FromBinary(Reader); this.Pr.Read_FromBinary(Reader);
this.fillContent(); this.fillContent();
......
...@@ -2640,7 +2640,9 @@ CMathContent.prototype = ...@@ -2640,7 +2640,9 @@ CMathContent.prototype =
{ {
this.content.splice(Data.Pos, Data.EndPos - Data.Pos + 1); this.content.splice(Data.Pos, Data.EndPos - Data.Pos + 1);
if (null !== this.ParaMath)
this.ParaMath.SetNeedResize(); this.ParaMath.SetNeedResize();
break; break;
} }
case historyitem_Math_RemoveItem: case historyitem_Math_RemoveItem:
...@@ -2652,7 +2654,9 @@ CMathContent.prototype = ...@@ -2652,7 +2654,9 @@ CMathContent.prototype =
this.content = Array_start.concat(Data.Items, Array_end); this.content = Array_start.concat(Data.Items, Array_end);
if (null !== this.ParaMath)
this.ParaMath.SetNeedResize(); this.ParaMath.SetNeedResize();
break; break;
} }
} }
...@@ -2672,14 +2676,18 @@ CMathContent.prototype = ...@@ -2672,14 +2676,18 @@ CMathContent.prototype =
this.content = Array_start.concat(Data.Items, Array_end); this.content = Array_start.concat(Data.Items, Array_end);
if (null !== this.ParaMath)
this.ParaMath.SetNeedResize(); this.ParaMath.SetNeedResize();
break; break;
} }
case historyitem_Math_RemoveItem: case historyitem_Math_RemoveItem:
{ {
this.content.splice(Data.Pos, Data.EndPos - Data.Pos + 1); this.content.splice(Data.Pos, Data.EndPos - Data.Pos + 1);
if (null !== this.ParaMath)
this.ParaMath.SetNeedResize(); this.ParaMath.SetNeedResize();
break; break;
} }
} }
...@@ -2802,6 +2810,25 @@ CMathContent.prototype = ...@@ -2802,6 +2810,25 @@ CMathContent.prototype =
if(this.ParaMath !== null) if(this.ParaMath !== null)
this.ParaMath.Refresh_RecalcData(); // Refresh_RecalcData сообщает родительскому классу, что у него произошли изменения, нужно пересчитать this.ParaMath.Refresh_RecalcData(); // Refresh_RecalcData сообщает родительскому классу, что у него произошли изменения, нужно пересчитать
}, },
Insert_MathContent : function(oMathContent, Pos)
{
if (undefined === Pos)
Pos = this.CurPos;
var nCount = oMathContent.content.length;
for (var nIndex = 0; nIndex < nCount; nIndex++)
{
this.Internal_Content_Add(Pos + nIndex, oMathContent.content[nIndex], false);
}
if (null !== this.ParaMath)
this.ParaMath.SetNeedResize();
this.CurPos = Pos + 1 + nCount;
this.Correct_Content(true);
},
Load_FromMenu: function(Type, Paragraph) Load_FromMenu: function(Type, Paragraph)
{ {
var oFName; var oFName;
......
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