Commit 07841b63 authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Измерять пустую ячейку нужно тогда, когда у нее шрифт (размер или гарнитура)...

Измерять пустую ячейку нужно тогда, когда у нее шрифт (размер или гарнитура) не совпадают со строкой. Баг http://bugzserver/show_bug.cgi?id=26317
Функции getFontname, getFontsize и т.д. заменил на вызов getFont

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58402 954022d7-b5bf-4e40-9824-e11837661b57
parent f24bbad9
...@@ -5642,8 +5642,6 @@ Range.prototype.getValueWithFormat=function(){ ...@@ -5642,8 +5642,6 @@ Range.prototype.getValueWithFormat=function(){
}; };
Range.prototype.getValue2=function(dDigitsCount, fIsFitMeasurer){ Range.prototype.getValue2=function(dDigitsCount, fIsFitMeasurer){
//[{"text":"qwe","format":{"b":true, "i":false, "u":Asc.EUnderline.underlineNone, "s":false, "fn":"Arial", "fs": 12, "c": 0xff00ff, "va": "subscript" }},{}...] //[{"text":"qwe","format":{"b":true, "i":false, "u":Asc.EUnderline.underlineNone, "s":false, "fn":"Arial", "fs": 12, "c": 0xff00ff, "va": "subscript" }},{}...]
var nRow0 = this.bbox.r1;
var nCol0 = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(this.bbox.r1, this.bbox.c1); var cell = this.worksheet._getCellNoEmpty(this.bbox.r1, this.bbox.c1);
if(null != cell) if(null != cell)
return cell.getValue2(dDigitsCount, fIsFitMeasurer); return cell.getValue2(dDigitsCount, fIsFitMeasurer);
...@@ -5714,6 +5712,19 @@ Range.prototype.getNumFormatStr=function(){ ...@@ -5714,6 +5712,19 @@ Range.prototype.getNumFormatStr=function(){
Range.prototype.getNumFormatType=function(){ Range.prototype.getNumFormatType=function(){
return this.getNumFormat().getType(); return this.getNumFormat().getType();
}; };
// Узнаем отличается ли шрифт (размер и гарнитура) в ячейке от шрифта в строке
Range.prototype.isNotDefaultFont = function () {
// Получаем фонт ячейки
var cellFont = this.getFont();
var rowFont = g_oDefaultFont;
var row = this.worksheet._getRowNoEmpty(this.bbox.r1);
if (null != row && null != row.xfs && null != row.xfs.font)
rowFont = row.xfs.font;
else if (null != this.oAllCol)
rowFont = this.oAllCol;
return (cellFont.fn !== rowFont.fn || cellFont.fs !== rowFont.fs);
};
Range.prototype.getFont = function(){ Range.prototype.getFont = function(){
var nRow = this.bbox.r1; var nRow = this.bbox.r1;
var nCol = this.bbox.c1; var nCol = this.bbox.c1;
...@@ -5737,180 +5748,28 @@ Range.prototype.getFont = function(){ ...@@ -5737,180 +5748,28 @@ Range.prototype.getFont = function(){
return g_oDefaultFont; return g_oDefaultFont;
}; };
Range.prototype.getFontname=function(){ Range.prototype.getFontname=function(){
var nRow = this.bbox.r1; return this.getFont().fn;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.fn;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.fn;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.fn;
}
return g_oDefaultFont.fn;
}; };
Range.prototype.getFontsize=function(){ Range.prototype.getFontsize=function(){
var nRow = this.bbox.r1; return this.getFont().fs;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.fs;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.fs;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.fs;
}
return g_oDefaultFont.fs;
}; };
Range.prototype.getFontcolor=function(){ Range.prototype.getFontcolor=function(){
var nRow = this.bbox.r1; return this.getFont().c;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.c;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.c;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.c;
}
return g_oDefaultFont.c;
}; };
Range.prototype.getBold=function(){ Range.prototype.getBold=function(){
var nRow = this.bbox.r1; return this.getFont().b;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.b;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.b;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.b;
}
return g_oDefaultFont.b;
}; };
Range.prototype.getItalic=function(){ Range.prototype.getItalic=function(){
var nRow = this.bbox.r1; return this.getFont().i;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.i;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.i;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.i;
}
return g_oDefaultFont.i;
}; };
Range.prototype.getUnderline=function(){ Range.prototype.getUnderline=function(){
var nRow = this.bbox.r1; return this.getFont().u;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.u;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.u;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.u;
}
return g_oDefaultFont.u;
}; };
Range.prototype.getStrikeout=function(){ Range.prototype.getStrikeout=function(){
var nRow = this.bbox.r1; return this.getFont().s;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.s;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.s;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.s;
}
return g_oDefaultFont.s;
}; };
Range.prototype.getFontAlign=function(){ Range.prototype.getFontAlign=function(){
var nRow = this.bbox.r1; return this.getFont().va;
var nCol = this.bbox.c1;
var cell = this.worksheet._getCellNoEmpty(nRow, nCol);
if(null != cell)
{
var xfs = cell.getCompiledStyle();
if(null != xfs && null != xfs.font)
return xfs.font.va;
}
else
{
//стили столбов и колонок
var row = this.worksheet._getRowNoEmpty(nRow);
if(null != row && null != row.xfs && null != row.xfs.font)
return row.xfs.font.va;
var col = this.worksheet._getColNoEmptyWithAll(nCol);
if(null != col && null != col.xfs && null != col.xfs.font)
return col.xfs.font.va;
}
return g_oDefaultFont.va;
}; };
Range.prototype.getQuotePrefix=function(){ Range.prototype.getQuotePrefix=function(){
var nRow = this.bbox.r1; var nRow = this.bbox.r1;
......
...@@ -4207,7 +4207,8 @@ ...@@ -4207,7 +4207,8 @@
} }
var angle = c.getAngle(); var angle = c.getAngle();
if (this._isCellEmptyTextString(c) && !angle) { if (this._isCellEmptyTextString(c)) {
if (!angle && c.isNotDefaultFont()) {
// Пустая ячейка с измененной гарнитурой или размером, учитвается в высоте // Пустая ячейка с измененной гарнитурой или размером, учитвается в высоте
str = c.getValue2(); str = c.getValue2();
if (0 < str.length) { if (0 < str.length) {
...@@ -4217,6 +4218,7 @@ ...@@ -4217,6 +4218,7 @@
tm = this._roundTextMetrics(this.stringRender.measureString(strCopy, fl)); tm = this._roundTextMetrics(this.stringRender.measureString(strCopy, fl));
this._updateRowHeight(tm, col, row, isMerged, fMergedRows); this._updateRowHeight(tm, col, row, isMerged, fMergedRows);
} }
}
return mc ? mc.c2 : col; return mc ? mc.c2 : col;
} }
......
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