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

http://bugzserver/show_bug.cgi?id=29005 - Потеря формата форматированной...

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

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@65068 954022d7-b5bf-4e40-9824-e11837661b57
parent 666f1fb0
......@@ -1851,27 +1851,6 @@ var maxIndividualValues = 10000;
return false;
},
changeSelectionFromCellToColumn: function(activeRange)
{
var aWs = this._getCurrentWS();
var ws = this.worksheet
var tableParts = aWs.TableParts;
if(tableParts && tableParts.length && activeRange.isOneCell())
{
for(var i = 0; i < tableParts.length; i++ )
{
if(tableParts[i].Ref.containsFirstLineRange(activeRange))
{
var newActiveRange = new Asc.Range(activeRange.c1, activeRange.r1, activeRange.c1, tableParts[i].Ref.r2);
if(!activeRange.isEqual(newActiveRange))
ws.setSelection(newActiveRange);
break;
}
}
}
},
_setStyleTablePartsAfterOpenRows: function(ref)
{
var aWs = this._getCurrentWS();
......@@ -4561,6 +4540,7 @@ var maxIndividualValues = 10000;
{
var aWs = this._getCurrentWS();
var findFilters = this._searchFiltersInRange(arnFrom);
var undoRedo = aWs.workbook.bUndoChanges || aWs.workbook.bRedoChanges;
if(findFilters && findFilters.length)
{
......@@ -4577,7 +4557,89 @@ var maxIndividualValues = 10000;
bWithoutFilter = findFilters[i].AutoFilter === null;
if(!ref.intersection(newRange) && !this._intersectionRangeWithTableParts(newRange, aWs, arnFrom))
{
//TODO позже не копировать стиль при перемещении всей таблицы
if(!undoRedo)
{
var cleanRange = new Range(aWs, newRange.r1, newRange.c1, newRange.r2, newRange.c2);
cleanRange.cleanFormat();
}
this.addAutoFilter(findFilters[i].TableStyleInfo.Name, newRange, null, offLock);
}
}
}
}
},
//с учётом последних скрытых строк
_activeRangeContainsTablePart(activeRange, tablePartRef)
{
var aWs = this._getCurrentWS();
var res = false;
if(activeRange.r1 === tablePartRef.r1 && activeRange.c1 === tablePartRef.c1 && activeRange.c2 === tablePartRef.c2 && activeRange.r2 < tablePartRef.r2)
{
res = true;
for(var i = activeRange.r2 + 1; i <= tablePartRef.r2; i++)
{
if(!aWs.getRowHidden(i))
{
res = false;
break;
}
}
}
return res;
},
changeSelectionTablePart: function(activeRange)
{
if(activeRange.isOneCell())
this._changeSelectionFromCellToColumn(activeRange);
else
this._changeSelectionToAllTablePart(activeRange);
},
_changeSelectionToAllTablePart: function(activeRange)
{
var aWs = this._getCurrentWS();
var ws = this.worksheet;
var tableParts = aWs.TableParts;
var tablePart;
for(var i = 0; i < tableParts.length; i++)
{
tablePart = tableParts[i];
if(tablePart.Ref.intersection(activeRange))
{
if(this._activeRangeContainsTablePart(activeRange, tablePart.Ref))
{
var newActiveRange = new Asc.Range(tablePart.Ref.c1, tablePart.Ref.r1, tablePart.Ref.c2, tablePart.Ref.r2);
ws.setSelection(newActiveRange);
}
break;
}
}
},
_changeSelectionFromCellToColumn: function(activeRange)
{
var aWs = this._getCurrentWS();
var ws = this.worksheet
var tableParts = aWs.TableParts;
if(tableParts && tableParts.length && activeRange.isOneCell())
{
for(var i = 0; i < tableParts.length; i++ )
{
if(tableParts[i].Ref.containsFirstLineRange(activeRange))
{
var newActiveRange = new Asc.Range(activeRange.c1, activeRange.r1, activeRange.c1, tableParts[i].Ref.r2);
if(!activeRange.isEqual(newActiveRange))
ws.setSelection(newActiveRange);
break;
}
}
}
......
......@@ -7644,9 +7644,10 @@
x *= asc_getcvt( 0/*px*/, 1/*pt*/, this._getPPIX() );
y *= asc_getcvt( 0/*px*/, 1/*pt*/, this._getPPIY() );
//если выделена ячейка заголовка ф/т, меняем выделение с ячейки на столбец ф/т
//если выделена ячейка заголовка ф/т, меняем выделение с ячейки на столбец ф/т
//если выделена вся видимая часть форматированной таблицы, но не выделены последние скрытые строчки
if (null === this.startCellMoveRange)
this.autoFilters.changeSelectionFromCellToColumn(this.activeRange);
this.autoFilters.changeSelectionTablePart(this.activeRange);
var ar = this.activeRange.clone(true);
......
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