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; ...@@ -6822,7 +6822,7 @@ var gUndoInsDelCellsFlag = true;
} }
}, },
_moveAutoFilters: function(arnTo, arnFrom, data) _moveAutoFilters: function(arnTo, arnFrom, data, copyRange)
{ {
//проверяем покрывает ли диапазон хотя бы один автофильтр //проверяем покрывает ли диапазон хотя бы один автофильтр
var ws = this.worksheet; var ws = this.worksheet;
...@@ -6840,6 +6840,12 @@ var gUndoInsDelCellsFlag = true; ...@@ -6840,6 +6840,12 @@ var gUndoInsDelCellsFlag = true;
var addRedo = false; var addRedo = false;
if(copyRange)
{
this._cloneCtrlAutoFilters(arnTo, arnFrom);
}
else
{
var findFilters = this._searchFiltersInRange(arnFrom , aWs); var findFilters = this._searchFiltersInRange(arnFrom , aWs);
if(findFilters) if(findFilters)
{ {
...@@ -6942,6 +6948,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -6942,6 +6948,7 @@ var gUndoInsDelCellsFlag = true;
this._addHistoryObj(oCurFilter, historyitem_AutoFilter_Move); this._addHistoryObj(oCurFilter, historyitem_AutoFilter_Move);
} }
} }
}
var arnToRange = new Asc.Range(arnTo.c1, arnTo.r1, arnTo.c2, arnTo.r2); var arnToRange = new Asc.Range(arnTo.c1, arnTo.r1, arnTo.c2, arnTo.r2);
var intersectionRangeWithTableParts = this._intersectionRangeWithTableParts(arnToRange, aWs); var intersectionRangeWithTableParts = this._intersectionRangeWithTableParts(arnToRange, aWs);
...@@ -6958,6 +6965,33 @@ var gUndoInsDelCellsFlag = true; ...@@ -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(в случае объединенных ячеек в автофильтрах) //ShowButton(в случае объединенных ячеек в автофильтрах)
_isShowButton: function(autoFilter, colId) _isShowButton: function(autoFilter, colId)
{ {
......
...@@ -7817,13 +7817,14 @@ ...@@ -7817,13 +7817,14 @@
History.SetSelectionRedo(arnTo.clone()); History.SetSelectionRedo(arnTo.clone());
History.StartTransaction(); History.StartTransaction();
if(!copyRange)
t.autoFilters._preMoveAutoFilters(arnFrom, arnTo); t.autoFilters._preMoveAutoFilters(arnFrom, arnTo);
t.model._moveRange(arnFrom, arnTo, copyRange); t.model._moveRange(arnFrom, arnTo, copyRange);
t.cellCommentator.moveRangeComments(arnFrom, arnTo); t.cellCommentator.moveRangeComments(arnFrom, arnTo);
t.objectRender.moveRangeDrawingObject(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(arnFrom);
t.autoFilters._renameTableColumn(arnTo); t.autoFilters._renameTableColumn(arnTo);
...@@ -8168,7 +8169,7 @@ ...@@ -8168,7 +8169,7 @@
if(!aFilters[aF].AutoFilter) if(!aFilters[aF].AutoFilter)
bWithoutFilter = true; 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 @@ ...@@ -8179,7 +8180,7 @@
t._prepareCellTextMetricsCache(arn); t._prepareCellTextMetricsCache(arn);
} }
History.EndTransaction(); //History.EndTransaction();
var oSelection = History.GetSelection(); var oSelection = History.GetSelection();
if(null != oSelection) 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