summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-08-10 21:03:28 +0200
committerCaolán McNamara <caolanm@redhat.com>2015-08-11 13:27:49 +0000
commitde44c2459b85a2a804155fb38b9b30c713789c3d (patch)
tree498f0d8ca81c786faf4d55f073c7a2bd7f23f5a2
parented09c7638e3ea40fc40b51af5cf0b2018c5c78c9 (diff)
Resolves: tdf#86024 do not attempt to shorten numeric value output
Regression of 087a79db1272858f107656c5ca3c6efb45680986 Change-Id: I903e05234882c79e6da6499cb17e16fd7226f91c (cherry picked from commit 2a06a052b920f696a794c2fb847fce63038220e9) Reviewed-on: https://gerrit.libreoffice.org/17636 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sc/source/ui/view/output2.cxx52
1 files changed, 30 insertions, 22 deletions
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 5f43c75e9101..cd63e9dc3a85 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2017,32 +2017,40 @@ Rectangle ScOutputData::LayoutStrings(bool bPixelToLogic, bool bPaint, const ScA
OUString aShort = aString;
- double fVisibleRatio = 1.0;
- double fTextWidth = aVars.GetTextSize().Width();
- sal_Int32 nTextLen = aString.getLength();
- if (eOutHorJust == SVX_HOR_JUSTIFY_LEFT && aAreaParam.mnRightClipLength > 0)
+ // But never fiddle with numeric values.
+ // (Which was the cause of tdf#86024).
+ // The General automatic format output takes
+ // care of this, or fixed width numbers either fit
+ // or display as ###.
+ if (!bCellIsValue)
{
- fVisibleRatio = (fTextWidth - aAreaParam.mnRightClipLength) / fTextWidth;
- if (0.0 < fVisibleRatio && fVisibleRatio < 1.0)
+ double fVisibleRatio = 1.0;
+ double fTextWidth = aVars.GetTextSize().Width();
+ sal_Int32 nTextLen = aString.getLength();
+ if (eOutHorJust == SVX_HOR_JUSTIFY_LEFT && aAreaParam.mnRightClipLength > 0)
{
- // Only show the left-end segment.
- sal_Int32 nShortLen = fVisibleRatio*nTextLen + 1;
- aShort = aShort.copy(0, nShortLen);
+ fVisibleRatio = (fTextWidth - aAreaParam.mnRightClipLength) / fTextWidth;
+ if (0.0 < fVisibleRatio && fVisibleRatio < 1.0)
+ {
+ // Only show the left-end segment.
+ sal_Int32 nShortLen = fVisibleRatio*nTextLen + 1;
+ aShort = aShort.copy(0, nShortLen);
+ }
}
- }
- else if (eOutHorJust == SVX_HOR_JUSTIFY_RIGHT && aAreaParam.mnLeftClipLength > 0)
- {
- fVisibleRatio = (fTextWidth - aAreaParam.mnLeftClipLength) / fTextWidth;
- if (0.0 < fVisibleRatio && fVisibleRatio < 1.0)
+ else if (eOutHorJust == SVX_HOR_JUSTIFY_RIGHT && aAreaParam.mnLeftClipLength > 0)
{
- // Only show the right-end segment.
- sal_Int32 nShortLen = fVisibleRatio*nTextLen + 1;
- aShort = aShort.copy(nTextLen-nShortLen);
-
- // Adjust the text position after shortening of the string.
- double fShortWidth = pFmtDevice->GetTextWidth(aShort);
- double fOffset = fTextWidth - fShortWidth;
- aDrawTextPos.Move(fOffset, 0);
+ fVisibleRatio = (fTextWidth - aAreaParam.mnLeftClipLength) / fTextWidth;
+ if (0.0 < fVisibleRatio && fVisibleRatio < 1.0)
+ {
+ // Only show the right-end segment.
+ sal_Int32 nShortLen = fVisibleRatio*nTextLen + 1;
+ aShort = aShort.copy(nTextLen-nShortLen);
+
+ // Adjust the text position after shortening of the string.
+ double fShortWidth = pFmtDevice->GetTextWidth(aShort);
+ double fOffset = fTextWidth - fShortWidth;
+ aDrawTextPos.Move(fOffset, 0);
+ }
}
}