Commit 3d853533 authored by Igor.Zotov's avatar Igor.Zotov Committed by Alexander.Trofimov

http://bugzserver/show_bug.cgi?id=28120 - [Copy&Paste] Ошибка в консоли после...

http://bugzserver/show_bug.cgi?id=28120 -  [Copy&Paste] Ошибка в консоли после копирования и вставки таблицы, внутри которой находится другая таблица, из CDE в CPE

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@60382 954022d7-b5bf-4e40-9824-e11837661b57
parent 354593ac
......@@ -2682,6 +2682,8 @@ function PasteProcessor(api, bUploadImage, bUploadFonts, bNested, pasteInExcel)
this.pasteInExcel = pasteInExcel;
this.pasteInPresentationShape = null;
this.maxTableCell = null;
//��� ������� ������ � ������, ��� ����������� �� word � chrome ���������� ������ ������� ��� <p>
this.bIgnoreNoBlockText = false;
......@@ -4498,6 +4500,11 @@ PasteProcessor.prototype =
_convertTableToPPTX: function(table)
{
//TODO пересмотреть обработку для вложенных таблиц(можно сделать так, как при копировании из документов в таблицы)
var allRows = [];
this.maxTableCell = 0;
table = this._replaceInnerTables(table, allRows, true);
//ковертим внутренние параграфы
table.bPresentation = true;
for(var i = 0; i < table.Content.length; i++)
......@@ -4517,6 +4524,56 @@ PasteProcessor.prototype =
return table;
},
_replaceInnerTables: function(table, allRows, isRoot)
{
//заменяем внутренние таблички
for(var i = 0; i < table.Content.length; i++)
{
allRows[allRows.length] = table.Content[i];
if(this.maxTableCell < table.Content[i].Content.length)
this.maxTableCell = table.Content[i].Content.length;
for(var j = 0; j < table.Content[i].Content.length; j++)
{
var cDocumentContent = table.Content[i].Content[j].Content;
cDocumentContent.bPresentation = true;
var k = 0;
for(var n = 0; n < cDocumentContent.Content.length; n++)
{
//если нашли внутреннюю табличку
if(cDocumentContent.Content[n] instanceof CTable)
{
this._replaceInnerTables(cDocumentContent.Content[n], allRows);
cDocumentContent.Content.splice(n, 1);
}
}
}
}
//дополняем пустыми ячейками, строки, где ячеек меньше
if(isRoot === true)
{
for(var row = 0; row < allRows.length; row++)
{
var cells = allRows[row].Content;
if(cells.length < this.maxTableCell)
{
for(var cell = cells.length; cell < this.maxTableCell; cell++)
{
allRows[row].Add_Cell(allRows[row].Get_CellsCount(), allRows[row], null, false);
}
}
}
table.Content = allRows;
table.Rows = allRows.length;
}
return table;
},
_getImagesFromExcelShapes: function(pDrawings)
{
//пока только распознаём только графические объекты
......
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