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

Исправлен баг с выставлением списка (баг 22078).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51698 954022d7-b5bf-4e40-9824-e11837661b57
parent 54d2c1ec
......@@ -4493,49 +4493,82 @@ CDocument.prototype =
{
if ( 0 === NumInfo.SubType )
{
// Если мы просто нажимаем добавить маркированный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список маркированный)
var NumPr = Item.Numbering_Get();
if ( undefined != ( NumPr = Item.Numbering_Get() ) )
{
var AbstractNum = this.Numbering.Get_AbstractNum( NumPr.NumId );
if ( false === this.Numbering.Check_Format( NumPr.NumId, NumPr.Lvl, numbering_numfmt_Bullet ) )
{
AbstractNum.Create_Default_Bullet();
// Проверяем предыдущий элемент
var Prev = this.Content[this.CurPos.ContentPos - 1];
var NumId = null;
var NumLvl = 0;
// Добавлять нумерацию к параграфу не надо, т.к. она уже в
// нем записана
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
// Нам нужно пересчитать все изменения, начиная с первого
// элемента, использующего данную нумерацию
FirstChange = 0;
var bFirstChange = false;
for ( var Index = 0; Index < this.Content.length; Index++ )
{
if ( true === this.Content[Index].Numbering_IsUse( NumPr.NumId, NumPr.Lvl ) )
{
if ( false === bFirstChange )
{
FirstChange = Index;
bFirstChange = true;
}
this.Content[Index].Recalc_CompileParaPr();
}
}
}
}
else
{
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Bullet ) )
// Если мы просто нажимаем добавить маркированный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список маркированный)
// Проверяем предыдущий элемент
var Prev = this.Content[this.CurPos.ContentPos - 1];
var NumId = undefined;
var NumLvl = 0;
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Bullet ) )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
}
}
}
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( undefined === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Bullet();
}
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Bullet();
}
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if (undefined != OldNumPr)
Item.Numbering_Add( NumId, OldNumPr.Lvl );
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if (undefined != OldNumPr)
Item.Numbering_Add( NumId, OldNumPr.Lvl );
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
}
}
else
{
......@@ -4642,49 +4675,81 @@ CDocument.prototype =
{
if ( 0 === NumInfo.SubType )
{
// Если мы просто нажимаем добавить нумерованный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список нумерованный)
var NumPr = Item.Numbering_Get();
if ( undefined != ( NumPr = Item.Numbering_Get() ) )
{
var AbstractNum = this.Numbering.Get_AbstractNum( NumPr.NumId );
if ( false === this.Numbering.Check_Format( NumPr.NumId, NumPr.Lvl, numbering_numfmt_Decimal ) )
{
AbstractNum.Create_Default_Numbered();
// Проверяем предыдущий элемент
var Prev = this.Content[this.CurPos.ContentPos - 1];
var NumId = null;
var NumLvl = 0;
// Добавлять нумерацию к параграфу не надо, т.к. она уже в
// нем записана
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
// Нам нужно пересчитать все изменения, начиная с первого
// элемента, использующего данную нумерацию
FirstChange = 0;
var bFirstChange = false;
for ( var Index = 0; Index < this.Content.length; Index++ )
{
if ( true === this.Content[Index].Numbering_IsUse( NumPr.NumId, NumPr.Lvl ) )
{
if ( false === bFirstChange )
{
FirstChange = Index;
bFirstChange = true;
}
this.Content[Index].Recalc_CompileParaPr();
}
}
}
}
else
{
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Decimal ) )
// Если мы просто нажимаем добавить нумерованный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список нумерованный)
// Проверяем предыдущий элемент
var Prev = this.Content[this.CurPos.ContentPos - 1];
var NumId = undefined;
var NumLvl = 0;
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Decimal ) )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
}
}
}
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( undefined === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Numbered();
}
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Numbered();
}
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if( undefined != ( OldNumPr ) )
Item.Numbering_Add( NumId, OldNumPr.Lvl );
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if( undefined != ( OldNumPr ) )
Item.Numbering_Add( NumId, OldNumPr.Lvl );
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
}
}
else
{
......
......@@ -4171,48 +4171,80 @@ CDocumentContent.prototype =
{
if ( 0 === NumInfo.SubType )
{
// Если мы просто нажимаем добавить маркированный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список маркированный)
var NumPr = Item.Numbering_Get();
if ( undefined != ( NumPr = Item.Numbering_Get() ) )
{
var AbstractNum = this.Numbering.Get_AbstractNum( NumPr.NumId );
if ( false === this.Numbering.Check_Format( NumPr.NumId, NumPr.Lvl, numbering_numfmt_Bullet ) )
{
AbstractNum.Create_Default_Bullet();
// Проверяем предыдущий элемент
var Prev = this.Content[StartPos - 1];
var NumId = null;
var NumLvl = 0;
// Добавлять нумерацию к параграфу не надо, т.к. она уже в
// нем записана
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
// Нам нужно пересчитать все изменения, начиная с первого
// элемента, использующего данную нумерацию
FirstChange = 0;
var bFirstChange = false;
for ( var Index = 0; Index < this.Content.length; Index++ )
{
if ( true === this.Content[Index].Numbering_IsUse( NumPr.NumId, NumPr.Lvl ) )
{
if ( false === bFirstChange )
{
FirstChange = Index;
bFirstChange = true;
}
this.Content[Index].Recalc_CompileParaPr();
}
}
}
}
else
{
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Bullet ) )
// Если мы просто нажимаем добавить маркированный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список маркированный)
// Проверяем предыдущий элемент
var Prev = this.Content[StartPos - 1];
var NumId = null;
var NumLvl = 0;
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Bullet ) )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
}
}
}
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Bullet();
}
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Bullet();
}
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if (undefined != OldNumPr)
Item.Numbering_Add( NumId, OldNumPr.Lvl );
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if (undefined != OldNumPr)
Item.Numbering_Add( NumId, OldNumPr.Lvl );
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
}
}
else
{
......@@ -4319,48 +4351,80 @@ CDocumentContent.prototype =
{
if ( 0 === NumInfo.SubType )
{
// Если мы просто нажимаем добавить нумерованный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список нумерованный)
var NumPr = Item.Numbering_Get();
if ( undefined != ( NumPr = Item.Numbering_Get() ) )
{
var AbstractNum = this.Numbering.Get_AbstractNum( NumPr.NumId );
if ( false === this.Numbering.Check_Format( NumPr.NumId, NumPr.Lvl, numbering_numfmt_Decimal ) )
{
AbstractNum.Create_Default_Numbered();
// Проверяем предыдущий элемент
var Prev = this.Content[StartPos - 1];
var NumId = null;
var NumLvl = 0;
// Добавлять нумерацию к параграфу не надо, т.к. она уже в
// нем записана
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
// Нам нужно пересчитать все изменения, начиная с первого
// элемента, использующего данную нумерацию
FirstChange = 0;
var bFirstChange = false;
for ( var Index = 0; Index < this.Content.length; Index++ )
{
if ( true === this.Content[Index].Numbering_IsUse( NumPr.NumId, NumPr.Lvl ) )
{
if ( false === bFirstChange )
{
FirstChange = Index;
bFirstChange = true;
}
this.Content[Index].Recalc_CompileParaPr();
}
}
}
}
else
{
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Decimal ) )
// Если мы просто нажимаем добавить нумерованный список, тогда мы пытаемся
// присоединить его к списку предыдушего параграфа (если у предыдущего параграфа
// есть список, и этот список нумерованный)
// Проверяем предыдущий элемент
var Prev = this.Content[StartPos - 1];
var NumId = null;
var NumLvl = 0;
if ( "undefined" != typeof(Prev) && null != Prev && type_Paragraph === Prev.GetType() )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
var PrevNumPr = Prev.Numbering_Get();
if ( undefined != PrevNumPr && true === this.Numbering.Check_Format( PrevNumPr.NumId, PrevNumPr.Lvl, numbering_numfmt_Decimal ) )
{
NumId = PrevNumPr.NumId;
NumLvl = PrevNumPr.Lvl;
}
}
}
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
// Предыдущий параграф не содержит списка, либо список не того формата
// создаем новую нумерацию (стандартную маркированный список)
if ( null === NumId )
{
NumId = this.Numbering.Create_AbstractNum();
NumLvl = 0;
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Numbered();
}
this.Numbering.Get_AbstractNum( NumId ).Create_Default_Numbered();
}
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if( undefined != ( OldNumPr ) )
Item.Numbering_Add( NumId, OldNumPr.Lvl );
if ( type_Paragraph === Item.GetType() )
{
var OldNumPr = Item.Numbering_Get();
if( undefined != ( OldNumPr ) )
Item.Numbering_Add( NumId, OldNumPr.Lvl );
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
}
else
Item.Numbering_Add( NumId, NumLvl );
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента
FirstChange = this.CurPos.ContentPos - 1;
}
}
else
{
......
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