From 134ddd56f0a57eeb114fcf8695ddf2daaddf69ea Mon Sep 17 00:00:00 2001 From: "Igor.Zotov" <Igor.Zotov@OnlyOffice.com> Date: Wed, 29 Oct 2014 08:30:53 +0000 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@59285 954022d7-b5bf-4e40-9824-e11837661b57 --- Excel/model/autofilters.js | 21 +++++++++++---------- Excel/view/WorksheetView.js | 24 ++++++++++++++---------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/Excel/model/autofilters.js b/Excel/model/autofilters.js index 155444f0c..9df09fa12 100644 --- a/Excel/model/autofilters.js +++ b/Excel/model/autofilters.js @@ -2174,7 +2174,7 @@ var gUndoInsDelCellsFlag = true; var aWs = this._getCurrentWS(); var tableParts = aWs.TableParts; var autoFilter = aWs.AutoFilter; - var result = true; + var result = null; if(DeleteColumns || DeleteRows) { @@ -2255,7 +2255,7 @@ var gUndoInsDelCellsFlag = true; //еÑли Ñелектом заÑхвачена не вÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°, то выдаём ошибку и возвращаем false if(activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r2) { - result = 'changeAutoFilter'; + result = true; } else { @@ -2326,19 +2326,19 @@ var gUndoInsDelCellsFlag = true; //еÑли Ñдвигаем данный фильтр if(DeleteCellsAndShiftLeft && tableRange.c1 > activeCells.c1 && tableRange.r1 >= activeCells.r1 && tableRange.r2 <= activeCells.r2) { - result = 'changeAutoFilter'; + result = true; } else if(DeleteCellsAndShiftTop && tableRange.r1 > activeCells.r1 && tableRange.c1 >= activeCells.c1 && tableRange.c2 <= activeCells.c2) { - result = 'changeAutoFilter'; + result = true; } else if(InsertCellsAndShiftRight && tableRange.c1 >= activeCells.c1 && tableRange.r1 >= activeCells.r1 && tableRange.r2 <= activeCells.r2) { - result = 'changeAutoFilter'; + result = true; } else if(InsertCellsAndShiftDown && tableRange.r1 >= activeCells.r1 && tableRange.c1 >= activeCells.c1 && tableRange.c2 <= activeCells.c2) { - result = 'changeAutoFilter'; + result = true; } } } @@ -2352,17 +2352,18 @@ var gUndoInsDelCellsFlag = true; { if(activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r2) { - result = 'changeAutoFilter'; + result = true; } else if((DeleteCellsAndShiftLeft || DeleteCellsAndShiftTop) && activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r1) - result = 'changeAutoFilter' + result = true; } //еÑли Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ находитÑÑ Ð´Ð¾ а/Ñ„ if(activeCells.c2 < tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.r2 >= tableRange.r2) - result = 'changeAutoFilter'; + result = true; else if(activeCells.r2 < tableRange.r1 && activeCells.c1 <= tableRange.c1 && activeCells.c2 >= tableRange.c2) - result = 'changeAutoFilter'; + result = true; } + return result; }, //еÑли Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ полноÑтью лежит внутри форматированной таблицы, но не равно ей diff --git a/Excel/view/WorksheetView.js b/Excel/view/WorksheetView.js index e4a3f3c79..28e360946 100644 --- a/Excel/view/WorksheetView.js +++ b/Excel/view/WorksheetView.js @@ -9537,13 +9537,14 @@ range = t.model.getRange3(_updateRangeIns.r1, _updateRangeIns.c1, _updateRangeIns.r2, _updateRangeIns.c2); switch (val) { case c_oAscInsertOptions.InsertCellsAndShiftRight: + isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftRight, prop, bUndoRedo); + if(!isCheckChangeAutoFilter) + return; + functionModelAction = function () { - var isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftRight, prop, bUndoRedo); - if(!isCheckChangeAutoFilter) - return; if (range.addCellsShiftRight()) { fullRecalc = true; - if(isCheckChangeAutoFilter == 'changeAutoFilter') + if(isCheckChangeAutoFilter === true) { if(gUndoInsDelCellsFlag == true) t.autoFilters.insertColumn(prop, _updateRangeIns, arn); @@ -9565,13 +9566,14 @@ } break; case c_oAscInsertOptions.InsertCellsAndShiftDown: + isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftDown, prop, bUndoRedo); + if(!isCheckChangeAutoFilter) + return; + functionModelAction = function () { - var isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftDown, prop, bUndoRedo); - if(!isCheckChangeAutoFilter) - return; if (range.addCellsShiftBottom()) { fullRecalc = true; - if(isCheckChangeAutoFilter == 'changeAutoFilter') + if(isCheckChangeAutoFilter === true) { if(gUndoInsDelCellsFlag == true) t.autoFilters.insertRows(prop,_updateRangeIns, _updateRangeIns); @@ -9657,7 +9659,7 @@ //t.autoFilters.isEmptyAutoFilters(arn); if (range.deleteCellsShiftLeft()) { fullRecalc = true; - if(isCheckChangeAutoFilter == 'changeAutoFilter') + if(isCheckChangeAutoFilter === true) t.autoFilters.insertColumn(prop, _updateRangeDel, arn, c_oAscDeleteOptions.DeleteCellsAndShiftLeft); t.cellCommentator.updateCommentsDependencies(false, val, _updateRangeDel); t.objectRender.updateDrawingObject(false, val, _updateRangeDel); @@ -9684,7 +9686,7 @@ //t.autoFilters.isEmptyAutoFilters(arn); if (range.deleteCellsShiftUp()) { fullRecalc = true; - if(isCheckChangeAutoFilter == 'changeAutoFilter') + if(isCheckChangeAutoFilter === true) t.autoFilters.insertRows(prop, _updateRangeDel, _updateRangeDel, c_oAscDeleteOptions.DeleteCellsAndShiftTop); t.cellCommentator.updateCommentsDependencies(false, val, _updateRangeDel); t.objectRender.updateDrawingObject(false, val, _updateRangeDel); @@ -9704,6 +9706,7 @@ isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeDel, c_oAscDeleteOptions.DeleteColumns, prop, bUndoRedo); if(!isCheckChangeAutoFilter) return; + functionModelAction = function () { fullRecalc = true; History.Create_NewPoint(); @@ -9728,6 +9731,7 @@ isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeDel, c_oAscDeleteOptions.DeleteRows, prop, bUndoRedo); if(!isCheckChangeAutoFilter) return; + functionModelAction = function () { fullRecalc = true; History.Create_NewPoint(); -- 2.30.9