Commit e34fd7ad authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander.Trofimov

Bug 22457 - Шрифт заменяется на Times New Roman при вставке текста из сторонних приложений

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53148 954022d7-b5bf-4e40-9824-e11837661b57
parent d5663bac
......@@ -2779,6 +2779,7 @@ function PasteProcessor(api, bUploadImage, bUploadFonts, bNested)
//���������� ������(�������� ��� ������� ������� �������, ������ ��� ������� ����������� ������ � ��������� � ������� ����� �������� ���� �����������)
this.dScaleKoef = 1;
this.bUseScaleKoef = false;
this.bIsPlainText = false;
this.MsoStyles = {"mso-style-type": 1, "mso-pagination": 1, "mso-line-height-rule": 1, "mso-style-textfill-fill-color": 1, "mso-tab-count": 1,
"tab-stops": 1, "list-style-type": 1, "mso-special-character": 1, "mso-padding-alt": 1, "mso-border-insidev": 1,
......@@ -2955,6 +2956,8 @@ PasteProcessor.prototype =
var oFindObj = Item.Internal_FindBackward(Item.CurPos.ContentPos, [para_TextPr]);
var TextPr = null;
var nContentPos = Item.CurPos.ContentPos;
if(!this.bIsPlainText)
{
if ( true === oFindObj.Found && para_TextPr === oFindObj.Type )
{
TextPr = Item.Content[oFindObj.LetterPos].Copy();
......@@ -2965,8 +2968,7 @@ PasteProcessor.prototype =
nContentPos++;
}
}
else
TextPr = new ParaTextPr();
}
for(var i = 0; i < nContentLength - 2; ++i)// -2 �� ����������� ����� ���������
{
......@@ -2977,7 +2979,11 @@ PasteProcessor.prototype =
nContentPos++;
}
}
if(null != TextPr)
{
Item.Internal_Content_Add(nContentPos, TextPr);
nContentPos++;
}
Item.Set_ContentPos(nContentPos, true, -1);
}
Item.RecalcInfo.Set_Type_0(pararecalc_0_All);
......@@ -3449,6 +3455,7 @@ PasteProcessor.prototype =
var presentation = editor.WordControl.m_oLogicDocument;
this.oRootNode = node;
this.bIsPlainText = this._CheckIsPlainText(node);
this._Prepeare(node,
function(){
oThis.aContent = new Array();
......@@ -4976,6 +4983,8 @@ PasteProcessor.prototype =
break;
}
if(node != oFirstTextChild)
{
if(!this.bIsPlainText)
{
var oLvl = AbstractNum.Lvl[0];
var oTextPr = this._read_rPr(oFirstTextChild);
......@@ -4985,6 +4994,7 @@ PasteProcessor.prototype =
AbstractNum.Apply_TextPr(0, oTextPr);
}
}
}
Para.Numbering_Add( NumId, 0 );
}
else
......@@ -5035,6 +5045,8 @@ PasteProcessor.prototype =
Para.CompiledPr.NeedRecalc = true;
},
_commit_rPr : function(node)
{
if(!this.bIsPlainText)
{
var rPr = this._read_rPr(node);
//���� ��������� ��������� ���������� ��������� �������
......@@ -5043,6 +5055,7 @@ PasteProcessor.prototype =
this._Paragraph_Add( new ParaTextPr( rPr ) );
this.oCur_rPr = rPr;
}
}
},
_read_rPr : function(node)
{
......@@ -5814,6 +5827,31 @@ PasteProcessor.prototype =
//������� ��������, ������� ��������� � ������� �� ���������
cell.Content.Internal_Content_Remove(0, 1);
},
_CheckIsPlainText : function(node)
{
var bIsPlainText = true;
for(var i = 0, length = node.childNodes.length; i < length; i++)
{
var child = node.childNodes[i];
if(Node.ELEMENT_NODE == child.nodeType)
{
var sClass = child.getAttribute("class");
var sStyle = child.getAttribute("style");
if(sClass || sStyle)
{
bIsPlainText = false;
break;
}
else if(!this._CheckIsPlainText(child))
{
bIsPlainText = false;
break;
}
}
}
return bIsPlainText;
},
_Execute : function(node, pPr, bRoot, bAddParagraph, bInBlock)
{
//bAddParagraph ���� �������� �� ������� _Decide_AddParagraph, ��������� �������� ��� ���.
......@@ -6346,10 +6384,12 @@ PasteProcessor.prototype =
//��������� ������� ����� ���� �� ���������
//this._commit_rPr(node.parentNode);
if(!this.bIsPlainText)
{
var rPr = this._read_rPr(node.parentNode);
var Item = new ParaTextPr( rPr);
shape.paragraphAdd(Item);
}
for(var i = 0, length = value.length; i < length; i++)
{
var Char = value.charAt(i);
......@@ -6479,10 +6519,13 @@ PasteProcessor.prototype =
{
var nTabCount = parseInt(pPr["mso-tab-count"] || 0);
if(nTabCount > 0)
{
if(!this.bIsPlainText)
{
var rPr = this._read_rPr(node);
var Item = new ParaText( rPr);
shape.paragraphAdd(Item);
}
for(var i = 0; i < nTabCount; i++)
shape.paragraphAdd( new ParaTab() );
return;
......
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