include/vcl/outdev.hxx | 2 ++ include/vcl/print.hxx | 2 ++ vcl/source/gdi/print.cxx | 7 +++++++ vcl/source/gdi/print2.cxx | 11 +---------- vcl/source/outdev/outdev.cxx | 5 +++++ 5 files changed, 17 insertions(+), 10 deletions(-)
New commits: commit ec48d37f574924c66dea4f7adb56944bbe636aa1 Author: Yusuf Keten <ketenyu...@gmail.com> AuthorDate: Fri Feb 7 19:18:57 2020 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Sat Feb 8 16:56:23 2020 +0100 tdf#74702 Remove OutDevType from OutputDevice::RemoveTransparenciesFromMetaFile Extracted SetBackgroundComponentBounds() which removes need for checking OutDevType especially whether it is Printer or not in OutputDevice. Change-Id: Ib8884b861314f595283af9ae3a2cd5645b334d51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86312 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index 687b9a1c207a..e4430b2415f3 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -559,6 +559,8 @@ protected: virtual void CopyDeviceArea( SalTwoRect& aPosAry, bool bWindowInvalidate); + virtual tools::Rectangle SetBackgroundComponentBounds(); + virtual void DrawOutDevDirectCheck( const OutputDevice* pSrcDev, SalGraphics*& pSrcGraphics ); virtual void DrawOutDevDirectProcess( const OutputDevice* pSrcDev, SalTwoRect& rPosAry, SalGraphics* pSrcGraphics ); diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx index 154ee694bd83..eff9c983ff5c 100644 --- a/include/vcl/print.hxx +++ b/include/vcl/print.hxx @@ -365,6 +365,8 @@ public: virtual void CopyArea( const Point& rDestPt, const Point& rSrcPt, const Size& rSrcSize, bool bWindowInvalidate = false ) override; + virtual tools::Rectangle SetBackgroundComponentBounds() override; + // These 3 together are more modular PrintJob(), allowing printing more documents as one print job // by repeated calls to ExecutePrintJob(). Used by mailmerge. static bool PreparePrintJob( std::shared_ptr<vcl::PrinterController> i_pController, diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx index 364f0af35587..7c8a68892708 100644 --- a/vcl/source/gdi/print.cxx +++ b/vcl/source/gdi/print.cxx @@ -316,6 +316,13 @@ void Printer::CopyArea( const Point& /*rDestPt*/, SAL_WARN( "vcl.gdi", "Don't use OutputDevice::CopyArea(...) with printer devices!" ); } +tools::Rectangle Printer::SetBackgroundComponentBounds() +{ + Point aPageOffset = Point( 0, 0 ) - this->GetPageOffsetPixel(); + Size aSize = this->GetPaperSizePixel(); + return tools::Rectangle( aPageOffset, aSize ); +} + void Printer::SetPrinterOptions( const PrinterOptions& i_rOptions ) { *mpPrinterOptions = i_rOptions; diff --git a/vcl/source/gdi/print2.cxx b/vcl/source/gdi/print2.cxx index db4b6dd0af72..b51318c8ea83 100644 --- a/vcl/source/gdi/print2.cxx +++ b/vcl/source/gdi/print2.cxx @@ -748,16 +748,7 @@ bool OutputDevice::RemoveTransparenciesFromMetaFile( const GDIMetaFile& rInMtf, if( rBackground != COL_TRANSPARENT ) { aBackgroundComponent.aBgColor = rBackground; - if( meOutDevType == OUTDEV_PRINTER ) - { - Printer* pThis = dynamic_cast<Printer*>(this); - assert(pThis); - Point aPageOffset = Point( 0, 0 ) - pThis->GetPageOffsetPixel(); - Size aSize = pThis->GetPaperSizePixel(); - aBackgroundComponent.aBounds = tools::Rectangle( aPageOffset, aSize ); - } - else - aBackgroundComponent.aBounds = tools::Rectangle( Point( 0, 0 ), GetOutputSizePixel() ); + aBackgroundComponent.aBounds = SetBackgroundComponentBounds(); } while( pCurrAct && bStillBackground ) { diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx index 880181cb5407..0dcdd84a5d0a 100644 --- a/vcl/source/outdev/outdev.cxx +++ b/vcl/source/outdev/outdev.cxx @@ -579,6 +579,11 @@ void OutputDevice::DrawOutDevDirectProcess( const OutputDevice* pSrcDev, SalTwoR mpGraphics->CopyBits( rPosAry, pSrcGraphics, this, pSrcDev ); } +tools::Rectangle OutputDevice::SetBackgroundComponentBounds() +{ + return tools::Rectangle( Point( 0, 0 ), GetOutputSizePixel() ); +} + // Layout public functions void OutputDevice::EnableRTL( bool bEnable ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits