Commit d029cfd2 authored by Igor.Zotov's avatar Igor.Zotov Committed by Alexander.Trofimov

добавил обработки для того, чтобы отличить удаление а/ф(форматированной...

добавил обработки для того, чтобы отличить удаление а/ф(форматированной таблицы) при помощи кнопки Del или при нажатии на Delete в контекстном меню(важно ддля Undo)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51307 954022d7-b5bf-4e40-9824-e11837661b57
parent e32d87a1
...@@ -3557,7 +3557,11 @@ UndoRedoAutoFilters.prototype = { ...@@ -3557,7 +3557,11 @@ UndoRedoAutoFilters.prototype = {
Data.worksheet = ws; Data.worksheet = ws;
var autoFilters = ws.autoFilters; var autoFilters = ws.autoFilters;
if (bUndo == true) if (bUndo == true)
{
autoFilters.Undo(Type, Data); autoFilters.Undo(Type, Data);
if(Data && Data.undo && !Data.undo.insCells && gUndoInsDelCellsFlag && typeof gUndoInsDelCellsFlag == "object" && gUndoInsDelCellsFlag.arg1 && gUndoInsDelCellsFlag.arg2 && gUndoInsDelCellsFlag.data)
autoFilters._setColorStyleTable(gUndoInsDelCellsFlag.arg1, gUndoInsDelCellsFlag.arg2, gUndoInsDelCellsFlag.data, null, true);
}
else else
autoFilters.Redo(Type, Data); autoFilters.Redo(Type, Data);
} }
......
...@@ -1646,7 +1646,7 @@ ...@@ -1646,7 +1646,7 @@
ws._isLockedCells (sortRange1, /*subType*/null, onSortAutoFilterCallback); ws._isLockedCells (sortRange1, /*subType*/null, onSortAutoFilterCallback);
}, },
isEmptyAutoFilters: function(ar, turnOnHistory) isEmptyAutoFilters: function(ar, turnOnHistory, insCells)
{ {
if(turnOnHistory) if(turnOnHistory)
{ {
...@@ -1663,10 +1663,14 @@ ...@@ -1663,10 +1663,14 @@
//смотрим находится ли фильтр внутри выделенного фрагмента //смотрим находится ли фильтр внутри выделенного фрагмента
if(activeCells.r1 <= bbox.r1 && activeCells.r2 >= bbox.r2 && activeCells.c1 <= bbox.c1 && activeCells.c2 >= bbox.c2) if(activeCells.r1 <= bbox.r1 && activeCells.r2 >= bbox.r2 && activeCells.c1 <= bbox.c1 && activeCells.c2 >= bbox.c2)
{ {
var oldFilter = aWs.AutoFilter; var oldFilter = Asc.clone(aWs.AutoFilter);
aWs.AutoFilter = null; aWs.AutoFilter = null;
//открываем скрытые строки //открываем скрытые строки
aWs.setRowHidden(false, bbox.r1, bbox.r2); aWs.setRowHidden(false, bbox.r1, bbox.r2);
if(insCells)
oldFilter.insCells = true;
//заносим в историю //заносим в историю
this._addHistoryObj(oldFilter, historyitem_AutoFilter_Empty, {activeCells: activeCells}); this._addHistoryObj(oldFilter, historyitem_AutoFilter_Empty, {activeCells: activeCells});
} }
...@@ -1677,8 +1681,10 @@ ...@@ -1677,8 +1681,10 @@
var k = 0; var k = 0;
for(var i = 0; i < aWs.TableParts.length; i++) for(var i = 0; i < aWs.TableParts.length; i++)
{ {
var oCurFilter = aWs.TableParts[i]; var oCurFilter = Asc.clone(aWs.TableParts[i]);
var oRange = aWs.getRange2(oCurFilter.Ref); var oRange = aWs.getRange2(oCurFilter.Ref);
if(insCells)
oCurFilter.insCells = true;
var bbox = oRange.getBBox0(); var bbox = oRange.getBBox0();
//смотрим находится ли фильтр внутри выделенного фрагмента //смотрим находится ли фильтр внутри выделенного фрагмента
if(activeCells.r1 <= bbox.r1 && activeCells.r2 >= bbox.r2 && activeCells.c1 <= bbox.c1 && activeCells.c2 >= bbox.c2) if(activeCells.r1 <= bbox.r1 && activeCells.r2 >= bbox.r2 && activeCells.c1 <= bbox.c1 && activeCells.c2 >= bbox.c2)
...@@ -1789,6 +1795,8 @@ ...@@ -1789,6 +1795,8 @@
var cloneData = Asc.clone(data); var cloneData = Asc.clone(data);
if(!cloneData) if(!cloneData)
return; return;
if(cloneData.insCells)
delete cloneData.insCells;
gUndoInsDelCellsFlag = false; gUndoInsDelCellsFlag = false;
if(cloneData.refTable) if(cloneData.refTable)
{ {
...@@ -1843,25 +1851,25 @@ ...@@ -1843,25 +1851,25 @@
{ {
if(!aWs.TableParts) if(!aWs.TableParts)
aWs.TableParts = []; aWs.TableParts = [];
aWs.TableParts[aWs.TableParts.length] = data; aWs.TableParts[aWs.TableParts.length] = cloneData;
var splitRange = data.Ref.split(':'); var splitRange = cloneData.Ref.split(':');
if(!gUndoInsDelCellsFlag) if(!gUndoInsDelCellsFlag)
{ {
gUndoInsDelCellsFlag = gUndoInsDelCellsFlag =
{ {
arg1: splitRange[0], arg1: splitRange[0],
arg2: splitRange[1], arg2: splitRange[1],
data: data data: cloneData
} }
} }
else else
this._setColorStyleTable(splitRange[0], splitRange[1], data, null, true); this._setColorStyleTable(splitRange[0], splitRange[1], cloneData, null, true);
this._addButtonAF({result: data.result,isVis: true}); this._addButtonAF({result: cloneData.result,isVis: true});
} }
else else
{ {
aWs.AutoFilter = data; aWs.AutoFilter = cloneData;
this._addButtonAF({result: data.result,isVis: true}); this._addButtonAF({result: cloneData.result,isVis: true});
} }
} }
} }
...@@ -4548,6 +4556,7 @@ ...@@ -4548,6 +4556,7 @@
var aWs = this._getCurrentWS(); var aWs = this._getCurrentWS();
var filter; var filter;
var filterColums; var filterColums;
var buttons = this.allButtonAF;
if(cRange.index == 'all') if(cRange.index == 'all')
{ {
filter = aWs.AutoFilter; filter = aWs.AutoFilter;
...@@ -4589,7 +4598,7 @@ ...@@ -4589,7 +4598,7 @@
r2: endCell.r1, r2: endCell.r1,
c2: endCell.c1 c2: endCell.c1
} }
this.isEmptyAutoFilters(activeRange, true); this.isEmptyAutoFilters(activeRange, true, true);
return; return;
} }
} }
...@@ -4648,8 +4657,22 @@ ...@@ -4648,8 +4657,22 @@
newNextCol.c1 = 0; newNextCol.c1 = 0;
} }
var id = this._rangeToId(newFirstCol); var id = this._rangeToId(newFirstCol);
var nextId = this._rangeToId(newNextCol); var nextId = this._rangeToId(newNextCol);
if(buttons && buttons.length)
{
for(var b = 0; b < buttons.length; b++)
{
if(buttons[b].id == curFilter.id)
{
buttons[b].inFilter = filter.Ref;
buttons[b].id = id;
buttons[b].idNext = nextId;
break;
}
}
}
curFilter.inFilter = filter.Ref; curFilter.inFilter = filter.Ref;
curFilter.id = id; curFilter.id = id;
curFilter.idNext = nextId; curFilter.idNext = nextId;
......
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