diff options
author | Marco Cecchetti <mrcekets@gmail.com> | 2018-11-30 17:20:37 +0100 |
---|---|---|
committer | Marco Cecchetti <mrcekets@gmail.com> | 2019-05-20 10:31:05 +0200 |
commit | 89189743b9795cae13c69f69cdf6901b9ed354a7 (patch) | |
tree | cdbfb674de6826458220ae42a1f5502b68108300 /svx | |
parent | 9c7fac47aacb0877c7d212217089a680400c1377 (diff) |
lok: shape selection: perform the needed unit conversion in a clever way
Change-Id: I505bd41801b5fd1898a9eddc81b102f2f7ae20b5
Reviewed-on: https://gerrit.libreoffice.org/70563
Tested-by: Jenkins
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 65 | ||||
-rw-r--r-- | svx/source/svdraw/svdedtv1.cxx | 38 |
2 files changed, 9 insertions, 94 deletions
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx index 2f4d63fb2079..fd45c8cfaa41 100644 --- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx +++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx @@ -45,7 +45,7 @@ #include <svl/intitem.hxx> #include <svx/svdview.hxx> #include <svx/transfrmhelper.hxx> -#include <comphelper/lok.hxx> + #include <svtools/unitconv.hxx> using namespace css; @@ -53,27 +53,6 @@ using namespace css::uno; const char USERITEM_NAME[] = "FitItem"; -namespace { - -bool lcl_twipsNeeded(const SdrView* pView) -{ - const bool bTiledRendering = comphelper::LibreOfficeKit::isActive(); - if (bTiledRendering) - { - // We gets the position in twips - if (OutputDevice* pOutputDevice = pView->GetFirstOutputDevice()) - { - if (pOutputDevice->GetMapMode().GetMapUnit() == MapUnit::Map100thMM) - { - return true; - } - } - } - return false; -} - -} // anonymouus ns - namespace svx { namespace sidebar { PosSizePropertyPanel::PosSizePropertyPanel( @@ -401,11 +380,6 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, ChangePosXHdl, Edit&, void ) Fraction aUIScale = mpView->GetModel()->GetUIScale(); lX = long( lX * aUIScale ); - if (lcl_twipsNeeded(mpView)) - { - lX = OutputDevice::LogicToLogic(lX, MapUnit::Map100thMM, MapUnit::MapTwip); - } - SfxInt32Item aPosXItem( SID_ATTR_TRANSFORM_POS_X,static_cast<sal_uInt32>(lX)); GetBindings()->GetDispatcher()->ExecuteList( @@ -423,11 +397,6 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, ChangePosYHdl, Edit&, void ) Fraction aUIScale = mpView->GetModel()->GetUIScale(); lY = long( lY * aUIScale ); - if (lcl_twipsNeeded(mpView)) - { - lY = OutputDevice::LogicToLogic(lY, MapUnit::Map100thMM, MapUnit::MapTwip); - } - SfxInt32Item aPosYItem( SID_ATTR_TRANSFORM_POS_Y,static_cast<sal_uInt32>(lY)); GetBindings()->GetDispatcher()->ExecuteList( @@ -485,18 +454,9 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, AngleModifiedHdl, Edit&, void ) // #i123993# Need to take UIScale into account when executing rotations const double fUIScale(mpView && mpView->GetModel() ? double(mpView->GetModel()->GetUIScale()) : 1.0); - long nRotateX = basegfx::fround(mlRotX * fUIScale); - long nRotateY = basegfx::fround(mlRotY * fUIScale); - - if (lcl_twipsNeeded(mpView)) - { - nRotateX = OutputDevice::LogicToLogic(nRotateX, MapUnit::Map100thMM, MapUnit::MapTwip); - nRotateY = OutputDevice::LogicToLogic(nRotateY, MapUnit::Map100thMM, MapUnit::MapTwip); - } - SfxInt32Item aAngleItem( SID_ATTR_TRANSFORM_ANGLE,static_cast<sal_uInt32>(nTmp)); - SfxInt32Item aRotXItem( SID_ATTR_TRANSFORM_ROT_X, nRotateX); - SfxInt32Item aRotYItem( SID_ATTR_TRANSFORM_ROT_Y, nRotateY); + SfxInt32Item aRotXItem( SID_ATTR_TRANSFORM_ROT_X, basegfx::fround(mlRotX * fUIScale)); + SfxInt32Item aRotYItem( SID_ATTR_TRANSFORM_ROT_Y, basegfx::fround(mlRotY * fUIScale)); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_TRANSFORM, SfxCallMode::RECORD, { &aAngleItem, &aRotXItem, &aRotYItem }); @@ -509,18 +469,9 @@ IMPL_LINK_NOARG( PosSizePropertyPanel, RotationHdl, DialControl*, void ) // #i123993# Need to take UIScale into account when executing rotations const double fUIScale(mpView && mpView->GetModel() ? double(mpView->GetModel()->GetUIScale()) : 1.0); - long nRotateX = basegfx::fround(mlRotX * fUIScale); - long nRotateY = basegfx::fround(mlRotY * fUIScale); - - if (lcl_twipsNeeded(mpView)) - { - nRotateX = OutputDevice::LogicToLogic(nRotateX, MapUnit::Map100thMM, MapUnit::MapTwip); - nRotateY = OutputDevice::LogicToLogic(nRotateY, MapUnit::Map100thMM, MapUnit::MapTwip); - } - SfxInt32Item aAngleItem( SID_ATTR_TRANSFORM_ANGLE,static_cast<sal_uInt32>(nTmp)); - SfxInt32Item aRotXItem( SID_ATTR_TRANSFORM_ROT_X, nRotateX); - SfxInt32Item aRotYItem( SID_ATTR_TRANSFORM_ROT_Y, nRotateY); + SfxInt32Item aRotXItem( SID_ATTR_TRANSFORM_ROT_X, basegfx::fround(mlRotX * fUIScale)); + SfxInt32Item aRotYItem( SID_ATTR_TRANSFORM_ROT_Y, basegfx::fround(mlRotY * fUIScale)); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_TRANSFORM, SfxCallMode::RECORD, { &aAngleItem, &aRotXItem, &aRotYItem }); @@ -888,12 +839,6 @@ void PosSizePropertyPanel::executeSize() lHeight = OutputDevice::LogicToLogic( lHeight, MapUnit::Map100thMM, mePoolUnit ); lHeight = static_cast<long>(mpMtrWidth->Denormalize( lHeight )); - if (lcl_twipsNeeded(mpView)) - { - lWidth = OutputDevice::LogicToLogic(lWidth, MapUnit::Map100thMM, MapUnit::MapTwip); - lHeight = OutputDevice::LogicToLogic(lHeight, MapUnit::Map100thMM, MapUnit::MapTwip); - } - // put Width & Height to itemset SfxUInt32Item aWidthItem( SID_ATTR_TRANSFORM_WIDTH, static_cast<sal_uInt32>(lWidth)); SfxUInt32Item aHeightItem( SID_ATTR_TRANSFORM_HEIGHT, static_cast<sal_uInt32>(lHeight)); diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx index b623579f8e3c..f781b64b36f7 100644 --- a/svx/source/svdraw/svdedtv1.cxx +++ b/svx/source/svdraw/svdedtv1.cxx @@ -1427,19 +1427,7 @@ static Point ImpGetPoint(const tools::Rectangle& rRect, RectPoint eRP) void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr) { - bool bDealingWithTwips = false; const bool bTiledRendering = comphelper::LibreOfficeKit::isActive(); - if (bTiledRendering) - { - // We gets the position in twips - if (OutputDevice* pOutputDevice = mpMarkedPV->GetView().GetFirstOutputDevice()) - { - if (pOutputDevice->GetMapMode().GetMapUnit() == MapUnit::Map100thMM) - { - bDealingWithTwips = true; - } - } - } tools::Rectangle aRect(GetMarkedObjRect()); @@ -1455,14 +1443,8 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr) SdrObject* pObj=nullptr; RectPoint eSizePoint=RectPoint::MM; - long nPosX=aRect.Left(); - long nPosY=aRect.Top(); - if (bDealingWithTwips) - { - nPosX = OutputDevice::LogicToLogic(nPosX, MapUnit::Map100thMM, MapUnit::MapTwip); - nPosY = OutputDevice::LogicToLogic(nPosY, MapUnit::Map100thMM, MapUnit::MapTwip); - } - + long nPosDX=0; + long nPosDY=0; long nSizX=0; long nSizY=0; long nRotateAngle=0; @@ -1504,11 +1486,11 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr) // position if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_POS_X,true,&pPoolItem)) { - nPosX=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); + nPosDX=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue() - aRect.Left(); bChgPos=true; } if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_POS_Y,true,&pPoolItem)){ - nPosY=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); + nPosDY=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue() - aRect.Top(); bChgPos=true; } // size @@ -1598,18 +1580,6 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr) bSetAttr=true; } - if(bDealingWithTwips) { - nPosX = OutputDevice::LogicToLogic(nPosX, MapUnit::MapTwip, MapUnit::Map100thMM); - nPosY = OutputDevice::LogicToLogic(nPosY, MapUnit::MapTwip, MapUnit::Map100thMM); - nSizX = OutputDevice::LogicToLogic(nSizX, MapUnit::MapTwip, MapUnit::Map100thMM); - nSizY = OutputDevice::LogicToLogic(nSizY, MapUnit::MapTwip, MapUnit::Map100thMM); - nRotateX = OutputDevice::LogicToLogic(nRotateX, MapUnit::MapTwip, MapUnit::Map100thMM); - nRotateY = OutputDevice::LogicToLogic(nRotateY, MapUnit::MapTwip, MapUnit::Map100thMM); - } - - long nPosDX = nPosX - aRect.Left(); - long nPosDY = nPosY - aRect.Top(); - ForcePossibilities(); BegUndo(SvxResId(STR_EditTransform),GetDescriptionOfMarkedObjects()); |