diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-25 14:55:09 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-06-27 05:20:38 +0000 |
commit | db39c653e5de92bc371040a3f81cc5c4ea6dedf3 (patch) | |
tree | e8637f47a9465294f86367b9f3d6d53ed7fc77a5 /drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx | |
parent | 78ca0ce54a2cd79736247ea8cf69ad5fc797ee1a (diff) |
loplugin:singlevalfields in drawinglayer
Change-Id: I19f50b0afa624391bd0d8ada7afca822298e10cc
Reviewed-on: https://gerrit.libreoffice.org/26655
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx')
-rw-r--r-- | drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx | 65 |
1 files changed, 26 insertions, 39 deletions
diff --git a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx index 3c2db2f6e91c..5cb7232e9af0 100644 --- a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx @@ -66,48 +66,37 @@ namespace drawinglayer // create a mapping from content to object. basegfx::B2DHomMatrix aPageTrans; - if(getKeepAspectRatio()) + // #i101075# when keeping the aspect ratio is wanted, it is necessary to calculate + // an equidistant scaling in X and Y and a corresponding translation to + // center the output. Calculate needed scale factors + const double fScaleX(aScale.getX() / getContentWidth()); + const double fScaleY(aScale.getY() / getContentHeight()); + + // to keep the aspect, use the smaller scale and adapt missing size by translation + if(fScaleX < fScaleY) { - // #i101075# when keeping the aspect ratio is wanted, it is necessary to calculate - // an equidistant scaling in X and Y and a corresponding translation to - // center the output. Calculate needed scale factors - const double fScaleX(aScale.getX() / getContentWidth()); - const double fScaleY(aScale.getY() / getContentHeight()); - - // to keep the aspect, use the smaller scale and adapt missing size by translation - if(fScaleX < fScaleY) - { - // height needs to be adapted - const double fNeededHeight(aScale.getY() / fScaleX); - const double fSpaceToAdd(fNeededHeight - getContentHeight()); - - aPageTrans.translate(0.0, fSpaceToAdd * 0.5); - aPageTrans.scale(fScaleX, aScale.getY() / fNeededHeight); - } - else - { - // width needs to be adapted - const double fNeededWidth(aScale.getX() / fScaleY); - const double fSpaceToAdd(fNeededWidth - getContentWidth()); - - aPageTrans.translate(fSpaceToAdd * 0.5, 0.0); - aPageTrans.scale(aScale.getX() / fNeededWidth, fScaleY); - } - - // add the missing object transformation aspects - const basegfx::B2DHomMatrix aCombined(basegfx::tools::createShearXRotateTranslateB2DHomMatrix( - fShearX, fRotate, aTranslate.getX(), aTranslate.getY())); - aPageTrans = aCombined * aPageTrans; + // height needs to be adapted + const double fNeededHeight(aScale.getY() / fScaleX); + const double fSpaceToAdd(fNeededHeight - getContentHeight()); + + aPageTrans.translate(0.0, fSpaceToAdd * 0.5); + aPageTrans.scale(fScaleX, aScale.getY() / fNeededHeight); } else { - // completely scale to PageObject size. Scale to unit size. - aPageTrans.scale(1.0/ getContentWidth(), 1.0 / getContentHeight()); + // width needs to be adapted + const double fNeededWidth(aScale.getX() / fScaleY); + const double fSpaceToAdd(fNeededWidth - getContentWidth()); - // apply object matrix - aPageTrans *= getTransform(); + aPageTrans.translate(fSpaceToAdd * 0.5, 0.0); + aPageTrans.scale(aScale.getX() / fNeededWidth, fScaleY); } + // add the missing object transformation aspects + const basegfx::B2DHomMatrix aCombined(basegfx::tools::createShearXRotateTranslateB2DHomMatrix( + fShearX, fRotate, aTranslate.getX(), aTranslate.getY())); + aPageTrans = aCombined * aPageTrans; + // embed in necessary transformation to map from SdrPage to SdrPageObject const Primitive2DReference xReferenceB(new TransformPrimitive2D(aPageTrans, aContent)); xRetval = Primitive2DContainer { xReferenceB }; @@ -128,8 +117,7 @@ namespace drawinglayer maPageContent(rPageContent), maTransform(rTransform), mfContentWidth(fContentWidth), - mfContentHeight(fContentHeight), - mbKeepAspectRatio(true) + mfContentHeight(fContentHeight) { } @@ -143,8 +131,7 @@ namespace drawinglayer && getPageContent() == rCompare.getPageContent() && getTransform() == rCompare.getTransform() && getContentWidth() == rCompare.getContentWidth() - && getContentHeight() == rCompare.getContentHeight() - && getKeepAspectRatio() == rCompare.getKeepAspectRatio()); + && getContentHeight() == rCompare.getContentHeight()); } return false; |