Kaydet (Commit) 1990fc47 authored tarafından Pranav Kant's avatar Pranav Kant Kaydeden (comit) pranavk

sd lok: Enable mapmode in case of lok to calculate center

This reverts the solution in 9fee132c.

Also, calculate center using the new function for chart, image, and text
shape insertion.

Change-Id: Ie893050b7c875760db0194e7a3f0c2cd3068963b
Reviewed-on: https://gerrit.libreoffice.org/51343Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarpranavk <pranavk@collabora.co.uk>
üst 21f56ccb
......@@ -69,7 +69,6 @@
#include <sfx2/opengrf.hxx>
#include <sfx2/viewfrm.hxx>
#include <svx/charthelper.hxx>
#include <comphelper/lok.hxx>
#include <app.hrc>
#include <sdresid.hxx>
......@@ -170,20 +169,7 @@ void FuInsertGraphic::DoExecute( SfxRequest& rReq )
bSelectionReplaced = true;
}
Point aPos;
// For LOK, set position to center of the page
if (comphelper::LibreOfficeKit::isActive())
aPos = ::tools::Rectangle(aPos, mpView->GetSdrPageView()->GetPage()->GetSize()).Center();
else
{
::tools::Rectangle aRect(aPos, mpWindow->GetOutputSizePixel() );
aPos = aRect.Center();
bool bMapModeWasEnabled(mpWindow->IsMapModeEnabled());
mpWindow->EnableMapMode(/*true*/);
aPos = mpWindow->PixelToLogic(aPos);
mpWindow->EnableMapMode(bMapModeWasEnabled);
}
Point aPos = mpWindow->GetVisibleCenter();
SdrGrafObj* pGrafObj = mpView->InsertGraphic(aGraphic, nAction, aPos, pPickObj, nullptr);
if(pGrafObj && bAsLink )
......@@ -380,10 +366,7 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq )
aSize = OutputDevice::LogicToLogic(aSize, MapMode(aUnit), MapMode(MapUnit::Map100thMM));
}
Point aPos;
::tools::Rectangle aWinRect(aPos, mpWindow->GetOutputSizePixel() );
aPos = aWinRect.Center();
aPos = mpWindow->PixelToLogic(aPos);
Point aPos = mpWindow->GetVisibleCenter();
aPos.AdjustX( -(aSize.Width() / 2) );
aPos.AdjustY( -(aSize.Height() / 2) );
aRect = ::tools::Rectangle(aPos, aSize);
......
......@@ -91,7 +91,7 @@ public:
void SelectAll();
void DoCut();
void DoCopy();
void DoPaste(vcl::Window const * pWindow=nullptr);
void DoPaste(::sd::Window* pWindow=nullptr);
virtual void DoConnect(SdrOle2Obj* pOleObj) override;
virtual bool SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr = false);
void StartDrag( const Point& rStartPos, vcl::Window* pWindow );
......
......@@ -131,6 +131,7 @@ public:
void SetVisibleXY(double fX, double fY);
double GetVisibleWidth();
double GetVisibleHeight();
Point GetVisibleCenter();
double GetScrlLineWidth();
double GetScrlLineHeight();
double GetScrlPageWidth();
......
......@@ -264,7 +264,7 @@ void View::DoCopy()
}
}
void View::DoPaste (vcl::Window const * pWindow)
void View::DoPaste (::sd::Window* pWindow)
{
TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( mpViewSh->GetActiveWindow() ) );
if( !aDataHelper.GetTransferable().is() )
......@@ -315,17 +315,8 @@ void View::DoPaste (vcl::Window const * pWindow)
}
else
{
Point aPos;
sal_Int8 nDnDAction = DND_ACTION_COPY;
if( pWindow )
{
if (comphelper::LibreOfficeKit::isActive())
aPos = ::tools::Rectangle(aPos, GetSdrPageView()->GetPage()->GetSize()).Center();
else
aPos = pWindow->PixelToLogic( ::tools::Rectangle( aPos, pWindow->GetOutputSizePixel() ).Center() );
}
Point aPos = pWindow->GetVisibleCenter();
DrawViewShell* pDrViewSh = static_cast<DrawViewShell*>( mpDocSh->GetViewShell() );
if (pDrViewSh != nullptr)
......
......@@ -683,6 +683,26 @@ double Window::GetVisibleHeight()
return (static_cast<double>(aWinSize.Height()) / maViewSize.Height());
}
Point Window::GetVisibleCenter()
{
Size aWinSize = PixelToLogic(GetOutputSizePixel());
if ( aWinSize.Height() > maViewSize.Height() )
aWinSize.setHeight( maViewSize.Height() );
if ( aWinSize.Width() > maViewSize.Width() )
aWinSize.setWidth( maViewSize.Width() );
Point aPos;
aPos = ::tools::Rectangle(aPos, aWinSize).Center();
// For LOK
bool bMapModeWasEnabled(IsMapModeEnabled());
EnableMapMode(/*true*/);
aPos = PixelToLogic(aPos);
EnableMapMode(bMapModeWasEnabled);
return aPos;
}
/**
* @returns width of a scroll column in proportion to the width of the whole
* working area.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment