Commit 23e1dd29 authored by GoshaZotov's avatar GoshaZotov

fix bug 33788

parent d0faa15b
......@@ -1077,7 +1077,7 @@ function BinaryPPTYLoader()
s.Seek2(_end_rec);
}
this.ReadTableStyle = function()
this.ReadTableStyle = function(bNotAddStyle)
{
var s = this.stream;
......@@ -1100,7 +1100,7 @@ function BinaryPPTYLoader()
{
var _id = s.GetString2();
// _style.Id = _id;
if(AscCommon.isRealObject(this.presentation.TableStylesIdMap))
if(AscCommon.isRealObject(this.presentation.TableStylesIdMap) && !bNotAddStyle)
this.presentation.TableStylesIdMap[_style.Id] = true;
this.map_table_styles[_id] = _style;
break;
......@@ -1276,8 +1276,15 @@ function BinaryPPTYLoader()
_style.TablePr.TableBorders.Right = _style.TableWholeTable.TableCellPr.TableCellBorders.Right;
delete _style.TableWholeTable.TableCellPr.TableCellBorders.Right;
}
if(this.presentation.globalTableStyles)
this.presentation.globalTableStyles.Add(_style);
if(bNotAddStyle)
{
return _style;
}
else
{
if(this.presentation.globalTableStyles)
this.presentation.globalTableStyles.Add(_style);
}
};
this.ReadTableStylePart = function()
......
......@@ -4118,6 +4118,7 @@ PasteProcessor.prototype =
var arr_shapes = [];
var arr_transforms = [];
var cStyle;
var foundTableStylesIdMap = {};
for(var i = 0; i < count; ++i)
{
......@@ -4129,17 +4130,9 @@ PasteProcessor.prototype =
{
if(loader.stream.GetBool())
{
//в случае если вставляем в презентации, пропускаем
if(!PasteElementsId.g_bIsDocumentCopyPaste)
{
loader.stream.Skip2(1);
loader.stream.SkipRecord();
}
else
{
loader.stream.Skip2(1);
cStyle = loader.ReadTableStyle();
}
loader.stream.Skip2(1);
cStyle = loader.ReadTableStyle(true);
loader.stream.GetBool();
style_index = stream.GetString2();
}
......@@ -4186,7 +4179,24 @@ PasteProcessor.prototype =
if(!PasteElementsId.g_bIsDocumentCopyPaste)
{
//TODO продумать добавления нового стиля(ReadTableStyle->получуть id нового стиля, сравнить новый стиль со всеми присутвующими.если нет - добавить и сделать Set_TableStyle(id))
if(presentation.TableStylesIdMap[style_index])
if(foundTableStylesIdMap[style_index])
{
arr_shapes[i].Drawing.graphicObject.Set_TableStyle(foundTableStylesIdMap[style_index], true);
}
else if(cStyle && presentation.globalTableStyles && presentation.globalTableStyles.Style)
{
for(var j in presentation.globalTableStyles.Style)
{
//TODO isEqual - сравнивает ещё и имя стиля. для случая, когда одинаковый контент, но имя стиля разное, не подойдет это сравнение
if(presentation.globalTableStyles.Style[j].isEqual(cStyle))
{
arr_shapes[i].Drawing.graphicObject.Set_TableStyle(j, true);
foundTableStylesIdMap[style_index] = j;
break;
}
}
}
else if(presentation.TableStylesIdMap[style_index])
{
arr_shapes[i].Drawing.graphicObject.Set_TableStyle(style_index, true);
}
......
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