From 41d213e96d4bad0997dc64147f70c6c0142ce8dd Mon Sep 17 00:00:00 2001 From: Katarina Behrens Date: Wed, 5 Sep 2018 15:39:16 +0200 Subject: Use generic unx PspSalInfoPrinter instead of Qt5InfoPrinter the latter provides (so far) no added value, quite the contrary: File > Print > $printer > Properties didn't display generic unx/CUPS dlg but just failed silently Change-Id: Ide2ad175ffe55b5c9ac5ca3efad4a43b692f9984 Reviewed-on: https://gerrit.libreoffice.org/60040 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- vcl/inc/qt5/Qt5Printer.hxx | 7 --- vcl/qt5/Qt5Instance_Print.cxx | 124 +----------------------------------------- vcl/qt5/Qt5Printer.cxx | 2 - 3 files changed, 3 insertions(+), 130 deletions(-) diff --git a/vcl/inc/qt5/Qt5Printer.hxx b/vcl/inc/qt5/Qt5Printer.hxx index aad9e3566ce5..81a38206e4f1 100644 --- a/vcl/inc/qt5/Qt5Printer.hxx +++ b/vcl/inc/qt5/Qt5Printer.hxx @@ -22,13 +22,6 @@ #include class SalFrame; -class ImplJobSetup; - -class Qt5InfoPrinter : public PspSalInfoPrinter -{ -public: - virtual bool Setup(weld::Window* pFrame, ImplJobSetup* pSetupData) override; -}; class Qt5Printer : public PspSalPrinter { diff --git a/vcl/qt5/Qt5Instance_Print.cxx b/vcl/qt5/Qt5Instance_Print.cxx index 6430c006c1e3..dd095f533c1a 100644 --- a/vcl/qt5/Qt5Instance_Print.cxx +++ b/vcl/qt5/Qt5Instance_Print.cxx @@ -56,130 +56,12 @@ static OUString getPdfDir(const PrinterInfo& rInfo) return aDir; } -inline int PtTo10Mu(int nPoints) -{ - return static_cast((static_cast(nPoints) * 35.27777778) + 0.5); -} - -static void copyJobDataToJobSetup(ImplJobSetup* pJobSetup, JobData& rData) -{ - pJobSetup->SetOrientation(rData.m_eOrientation == orientation::Landscape - ? Orientation::Landscape - : Orientation::Portrait); - - // copy page size - OUString aPaper; - int width, height; - - rData.m_aContext.getPageSize(aPaper, width, height); - pJobSetup->SetPaperFormat( - PaperInfo::fromPSName(OUStringToOString(aPaper, RTL_TEXTENCODING_ISO_8859_1))); - pJobSetup->SetPaperWidth(0); - pJobSetup->SetPaperHeight(0); - if (pJobSetup->GetPaperFormat() == PAPER_USER) - { - // transform to 100dth mm - width = PtTo10Mu(width); - height = PtTo10Mu(height); - - if (rData.m_eOrientation == psp::orientation::Portrait) - { - pJobSetup->SetPaperWidth(width); - pJobSetup->SetPaperHeight(height); - } - else - { - pJobSetup->SetPaperWidth(height); - pJobSetup->SetPaperHeight(width); - } - } - - // copy input slot - const PPDKey* pKey = nullptr; - const PPDValue* pValue = nullptr; - - pJobSetup->SetPaperBin(0xffff); - if (rData.m_pParser) - pKey = rData.m_pParser->getKey(OUString("InputSlot")); - if (pKey) - pValue = rData.m_aContext.getValue(pKey); - if (pKey && pValue) - { - int nPaperBin; - for (nPaperBin = 0; pValue != pKey->getValue(nPaperBin) && nPaperBin < pKey->countValues(); - nPaperBin++) - ; - pJobSetup->SetPaperBin( - (nPaperBin == pKey->countValues() || pValue == pKey->getDefaultValue()) ? 0xffff - : nPaperBin); - } - - // copy duplex - pKey = nullptr; - pValue = nullptr; - - pJobSetup->SetDuplexMode(DuplexMode::Unknown); - if (rData.m_pParser) - pKey = rData.m_pParser->getKey(OUString("Duplex")); - if (pKey) - pValue = rData.m_aContext.getValue(pKey); - if (pKey && pValue) - { - if (pValue->m_aOption.equalsIgnoreAsciiCase("None") - || pValue->m_aOption.startsWithIgnoreAsciiCase("Simplex")) - { - pJobSetup->SetDuplexMode(DuplexMode::Off); - } - else if (pValue->m_aOption.equalsIgnoreAsciiCase("DuplexNoTumble")) - { - pJobSetup->SetDuplexMode(DuplexMode::LongEdge); - } - else if (pValue->m_aOption.equalsIgnoreAsciiCase("DuplexTumble")) - { - pJobSetup->SetDuplexMode(DuplexMode::ShortEdge); - } - } - - // copy the whole context - if (pJobSetup->GetDriverData()) - std::free(const_cast(pJobSetup->GetDriverData())); - - sal_uInt32 nBytes; - void* pBuffer = nullptr; - if (rData.getStreamBuffer(pBuffer, nBytes)) - { - pJobSetup->SetDriverDataLen(nBytes); - pJobSetup->SetDriverData(static_cast(pBuffer)); - } - else - { - pJobSetup->SetDriverDataLen(0); - pJobSetup->SetDriverData(nullptr); - } -} - SalInfoPrinter* Qt5Instance::CreateInfoPrinter(SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pJobSetup) { // create and initialize SalInfoPrinter - Qt5InfoPrinter* pPrinter = new Qt5InfoPrinter; - - if (pJobSetup) - { - PrinterInfoManager& rManager(PrinterInfoManager::get()); - PrinterInfo aInfo(rManager.getPrinterInfo(pQueueInfo->maPrinterName)); - pPrinter->m_aJobData = aInfo; - pPrinter->m_aPrinterGfx.Init(pPrinter->m_aJobData); - - if (pJobSetup->GetDriverData()) - JobData::constructFromStreamBuffer(pJobSetup->GetDriverData(), - pJobSetup->GetDriverDataLen(), aInfo); - - pJobSetup->SetSystem(JOBSETUP_SYSTEM_UNIX); - pJobSetup->SetPrinterName(pQueueInfo->maPrinterName); - pJobSetup->SetDriver(aInfo.m_aDriverName); - copyJobDataToJobSetup(pJobSetup, aInfo); - } + PspSalInfoPrinter* pPrinter = new PspSalInfoPrinter; + configurePspInfoPrinter(pPrinter, pQueueInfo, pJobSetup); return pPrinter; } @@ -190,7 +72,7 @@ std::unique_ptr Qt5Instance::CreatePrinter(SalInfoPrinter* pInfoPrin { // create and initialize SalPrinter Qt5Printer* pPrinter = new Qt5Printer(pInfoPrinter); - pPrinter->m_aJobData = static_cast(pInfoPrinter)->m_aJobData; + pPrinter->m_aJobData = static_cast(pInfoPrinter)->m_aJobData; return std::unique_ptr(pPrinter); } diff --git a/vcl/qt5/Qt5Printer.cxx b/vcl/qt5/Qt5Printer.cxx index a62cb925c592..16a6a1115073 100644 --- a/vcl/qt5/Qt5Printer.cxx +++ b/vcl/qt5/Qt5Printer.cxx @@ -19,8 +19,6 @@ #include -bool Qt5InfoPrinter::Setup(weld::Window*, ImplJobSetup*) { return false; } - Qt5Printer::Qt5Printer(SalInfoPrinter* pInfoPrinter) : PspSalPrinter(pInfoPrinter) { -- cgit v1.2.3