Commit c278c41d authored by Sergey.Luzyanin's avatar Sergey.Luzyanin Committed by Alexander.Trofimov

28123 - Изменяется отступ в маркированном списке после нажатия кнопки списка повторно

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@61563 954022d7-b5bf-4e40-9824-e11837661b57
parent 027786c4
......@@ -12141,12 +12141,16 @@ CBullet.prototype =
return this.bulletType != null && this.bulletType.type != null;
},
getBulletType: function()
getPresentationBullet: function()
{
var para_pr = new CParaPr();
para_pr.Bullet = this;
var pres_bullet = para_pr.Get_PresentationBullet();
return pres_bullet.m_nType;
return para_pr.Get_PresentationBullet();
},
getBulletType: function()
{
return this.getPresentationBullet().m_nType;
},
Write_ToBinary: function(w)
......
......@@ -7048,29 +7048,90 @@ Paragraph.prototype =
// Добавляем нумерацию к данному параграфу
Add_PresentationNumbering : function(_Bullet)
{
var ParaPr = this.Get_CompiledPr2(false).ParaPr;
var OldType = ParaPr.Bullet ? ParaPr.Bullet.getBulletType() : numbering_presentationnumfrmt_None;
var NewType = _Bullet ? _Bullet.getBulletType() : numbering_presentationnumfrmt_None;
this.Pr.Bullet = undefined;
this.CompiledPr.NeedRecalc = true;
var Bullet = _Bullet ? _Bullet.createDuplicate() : undefined;
this.Set_Bullet(Bullet);
if ( OldType != NewType )
var oBullet2;
if(_Bullet)
{
var ParaPr = this.Get_CompiledPr2(false).ParaPr;
var LeftInd = Math.min( ParaPr.Ind.Left, ParaPr.Ind.Left + ParaPr.Ind.FirstLine );
oBullet2 = _Bullet;
}
else
{
oBullet2 = new CBullet();
oBullet2.bulletType = new CBulletType();
oBullet2.bulletType.type = BULLET_TYPE_BULLET_NONE;
}
var oUndefParaPr = this.Get_CompiledPr2(false).ParaPr;
var NewType = oBullet2.getBulletType();
var UndefType = oUndefParaPr.Bullet ? oUndefParaPr.Bullet.getBulletType() : numbering_presentationnumfrmt_None;
var LeftInd;
if ( numbering_presentationnumfrmt_None === NewType )
if(NewType === UndefType)
{
if(NewType === numbering_presentationnumfrmt_Char)//буллеты
{
this.Set_Ind( { FirstLine : 0, Left : LeftInd } );
var oUndefPresentationBullet = oUndefParaPr.Bullet.getPresentationBullet();
var oNewPresentationBullet = oBullet2.getPresentationBullet();
if(oUndefPresentationBullet.m_sChar === oNewPresentationBullet.m_sChar)//символы совпали. ничего выставлять не надо.
{
this.Set_Bullet(undefined);
}
else
{
this.Set_Bullet(oBullet2.createDuplicate());//тип совпал, но не совпали символы. выставляем Bullet. Indent в данном случае не выставляем как это делает PowerPoint.
}
}
else if ( numbering_presentationnumfrmt_RomanLcPeriod === NewType || numbering_presentationnumfrmt_RomanUcPeriod === NewType )
else //нумерация или отсутствие нумерации
{
this.Set_Ind( { Left : LeftInd + 15.9, FirstLine : -15.9 } );
this.Set_Bullet(undefined);
}
this.Set_Ind({Left: undefined, FirstLine: undefined}, true);
}
else//тип не совпал. выставляем буллет, а также проверим нужно ли выставлять Indent.
{
this.Set_Bullet(oBullet2.createDuplicate());
LeftInd = Math.min( ParaPr.Ind.Left, ParaPr.Ind.Left + ParaPr.Ind.FirstLine );
if(NewType === numbering_presentationnumfrmt_Char)
{
this.Set_Ind({ Left : LeftInd + 14.3, FirstLine : -14.3 }, false);
}
else if(NewType === numbering_presentationnumfrmt_None)
{
this.Set_Ind({ FirstLine : 0, Left : LeftInd }, false);
}
else
{
this.Set_Ind( { Left : LeftInd + 14.3, FirstLine : -14.3 } );
var oArabicAlphaMap =
{
numbering_presentationnumfrmt_ArabicPeriod: true,
numbering_presentationnumfrmt_ArabicParenR: true,
numbering_presentationnumfrmt_AlphaLcParenR: true,
numbering_presentationnumfrmt_AlphaLcPeriod: true,
numbering_presentationnumfrmt_AlphaUcParenR: true,
numbering_presentationnumfrmt_AlphaUcPeriod: true
};
var oRomanMap =
{
numbering_presentationnumfrmt_RomanUcPeriod: true,
numbering_presentationnumfrmt_RomanLcPeriod: true
};
if(!(oArabicAlphaMap[NewType] && oArabicAlphaMap[UndefType] || oRomanMap[NewType] && oRomanMap[UndefType]))
{
if(oArabicAlphaMap[NewType])
{
this.Set_Ind({ Left : LeftInd + 14.3, FirstLine : -14.3 }, false);
}
else
{
this.Set_Ind({ Left : LeftInd + 15.9, FirstLine : -15.9 }, false);
}
}
else
{
this.Set_Ind({Left: undefined, FirstLine: undefined}, 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