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) ...@@ -2779,6 +2779,7 @@ function PasteProcessor(api, bUploadImage, bUploadFonts, bNested)
//���������� ������(�������� ��� ������� ������� �������, ������ ��� ������� ����������� ������ � ��������� � ������� ����� �������� ���� �����������) //���������� ������(�������� ��� ������� ������� �������, ������ ��� ������� ����������� ������ � ��������� � ������� ����� �������� ���� �����������)
this.dScaleKoef = 1; this.dScaleKoef = 1;
this.bUseScaleKoef = false; 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, 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, "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 = ...@@ -2955,6 +2956,8 @@ PasteProcessor.prototype =
var oFindObj = Item.Internal_FindBackward(Item.CurPos.ContentPos, [para_TextPr]); var oFindObj = Item.Internal_FindBackward(Item.CurPos.ContentPos, [para_TextPr]);
var TextPr = null; var TextPr = null;
var nContentPos = Item.CurPos.ContentPos; var nContentPos = Item.CurPos.ContentPos;
if(!this.bIsPlainText)
{
if ( true === oFindObj.Found && para_TextPr === oFindObj.Type ) if ( true === oFindObj.Found && para_TextPr === oFindObj.Type )
{ {
TextPr = Item.Content[oFindObj.LetterPos].Copy(); TextPr = Item.Content[oFindObj.LetterPos].Copy();
...@@ -2965,8 +2968,7 @@ PasteProcessor.prototype = ...@@ -2965,8 +2968,7 @@ PasteProcessor.prototype =
nContentPos++; nContentPos++;
} }
} }
else }
TextPr = new ParaTextPr();
for(var i = 0; i < nContentLength - 2; ++i)// -2 �� ����������� ����� ��������� for(var i = 0; i < nContentLength - 2; ++i)// -2 �� ����������� ����� ���������
{ {
...@@ -2977,7 +2979,11 @@ PasteProcessor.prototype = ...@@ -2977,7 +2979,11 @@ PasteProcessor.prototype =
nContentPos++; nContentPos++;
} }
} }
if(null != TextPr)
{
Item.Internal_Content_Add(nContentPos, TextPr); Item.Internal_Content_Add(nContentPos, TextPr);
nContentPos++;
}
Item.Set_ContentPos(nContentPos, true, -1); Item.Set_ContentPos(nContentPos, true, -1);
} }
Item.RecalcInfo.Set_Type_0(pararecalc_0_All); Item.RecalcInfo.Set_Type_0(pararecalc_0_All);
...@@ -3449,6 +3455,7 @@ PasteProcessor.prototype = ...@@ -3449,6 +3455,7 @@ PasteProcessor.prototype =
var presentation = editor.WordControl.m_oLogicDocument; var presentation = editor.WordControl.m_oLogicDocument;
this.oRootNode = node; this.oRootNode = node;
this.bIsPlainText = this._CheckIsPlainText(node);
this._Prepeare(node, this._Prepeare(node,
function(){ function(){
oThis.aContent = new Array(); oThis.aContent = new Array();
...@@ -4976,6 +4983,8 @@ PasteProcessor.prototype = ...@@ -4976,6 +4983,8 @@ PasteProcessor.prototype =
break; break;
} }
if(node != oFirstTextChild) if(node != oFirstTextChild)
{
if(!this.bIsPlainText)
{ {
var oLvl = AbstractNum.Lvl[0]; var oLvl = AbstractNum.Lvl[0];
var oTextPr = this._read_rPr(oFirstTextChild); var oTextPr = this._read_rPr(oFirstTextChild);
...@@ -4985,6 +4994,7 @@ PasteProcessor.prototype = ...@@ -4985,6 +4994,7 @@ PasteProcessor.prototype =
AbstractNum.Apply_TextPr(0, oTextPr); AbstractNum.Apply_TextPr(0, oTextPr);
} }
} }
}
Para.Numbering_Add( NumId, 0 ); Para.Numbering_Add( NumId, 0 );
} }
else else
...@@ -5035,6 +5045,8 @@ PasteProcessor.prototype = ...@@ -5035,6 +5045,8 @@ PasteProcessor.prototype =
Para.CompiledPr.NeedRecalc = true; Para.CompiledPr.NeedRecalc = true;
}, },
_commit_rPr : function(node) _commit_rPr : function(node)
{
if(!this.bIsPlainText)
{ {
var rPr = this._read_rPr(node); var rPr = this._read_rPr(node);
//���� ��������� ��������� ���������� ��������� ������� //���� ��������� ��������� ���������� ��������� �������
...@@ -5043,6 +5055,7 @@ PasteProcessor.prototype = ...@@ -5043,6 +5055,7 @@ PasteProcessor.prototype =
this._Paragraph_Add( new ParaTextPr( rPr ) ); this._Paragraph_Add( new ParaTextPr( rPr ) );
this.oCur_rPr = rPr; this.oCur_rPr = rPr;
} }
}
}, },
_read_rPr : function(node) _read_rPr : function(node)
{ {
...@@ -5814,6 +5827,31 @@ PasteProcessor.prototype = ...@@ -5814,6 +5827,31 @@ PasteProcessor.prototype =
//������� ��������, ������� ��������� � ������� �� ��������� //������� ��������, ������� ��������� � ������� �� ���������
cell.Content.Internal_Content_Remove(0, 1); 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) _Execute : function(node, pPr, bRoot, bAddParagraph, bInBlock)
{ {
//bAddParagraph ���� �������� �� ������� _Decide_AddParagraph, ��������� �������� ��� ���. //bAddParagraph ���� �������� �� ������� _Decide_AddParagraph, ��������� �������� ��� ���.
...@@ -6346,10 +6384,12 @@ PasteProcessor.prototype = ...@@ -6346,10 +6384,12 @@ PasteProcessor.prototype =
//��������� ������� ����� ���� �� ��������� //��������� ������� ����� ���� �� ���������
//this._commit_rPr(node.parentNode); //this._commit_rPr(node.parentNode);
if(!this.bIsPlainText)
{
var rPr = this._read_rPr(node.parentNode); var rPr = this._read_rPr(node.parentNode);
var Item = new ParaTextPr( rPr); var Item = new ParaTextPr( rPr);
shape.paragraphAdd(Item); shape.paragraphAdd(Item);
}
for(var i = 0, length = value.length; i < length; i++) for(var i = 0, length = value.length; i < length; i++)
{ {
var Char = value.charAt(i); var Char = value.charAt(i);
...@@ -6479,10 +6519,13 @@ PasteProcessor.prototype = ...@@ -6479,10 +6519,13 @@ PasteProcessor.prototype =
{ {
var nTabCount = parseInt(pPr["mso-tab-count"] || 0); var nTabCount = parseInt(pPr["mso-tab-count"] || 0);
if(nTabCount > 0) if(nTabCount > 0)
{
if(!this.bIsPlainText)
{ {
var rPr = this._read_rPr(node); var rPr = this._read_rPr(node);
var Item = new ParaText( rPr); var Item = new ParaText( rPr);
shape.paragraphAdd(Item); shape.paragraphAdd(Item);
}
for(var i = 0; i < nTabCount; i++) for(var i = 0; i < nTabCount; i++)
shape.paragraphAdd( new ParaTab() ); shape.paragraphAdd( new ParaTab() );
return; 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