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

Добавлена функция в апи can_CopyCut. Сделано ускорение пересчета для картинок...

Добавлена функция в апи can_CopyCut. Сделано ускорение пересчета для картинок с обтеканием. Исправлен баг с неправильным рассчетом текста по ширине (баг 26517). Исправлен баг с неправильной работой флага "Turn on live commenting" (баг 26507).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58284 954022d7-b5bf-4e40-9824-e11837661b57
parent 01615ec0
......@@ -59,6 +59,7 @@ var recalcresult_CurPage = 0x02; // Пересчитываем заново
var recalcresult_NextPage = 0x03; // Пересчитываем следующую страницу
var recalcresult_NextLine = 0x04; // Пересчитываем следующую строку
var recalcresult_CurLine = 0x05; // Пересчитываем текущую строку
var recalcresult_CurPagePara = 0x06; // Специальный случай, когда мы встретили картинку в начале параграфа
// Типы которые возвращают классы CDocument и CDocumentContent после пересчета страницы
var recalcresult2_End = 0x00; // Документ рассчитан до конца
......@@ -11678,51 +11679,14 @@ CDocument.prototype =
if (true === this.TurnOffInterfaceEvents)
return;
// Во время работы селекта не обновляем состояние
if ( true === this.Selection.Start )
return;
if ( true === CollaborativeEditing.m_bGlobalLockSelection )
return;
var bCanCopyCut = false;
var LogicDocument = null;
var DrawingObjects = null;
// Работаем с колонтитулом
if ( docpostype_HdrFtr === this.CurPos.Type )
{
var CurHdrFtr = this.HdrFtr.CurHdrFtr;
if ( null !== CurHdrFtr )
{
if ( docpostype_DrawingObjects === CurHdrFtr.Content.CurPos.Type )
DrawingObjects = this.DrawingObjects;
else
LogicDocument = CurHdrFtr.Content;
}
}
else if ( docpostype_DrawingObjects === this.CurPos.Type )
{
DrawingObjects = this.DrawingObjects;
}
else //if ( docpostype_Content === this.CurPos.Type )
{
LogicDocument = this;
}
if ( null !== DrawingObjects )
{
if ( true === DrawingObjects.isSelectedText() )
LogicDocument = DrawingObjects.getTargetDocContent();
else
bCanCopyCut = true;
}
if ( null !== LogicDocument )
bCanCopyCut = LogicDocument.Is_SelectionUse();
// Во время работы селекта не обновляем состояние
if ( true === this.Selection.Start )
return;
editor.sync_CanCopyCutCallback( bCanCopyCut );
editor.sync_CanCopyCutCallback(this.Can_CopyCut());
},
Document_UpdateCanAddHyperlinkState : function()
......@@ -11777,6 +11741,48 @@ CDocument.prototype =
this.Document_UpdateRulersState();
}
},
Can_CopyCut : function()
{
var bCanCopyCut = false;
var LogicDocument = null;
var DrawingObjects = null;
// Работаем с колонтитулом
if ( docpostype_HdrFtr === this.CurPos.Type )
{
var CurHdrFtr = this.HdrFtr.CurHdrFtr;
if ( null !== CurHdrFtr )
{
if ( docpostype_DrawingObjects === CurHdrFtr.Content.CurPos.Type )
DrawingObjects = this.DrawingObjects;
else
LogicDocument = CurHdrFtr.Content;
}
}
else if ( docpostype_DrawingObjects === this.CurPos.Type )
{
DrawingObjects = this.DrawingObjects;
}
else //if ( docpostype_Content === this.CurPos.Type )
{
LogicDocument = this;
}
if ( null !== DrawingObjects )
{
if ( true === DrawingObjects.isSelectedText() )
LogicDocument = DrawingObjects.getTargetDocContent();
else
bCanCopyCut = true;
}
if ( null !== LogicDocument )
bCanCopyCut = LogicDocument.Is_SelectionUse();
return bCanCopyCut;
},
//-----------------------------------------------------------------------------------
// Функции для работы с номерами страниц
//-----------------------------------------------------------------------------------
......@@ -12921,6 +12927,9 @@ CDocument.prototype =
CanAdd_Comment : function()
{
if (true !== this.Comments.Is_Use())
return false;
// Проверим можно ли добавлять гиперссылку
if ( docpostype_HdrFtr === this.CurPos.Type )
return this.HdrFtr.CanAdd_Comment();
......
This diff is collapsed.
......@@ -2367,7 +2367,12 @@ ParaRun.prototype.Recalculate_Range_Spaces = function(PRSA, _CurLine, _CurRange,
// Обновляем позицию объекта
Item.Update_Position( new CParagraphLayout( PRSA.X, PRSA.Y , Page_abs, PRSA.LastW, ColumnStartX, ColumnEndX, X_Left_Margin, X_Right_Margin, Page_Width, Top_Margin, Bottom_Margin, Page_H, PageFields.X, PageFields.Y, Para.Pages[CurPage].Y + Para.Lines[CurLine].Y - Para.Lines[CurLine].Metrics.Ascent, Para.Pages[CurPage].Y), PageLimits);
LDRecalcInfo.Set_FlowObject( Item, 0, recalcresult_NextElement, -1 );
PRSA.RecalcResult = recalcresult_CurPage;
if (0 === PRSA.CurPage && Item.Y > PRSA.PageY + 0.001)
PRSA.RecalcResult = recalcresult_CurPagePara;
else
PRSA.RecalcResult = recalcresult_CurPage;
return;
}
else if ( true === LDRecalcInfo.Check_FlowObject(Item) )
......@@ -6243,6 +6248,7 @@ ParaRun.prototype.Check_HistoryUninon = function(Data1, Data2)
if ( 1 === Data1.Items.length && 1 === Data2.Items.length && Data1.Pos === Data2.Pos - 1 && para_Text === Data1.Items[0].Type && para_Text === Data2.Items[0].Type )
return true;
}
return false;
};
//-----------------------------------------------------------------------------------
......
......@@ -3023,6 +3023,11 @@ asc_docs_api.prototype.sync_CanRedoCallback = function(bCanRedo)
this.asc_fireCallback("asc_onCanRedo", bCanRedo);
}
asc_docs_api.prototype.can_CopyCut = function()
{
return this.WordControl.m_oLogicDocument.Can_CopyCut();
};
asc_docs_api.prototype.sync_CanCopyCutCallback = function(bCanCopyCut)
{
this.asc_fireCallback("asc_onCanCopyCut", bCanCopyCut);
......
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