summaryrefslogtreecommitdiff
path: root/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx')
-rw-r--r--drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx65
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;