diff options
-rw-r--r-- | include/vcl/print.hxx | 3 | ||||
-rw-r--r-- | vcl/osx/salprn.cxx | 2 | ||||
-rw-r--r-- | vcl/source/gdi/print.cxx | 58 | ||||
-rw-r--r-- | vcl/source/gdi/print3.cxx | 16 | ||||
-rw-r--r-- | vcl/unx/generic/print/genprnpsp.cxx | 2 |
5 files changed, 15 insertions, 66 deletions
diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx index e0e63be2a108..eed2722f824f 100644 --- a/include/vcl/print.hxx +++ b/include/vcl/print.hxx @@ -176,7 +176,7 @@ private: ImplGetQueueInfo( const OUString& rPrinterName, const OUString* pDriver ); VCL_DLLPRIVATE void ImplUpdatePageData(); VCL_DLLPRIVATE void ImplUpdateFontList(); - VCL_DLLPRIVATE void ImplFindPaperFormatForUserSize( JobSetup&, bool bMatchNearest ); + VCL_DLLPRIVATE void ImplFindPaperFormatForUserSize( JobSetup& ); VCL_DLLPRIVATE bool StartJob( const OUString& rJobName, std::shared_ptr<vcl::PrinterController> const & ); @@ -293,7 +293,6 @@ public: sal_uInt16 GetPaperBin() const; void SetPaper( Paper ePaper ); bool SetPaperSizeUser( const Size& rSize ); - bool SetPaperSizeUser( const Size& rSize, bool bMatchNearest ); Paper GetPaper() const; static OUString GetPaperName( Paper ePaper ); diff --git a/vcl/osx/salprn.cxx b/vcl/osx/salprn.cxx index bb35f74a5343..c0d05fde9fb5 100644 --- a/vcl/osx/salprn.cxx +++ b/vcl/osx/salprn.cxx @@ -448,7 +448,7 @@ bool AquaSalInfoPrinter::StartJob( const OUString* i_pFileName, // platform independent paper matching algorithm VclPtr<Printer> pPrinter( i_rController.getPrinter() ); pPrinter->SetMapMode( MapMode( MapUnit::Map100thMM ) ); - pPrinter->SetPaperSizeUser( aCurSize, true ); + pPrinter->SetPaperSizeUser( aCurSize ); // create view NSView* pPrintView = [[AquaPrintView alloc] initWithController: &i_rController withInfoPrinter: this]; diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx index 6668d215d29b..6bdf36bc1d4d 100644 --- a/vcl/source/gdi/print.cxx +++ b/vcl/source/gdi/print.cxx @@ -1225,16 +1225,13 @@ void Printer::SetPrinterSettingsPreferred( bool bPaperSizeFromSetup) } // Map user paper format to an available printer paper format -void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNearest ) +void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup ) { ImplJobSetup& rData = aJobSetup.ImplGetData(); // The angle that a landscape page will be turned counterclockwise wrt to portrait. int nLandscapeAngle = mpInfoPrinter ? mpInfoPrinter->GetLandscapeAngle( &maJobSetup.ImplGetConstData() ) : 900; - int nPaperCount = GetPaperInfoCount(); - bool bFound = false; - PaperInfo aInfo(rData.GetPaperWidth(), rData.GetPaperHeight()); // Compare all paper formats and get the appropriate one @@ -1248,8 +1245,7 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe ImplGetPaperFormat( rPaperInfo.getWidth(), rPaperInfo.getHeight() )); rData.SetOrientation( Orientation::Portrait ); - bFound = true; - break; + return; } } @@ -1274,49 +1270,10 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup, bool bMatchNe ImplGetPaperFormat( rPaperInfo.getWidth(), rPaperInfo.getHeight() )); rData.SetOrientation( Orientation::Landscape ); - bFound = true; - break; + return; } } } - - if( ! bFound && bMatchNearest ) - { - sal_Int64 nBestMatch = SAL_MAX_INT64; - int nBestIndex = 0; - Orientation eBestOrientation = Orientation::Portrait; - for( int i = 0; i < nPaperCount; i++ ) - { - const PaperInfo& rPaperInfo = GetPaperInfo( i ); - - // check portrait match - sal_Int64 nDX = rData.GetPaperWidth() - rPaperInfo.getWidth(); - sal_Int64 nDY = rData.GetPaperHeight() - rPaperInfo.getHeight(); - sal_Int64 nMatch = nDX*nDX + nDY*nDY; - if( nMatch < nBestMatch ) - { - nBestMatch = nMatch; - nBestIndex = i; - eBestOrientation = Orientation::Portrait; - } - - // check landscape match - nDX = rData.GetPaperWidth() - rPaperInfo.getHeight(); - nDY = rData.GetPaperHeight() - rPaperInfo.getWidth(); - nMatch = nDX*nDX + nDY*nDY; - if( nMatch < nBestMatch ) - { - nBestMatch = nMatch; - nBestIndex = i; - eBestOrientation = Orientation::Landscape; - } - } - const PaperInfo& rBestInfo = GetPaperInfo( nBestIndex ); - rData.SetPaperFormat( - ImplGetPaperFormat( rBestInfo.getWidth(), - rBestInfo.getHeight() )); - rData.SetOrientation(eBestOrientation); - } } void Printer::SetPaper( Paper ePaper ) @@ -1346,7 +1303,7 @@ void Printer::SetPaper( Paper ePaper ) ReleaseGraphics(); if ( ePaper == PAPER_USER ) - ImplFindPaperFormatForUserSize( aJobSetup, false ); + ImplFindPaperFormatForUserSize( aJobSetup ); if ( mpInfoPrinter->SetData( JobSetFlags::PAPERSIZE | JobSetFlags::ORIENTATION, &rData )) { ImplUpdateJobSetupPaper( aJobSetup ); @@ -1360,11 +1317,6 @@ void Printer::SetPaper( Paper ePaper ) bool Printer::SetPaperSizeUser( const Size& rSize ) { - return SetPaperSizeUser( rSize, false ); -} - -bool Printer::SetPaperSizeUser( const Size& rSize, bool bMatchNearest ) -{ if ( mbInPrintPage ) return false; @@ -1402,7 +1354,7 @@ bool Printer::SetPaperSizeUser( const Size& rSize, bool bMatchNearest ) } ReleaseGraphics(); - ImplFindPaperFormatForUserSize( aJobSetup, bMatchNearest ); + ImplFindPaperFormatForUserSize( aJobSetup ); // Changing the paper size can also change the orientation! if ( mpInfoPrinter->SetData( JobSetFlags::PAPERSIZE | JobSetFlags::ORIENTATION, &rData )) diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx index cb326ae9d31a..cbf486713330 100644 --- a/vcl/source/gdi/print3.cxx +++ b/vcl/source/gdi/print3.cxx @@ -218,8 +218,6 @@ public: return maMultiPage.aPaperSize; return i_rPageSize; } - bool isFixedPageSize() const - { return mbPapersizeFromSetup; } PrinterController::PageSize modifyJobSetup( const css::uno::Sequence< css::beans::PropertyValue >& i_rProps ); void resetPaperToLastConfigured(); }; @@ -812,7 +810,7 @@ void PrinterController::setPrinter( const VclPtr<Printer>& i_rPrinter ) if ( bSavedSizeOrientation ) { - mpImplData->mxPrinter->SetPaperSizeUser(aPaperSize, !mpImplData->isFixedPageSize()); + mpImplData->mxPrinter->SetPaperSizeUser(aPaperSize); mpImplData->mxPrinter->SetOrientation(eOrientation); } @@ -892,7 +890,7 @@ void PrinterController::setupPrinter( weld::Window* i_pParent ) //restore to whatever it was before we entered this method xPrinter->SetOrientation( eOrientation ); if (aPaperSize != aNewPaperSize) - xPrinter->SetPaperSizeUser(aPaperSize, !mpImplData->isFixedPageSize()); + xPrinter->SetPaperSizeUser(aPaperSize); } xPrinter->Pop(); } @@ -945,7 +943,7 @@ PrinterController::PageSize vcl::ImplPrinterControllerData::modifyJobSetup( cons Size aRealPaperSize( getRealPaperSize( aPageSize.aSize, true/*bNoNUP*/ ) ); if( aRealPaperSize != aCurSize ) - mxPrinter->SetPaperSizeUser( aRealPaperSize, ! isFixedPageSize() ); + mxPrinter->SetPaperSizeUser( aRealPaperSize ); } // paper bin set from properties in print dialog overrides @@ -974,7 +972,7 @@ void vcl::ImplPrinterControllerData::resetPaperToLastConfigured() mxPrinter->SetMapMode(MapMode(MapUnit::Map100thMM)); Size aCurSize(mxPrinter->GetPaperSize()); if (aCurSize != maDefaultPageSize) - mxPrinter->SetPaperSizeUser(maDefaultPageSize, !isFixedPageSize()); + mxPrinter->SetPaperSizeUser(maDefaultPageSize); mxPrinter->Pop(); } @@ -1121,7 +1119,7 @@ PrinterController::PageSize PrinterController::getFilteredPageFile( int i_nFilte } Size aPaperSize = mpImplData->getRealPaperSize( aPageSize.aSize, true ); mpImplData->mxPrinter->SetMapMode( MapMode( MapUnit::Map100thMM ) ); - mpImplData->mxPrinter->SetPaperSizeUser( aPaperSize, ! mpImplData->isFixedPageSize() ); + mpImplData->mxPrinter->SetPaperSizeUser( aPaperSize ); if( aPaperSize != aPageSize.aSize ) { // user overridden page size, center Metafile @@ -1231,7 +1229,7 @@ PrinterController::PageSize PrinterController::getFilteredPageFile( int i_nFilte // subsequent getPageFile calls have changed the paper, reset it to current value mpImplData->mxPrinter->SetMapMode( MapMode( MapUnit::Map100thMM ) ); - mpImplData->mxPrinter->SetPaperSizeUser( aPaperSize, ! mpImplData->isFixedPageSize() ); + mpImplData->mxPrinter->SetPaperSizeUser( aPaperSize ); return PrinterController::PageSize( aPaperSize, true ); } @@ -1327,7 +1325,7 @@ void PrinterController::printFilteredPage( int i_nPage ) // in N-Up printing set the correct page size mpImplData->mxPrinter->SetMapMode(MapMode(MapUnit::Map100thMM)); // aPageSize was filtered through mpImplData->getRealPaperSize already by getFilteredPageFile() - mpImplData->mxPrinter->SetPaperSizeUser( aPageSize.aSize, ! mpImplData->isFixedPageSize() ); + mpImplData->mxPrinter->SetPaperSizeUser( aPageSize.aSize ); if( mpImplData->mnFixedPaperBin != -1 && mpImplData->mxPrinter->GetPaperBin() != mpImplData->mnFixedPaperBin ) { diff --git a/vcl/unx/generic/print/genprnpsp.cxx b/vcl/unx/generic/print/genprnpsp.cxx index 788a196209fd..5cfb5dcb7e11 100644 --- a/vcl/unx/generic/print/genprnpsp.cxx +++ b/vcl/unx/generic/print/genprnpsp.cxx @@ -1032,7 +1032,7 @@ bool PspSalPrinter::StartJob( const OUString* i_pFileName, const OUString& i_rJo else { xPrinter->SetMapMode( MapMode( MapUnit::Map100thMM ) ); - xPrinter->SetPaperSizeUser( aPageSize.aSize, true ); + xPrinter->SetPaperSizeUser( aPageSize.aSize ); PDFNewJobParameters aNewParm(xPrinter->GetPaperSize(), xPrinter->GetPaperBin()); // create PDF writer on demand |