diff options
author | Ilhan Yesil <ilhanyesil@gmx.de> | 2018-11-13 11:20:15 +0100 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2019-12-12 13:40:21 +0100 |
commit | 12b4efb1216fc494443795b06e9ad92bcad2c306 (patch) | |
tree | d90e3915ca44ba768bcc83a18b7ffb5fed602af5 | |
parent | 701b5cfe9d908b346e95054b565d05747775ae79 (diff) |
tdf#116051 Right border visible after hiding neighbour column
Added an else statement to take into account that a hidden column
has a neighboured left column with a right border.
Reviewed-on: https://gerrit.libreoffice.org/63326
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
(cherry picked from commit 392729c735bb82eecf29bae5527ec786ca293f34)
Reviewed-on: https://gerrit.libreoffice.org/67054
Reviewed-by: Ilhan Yesil <ilhanyesil@gmx.de>
Tested-by: Ilhan Yesil <ilhanyesil@gmx.de>
(cherry picked from commit efc741c41483b2402378391b7fba36377c886a8e)
Reviewed-on: https://gerrit.libreoffice.org/84857
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Change-Id: Ia415d422dd2fa305604e48cce55661408b835ea6
-rw-r--r-- | svx/source/dialog/framelinkarray.cxx | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/svx/source/dialog/framelinkarray.cxx b/svx/source/dialog/framelinkarray.cxx index f0934c48dd7c..9e14810261b9 100644 --- a/svx/source/dialog/framelinkarray.cxx +++ b/svx/source/dialog/framelinkarray.cxx @@ -1103,28 +1103,30 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange( basegfx::B2DVector aX(basegfx::utils::getColumn(aCoordinateSystem, 0)); basegfx::B2DVector aY(basegfx::utils::getColumn(aCoordinateSystem, 1)); + // get needed local values + basegfx::B2DPoint aOrigin(basegfx::utils::getColumn(aCoordinateSystem, 2)); + const bool bOverlapX(rCell.mbOverlapX); + const bool bFirstCol(nCol == nFirstCol); + + // handle rotation: If cell is rotated, handle lower/right edge inside + // this local geometry due to the created CoordinateSystem already representing + // the needed transformations. + const bool bRotated(rCell.IsRotated()); + + // Additionally avoid double-handling by suppressing handling when self not rotated, + // but above/left is rotated and thus already handled. Two directly connected + // rotated will paint/create both edges, they might be rotated differently. + const bool bSupressLeft(!bRotated && nCol > nFirstCol && CELL(nCol - 1, nRow).IsRotated()); + const bool bSuppressAbove(!bRotated && nRow > nFirstRow && CELL(nCol, nRow - 1).IsRotated()); + if(!aX.equalZero() && !aY.equalZero()) { - // get needed local values - basegfx::B2DPoint aOrigin(basegfx::utils::getColumn(aCoordinateSystem, 2)); - const bool bOverlapX(rCell.mbOverlapX); + // additionally needed local values const bool bOverlapY(rCell.mbOverlapY); - const bool bFirstCol(nCol == nFirstCol); const bool bLastCol(nCol == nLastCol); const bool bFirstRow(nRow == nFirstRow); const bool bLastRow(nRow == nLastRow); - // handle rotation: If cell is rotated, handle lower/right edge inside - // this local geometry due to the created CoordinateSystem already representing - // the needed transformations. - const bool bRotated(rCell.IsRotated()); - - // Additionally avoid double-handling by suppressing handling when self not rotated, - // but above/left is rotated and thus already handled. Two directly connected - // rotated will paint/create both edges, they might be rotated differently. - const bool bSuppressAbove(!bRotated && nRow > nFirstRow && CELL(nCol, nRow - 1).IsRotated()); - const bool bSupressLeft(!bRotated && nCol > nFirstCol && CELL(nCol - 1, nRow).IsRotated()); - // create upper line for this Cell if ((!bOverlapY // true for first line in merged cells or cells || bFirstRow) // true for non_Calc usages of this tooling @@ -1281,6 +1283,21 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange( } } } + else + { + // create left line for this Cell + if ((!bOverlapX // true for first column in merged cells or cells + || bFirstCol) // true for non_Calc usages of this tooling + && !bSupressLeft) // true when left is not rotated, so edge is already handled (see bRotated) + { + const Style& rLeft(GetCellStyleLeft(nCol, nRow)); + + if (rLeft.IsUsed()) + { + HelperCreateVerticalEntry(*this, rLeft, nCol, nRow, aOrigin, aX, aY, aVerticalSequences[nCol - nStartCol], true, pForceColor); + } + } + } } } |