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

Исправлен баг с записью в историю изменение заливки параграфа. Исправлен баг с обновлением стиля.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@64220 954022d7-b5bf-4e40-9824-e11837661b57
parent 8bf549f6
...@@ -8280,8 +8280,11 @@ Paragraph.prototype = ...@@ -8280,8 +8280,11 @@ Paragraph.prototype =
var Shd = new CDocumentShd(); var Shd = new CDocumentShd();
Shd.Set_FromObject( _Shd ); Shd.Set_FromObject( _Shd );
if ( undefined === this.Pr.Shd ) if (undefined === this.Pr.Shd)
{
this.Pr.Shd = new CDocumentShd(); this.Pr.Shd = new CDocumentShd();
History.Add( this, { Type : historyitem_Paragraph_Shd, Old : undefined, New : this.Pr.Shd } );
}
if ( ( undefined != Shd.Value || true === bDeleteUndefined ) && this.Pr.Shd.Value !== Shd.Value ) if ( ( undefined != Shd.Value || true === bDeleteUndefined ) && this.Pr.Shd.Value !== Shd.Value )
{ {
......
...@@ -4780,10 +4780,14 @@ CStyles.prototype = ...@@ -4780,10 +4780,14 @@ CStyles.prototype =
{ {
var oStyle = new CStyle(); var oStyle = new CStyle();
oStyle.Set_BasedOn(this.Get_StyleIdByName(oAscStyle.get_BasedOn(), false)); var BasedOnId = this.Get_StyleIdByName(oAscStyle.get_BasedOn(), false);
oStyle.Set_BasedOn(BasedOnId);
oStyle.Set_Next(this.Get_StyleIdByName(oAscStyle.get_Next(), false)); oStyle.Set_Next(this.Get_StyleIdByName(oAscStyle.get_Next(), false));
oStyle.Set_Type(oAscStyle.get_Type()); oStyle.Set_Type(oAscStyle.get_Type());
var NewStyleParaPr = oAscStyle.get_ParaPr();
var NewStyleTextPr = oAscStyle.get_TextPr();
// Если у нас есть стиль с данным именем, тогда мы старый стиль удаляем, а новый добавляем со старым Id, // Если у нас есть стиль с данным именем, тогда мы старый стиль удаляем, а новый добавляем со старым Id,
// чтобы если были ссылки на старый стиль - теперь они стали на новый. // чтобы если были ссылки на старый стиль - теперь они стали на новый.
var sStyleName = oAscStyle.get_Name(); var sStyleName = oAscStyle.get_Name();
...@@ -4791,11 +4795,25 @@ CStyles.prototype = ...@@ -4791,11 +4795,25 @@ CStyles.prototype =
if (null != OldId) if (null != OldId)
{ {
var oOldStyle = this.Style[OldId]; var oOldStyle = this.Style[OldId];
if (null != oOldStyle.Get_Next() && null == oStyle.Get_Next())
// Если удаляемый стиль - стиль, который стоит в BasedOn, тогда мы должны смержить BasedOn стиль с заданным
if (BasedOnId === OldId)
{ {
oStyle.Set_Next(oOldStyle.Get_Next()); oStyle.Set_BasedOn(null);
var OldStyleParaPr = oOldStyle.ParaPr.Copy();
var OldStyleTextPr = oOldStyle.TextPr.Copy();
OldStyleParaPr.Merge(NewStyleParaPr);
OldStyleTextPr.Merge(NewStyleTextPr);
NewStyleParaPr = OldStyleParaPr;
NewStyleTextPr = OldStyleTextPr;
} }
if (oStyle.Get_Next() === OldId)
oStyle.Set_Next(null);
if (null != oOldStyle.Get_Next() && null == oStyle.Get_Next())
oStyle.Set_Next(oOldStyle.Get_Next());
this.Remove(OldId); this.Remove(OldId);
oStyle.Set_Id(OldId); oStyle.Set_Id(OldId);
} }
...@@ -4813,8 +4831,8 @@ CStyles.prototype = ...@@ -4813,8 +4831,8 @@ CStyles.prototype =
oLinkedStyle.Set_Link(oStyle.Get_Id()); oLinkedStyle.Set_Link(oStyle.Get_Id());
} }
oStyle.Set_TextPr(oAscStyle.get_TextPr()); oStyle.Set_TextPr(NewStyleTextPr);
oStyle.Set_ParaPr(oAscStyle.get_ParaPr()); oStyle.Set_ParaPr(NewStyleParaPr);
this.Add(oStyle); this.Add(oStyle);
return oStyle; return oStyle;
......
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