Commit c73768c1 authored by Igor.Zotov's avatar Igor.Zotov

http://bugzserver/show_bug.cgi?id=27519 - Потеря формата и кнопок автофильтра...

http://bugzserver/show_bug.cgi?id=27519 - Потеря формата и кнопок автофильтра форматированной таблицы при копировании через зажатый Ctrl

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@60451 954022d7-b5bf-4e40-9824-e11837661b57
parent fc40d60a
......@@ -6822,7 +6822,7 @@ var gUndoInsDelCellsFlag = true;
}
},
_moveAutoFilters: function(arnTo, arnFrom, data)
_moveAutoFilters: function(arnTo, arnFrom, data, copyRange)
{
//проверяем покрывает ли диапазон хотя бы один автофильтр
var ws = this.worksheet;
......@@ -6840,6 +6840,12 @@ var gUndoInsDelCellsFlag = true;
var addRedo = false;
if(copyRange)
{
this._cloneCtrlAutoFilters(arnTo, arnFrom);
}
else
{
var findFilters = this._searchFiltersInRange(arnFrom , aWs);
if(findFilters)
{
......@@ -6942,6 +6948,7 @@ var gUndoInsDelCellsFlag = true;
this._addHistoryObj(oCurFilter, historyitem_AutoFilter_Move);
}
}
}
var arnToRange = new Asc.Range(arnTo.c1, arnTo.r1, arnTo.c2, arnTo.r2);
var intersectionRangeWithTableParts = this._intersectionRangeWithTableParts(arnToRange, aWs);
......@@ -6958,6 +6965,33 @@ var gUndoInsDelCellsFlag = true;
},
_cloneCtrlAutoFilters: function(arnTo, arnFrom)
{
var ws = this.worksheet;
var aWs = this._getCurrentWS();
var findFilters = this._searchFiltersInRange(arnFrom , aWs);
if(findFilters && findFilters.length)
{
var diffCol = arnTo.c1 - arnFrom.c1;
var diffRow = arnTo.r1 - arnFrom.r1;
var newRange, ref, bWithoutFilter;
for(var i = 0; i < findFilters.length; i++)
{
if(findFilters[i].TableStyleInfo)
{
ref = findFilters[i].Ref;
newRange = Asc.Range(ref.c1 + diffCol, ref.r1 + diffRow, ref.c2 + diffCol, ref.r2 + diffRow);
bWithoutFilter = findFilters[i].AutoFilter === null ? true : false;
if(!ref.intersection(newRange) && !this._intersectionRangeWithTableParts(newRange, aWs, arnFrom))
this.addAutoFilter(findFilters[i].TableStyleInfo.Name, newRange, null, null, true, bWithoutFilter);
}
}
}
},
//ShowButton(в случае объединенных ячеек в автофильтрах)
_isShowButton: function(autoFilter, colId)
{
......
......@@ -7817,13 +7817,14 @@
History.SetSelectionRedo(arnTo.clone());
History.StartTransaction();
if(!copyRange)
t.autoFilters._preMoveAutoFilters(arnFrom, arnTo);
t.model._moveRange(arnFrom, arnTo, copyRange);
t.cellCommentator.moveRangeComments(arnFrom, arnTo);
t.objectRender.moveRangeDrawingObject(arnFrom, arnTo);
t.autoFilters._moveAutoFilters(arnTo, arnFrom);
t.autoFilters._moveAutoFilters(arnTo, arnFrom, null, copyRange);
// Вызываем функцию пересчета для заголовков форматированной таблицы
t.autoFilters._renameTableColumn(arnFrom);
t.autoFilters._renameTableColumn(arnTo);
......@@ -8168,7 +8169,7 @@
if(!aFilters[aF].AutoFilter)
bWithoutFilter = true;
t.autoFilters.addAutoFilter(aFilters[aF].TableStyleInfo.Name, range.bbox, null, null, true, bWithoutFilter);
t.autoFilters.addAutoFilter(aFilters[aF].TableStyleInfo.Name, range.bbox, null, null, true, bWithoutFilter, true);
}
}
......@@ -8179,7 +8180,7 @@
t._prepareCellTextMetricsCache(arn);
}
History.EndTransaction();
//History.EndTransaction();
var oSelection = History.GetSelection();
if(null != oSelection)
{
......
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