diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2017-03-30 22:41:44 +1100 |
---|---|---|
committer | Chris Sherlock <chris.sherlock79@gmail.com> | 2017-04-02 15:26:53 +1000 |
commit | d5d67b92282d9b4b28099671d439854981760911 (patch) | |
tree | 88633d7f032bb833f814250d623b650144bbc52b | |
parent | 8c5afcc47eb5ea4f2db4a7fa2482b20f9c2c1250 (diff) |
vcl: merge PrinterInfo into JobData
Change-Id: I9c75557ca992c295d224d8912b6bb250679f7893
-rw-r--r-- | include/vcl/jobdata.hxx | 18 | ||||
-rw-r--r-- | include/vcl/printerinfomanager.hxx | 43 | ||||
-rw-r--r-- | vcl/headless/svpprn.cxx | 6 | ||||
-rw-r--r-- | vcl/null/printerinfomanager.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/generic/print/common_gfx.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/generic/print/genprnpsp.cxx | 12 | ||||
-rw-r--r-- | vcl/unx/generic/print/prtsetup.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/generic/print/prtsetup.hxx | 8 | ||||
-rw-r--r-- | vcl/unx/generic/printer/cupsmgr.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/generic/printer/jobdata.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/generic/printer/printerinfomanager.cxx | 14 |
11 files changed, 58 insertions, 65 deletions
diff --git a/include/vcl/jobdata.hxx b/include/vcl/jobdata.hxx index 311351894a94..7b7f6ccac8a0 100644 --- a/include/vcl/jobdata.hxx +++ b/include/vcl/jobdata.hxx @@ -47,6 +47,21 @@ struct VCL_DLLPUBLIC JobData const PPDParser* m_pParser; PPDContext m_aContext; + // basename of PPD + OUString m_aDriverName; + // can be the queue + OUString m_aLocation; + // a user defined comment + OUString m_aComment; + // a command line to pipe a PS-file to + OUString m_aCommand; + // a command line to pipe a PS-file to in case of direct print + OUString m_aQuickCommand; + // a list of special features separated by ',' not used by psprint + // but assigned from the outside (currently for "fax","pdf=","autoqueue","external_dialog") + OUString m_aFeatures; + bool m_bPapersizeFromSetup; + JobData() : m_nCopies( 1 ), m_bCollate(false), @@ -59,7 +74,8 @@ struct VCL_DLLPUBLIC JobData m_nColorDevice( 0 ), m_nPDFDevice( 0 ), m_eOrientation( orientation::Portrait ), - m_pParser( nullptr ) {} + m_pParser( nullptr ), + m_bPapersizeFromSetup(false) {} JobData& operator=(const psp::JobData& rRight); diff --git a/include/vcl/printerinfomanager.hxx b/include/vcl/printerinfomanager.hxx index f80633945b23..738bba14f17d 100644 --- a/include/vcl/printerinfomanager.hxx +++ b/include/vcl/printerinfomanager.hxx @@ -35,29 +35,6 @@ namespace psp class SystemQueueInfo; -struct PrinterInfo : JobData -{ - // basename of PPD - OUString m_aDriverName; - // can be the queue - OUString m_aLocation; - // a user defined comment - OUString m_aComment; - // a command line to pipe a PS-file to - OUString m_aCommand; - // a command line to pipe a PS-file to in case of direct print - OUString m_aQuickCommand; - // a list of special features separated by ',' not used by psprint - // but assigned from the outside (currently for "fax","pdf=","autoqueue","external_dialog") - OUString m_aFeatures; - bool m_bPapersizeFromSetup; - - PrinterInfo() - : JobData() - , m_bPapersizeFromSetup(false) - {} -}; - class VCL_DLLPUBLIC PrinterInfoManager { public: @@ -75,7 +52,7 @@ protected: struct WatchFile { // the file in question - OUString m_aFilePath; + OUString m_aFilePath; // the last know modification time or 0, if file did not exist TimeValue m_aModified; }; @@ -85,25 +62,25 @@ protected: { // configuration file containing this printer // empty means a freshly added printer that has to be saved yet - OUString m_aFile; + OUString m_aFile; // details other config files that have this printer // in case of removal all have to be removed - std::list< OUString > m_aAlternateFiles; + std::list< OUString > m_aAlternateFiles; // group in m_aFile containing the printer // this must be unique over all configuration files // it usually should be the printer name - OString m_aGroup; + OString m_aGroup; // whether changes need to be saved bool m_bModified; // the corresponding info and job data - PrinterInfo m_aInfo; + JobData m_aInfo; }; std::unordered_map< OUString, Printer, OUStringHash > m_aPrinters; - PrinterInfo m_aGlobalDefaults; + JobData m_aGlobalDefaults; std::list< WatchFile > m_aWatchFiles; - OUString m_aDefaultPrinter; - OUString m_aSystemPrintCommand; + OUString m_aDefaultPrinter; + OUString m_aSystemPrintCommand; std::list< SystemPrintQueue > m_aSystemPrintQueues; @@ -113,7 +90,7 @@ protected: Type m_eType; bool m_bUseIncludeFeature; bool m_bUseJobPatch; - OUString m_aSystemDefaultPaper; + OUString m_aSystemDefaultPaper; PrinterInfoManager( Type eType = Type::Default ); @@ -138,7 +115,7 @@ public: void listPrinters( std::list< OUString >& rList ) const; // gets info about a named printer - const PrinterInfo& getPrinterInfo( const OUString& rPrinter ) const; + const JobData& getPrinterInfo( const OUString& rPrinter ) const; // gets the name of the default printer const OUString& getDefaultPrinter() const { return m_aDefaultPrinter; } diff --git a/vcl/headless/svpprn.cxx b/vcl/headless/svpprn.cxx index dfef1239dc0f..b158fc632103 100644 --- a/vcl/headless/svpprn.cxx +++ b/vcl/headless/svpprn.cxx @@ -37,7 +37,7 @@ using namespace psp; * static helpers */ -static OUString getPdfDir( const PrinterInfo& rInfo ) +static OUString getPdfDir( const JobData& rInfo ) { OUString aDir; sal_Int32 nIndex = 0; @@ -166,7 +166,7 @@ SalInfoPrinter* SvpSalInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueIn if( pJobSetup ) { PrinterInfoManager& rManager( PrinterInfoManager::get() ); - PrinterInfo aInfo( rManager.getPrinterInfo( pQueueInfo->maPrinterName ) ); + JobData aInfo( rManager.getPrinterInfo( pQueueInfo->maPrinterName ) ); pPrinter->m_aJobData = aInfo; pPrinter->m_aPrinterGfx.Init( pPrinter->m_aJobData ); @@ -216,7 +216,7 @@ void SvpSalInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList ) for( ::std::list< OUString >::iterator it = aPrinters.begin(); it != aPrinters.end(); ++it ) { - const PrinterInfo& rInfo( rManager.getPrinterInfo( *it ) ); + const JobData& rInfo( rManager.getPrinterInfo( *it ) ); // Neuen Eintrag anlegen SalPrinterQueueInfo* pInfo = new SalPrinterQueueInfo; pInfo->maPrinterName = *it; diff --git a/vcl/null/printerinfomanager.cxx b/vcl/null/printerinfomanager.cxx index a5cd3b438cf2..39571144c47d 100644 --- a/vcl/null/printerinfomanager.cxx +++ b/vcl/null/printerinfomanager.cxx @@ -80,9 +80,9 @@ void PrinterInfoManager::listPrinters( ::std::list< OUString >& rList ) const rList.clear(); } -const PrinterInfo& PrinterInfoManager::getPrinterInfo( const OUString& /* rPrinter */ ) const +const JobData& PrinterInfoManager::getPrinterInfo( const OUString& /* rPrinter */ ) const { - static PrinterInfo aEmptyInfo; + static JobData aEmptyInfo; (void) this; diff --git a/vcl/unx/generic/print/common_gfx.cxx b/vcl/unx/generic/print/common_gfx.cxx index 1d9a1ca9b659..d9801a155207 100644 --- a/vcl/unx/generic/print/common_gfx.cxx +++ b/vcl/unx/generic/print/common_gfx.cxx @@ -63,7 +63,7 @@ PrinterGfx::Init (PrinterJob &rPrinterJob) mnDpi = rPrinterJob.GetResolution(); rPrinterJob.GetScale (mfScaleX, mfScaleY); - const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( rPrinterJob.GetPrinterName() ) ); + const JobData& rInfo( PrinterInfoManager::get().getPrinterInfo( rPrinterJob.GetPrinterName() ) ); mbUploadPS42Fonts = rInfo.m_pParser && rInfo.m_pParser->isType42Capable(); } @@ -79,7 +79,7 @@ PrinterGfx::Init (const JobData& rData) mnDpi = nRes; mfScaleX = (double)72.0 / (double)mnDpi; mfScaleY = (double)72.0 / (double)mnDpi; - const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( rData.m_aPrinterName ) ); + const JobData& rInfo( PrinterInfoManager::get().getPrinterInfo( rData.m_aPrinterName ) ); mbUploadPS42Fonts = rInfo.m_pParser && rInfo.m_pParser->isType42Capable(); } diff --git a/vcl/unx/generic/print/genprnpsp.cxx b/vcl/unx/generic/print/genprnpsp.cxx index 43948c8da01e..c0d6f0a35823 100644 --- a/vcl/unx/generic/print/genprnpsp.cxx +++ b/vcl/unx/generic/print/genprnpsp.cxx @@ -66,7 +66,7 @@ using namespace com::sun::star; /* * static helpers */ -static OUString getPdfDir( const PrinterInfo& rInfo ) +static OUString getPdfDir( const JobData& rInfo ) { OUString aDir; sal_Int32 nIndex = 0; @@ -371,7 +371,7 @@ void SalGenericInstance::configurePspInfoPrinter(PspSalInfoPrinter *pPrinter, if( pJobSetup ) { PrinterInfoManager& rManager( PrinterInfoManager::get() ); - PrinterInfo aInfo( rManager.getPrinterInfo( pQueueInfo->maPrinterName ) ); + JobData aInfo( rManager.getPrinterInfo( pQueueInfo->maPrinterName ) ); pPrinter->m_aJobData = aInfo; pPrinter->m_aPrinterGfx.Init( pPrinter->m_aJobData ); @@ -431,7 +431,7 @@ void SalGenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList ) for( ::std::list< OUString >::iterator it = aPrinters.begin(); it != aPrinters.end(); ++it ) { - const PrinterInfo& rInfo( rManager.getPrinterInfo( *it ) ); + const JobData& rInfo( rManager.getPrinterInfo( *it ) ); // Neuen Eintrag anlegen SalPrinterQueueInfo* pInfo = new SalPrinterQueueInfo; pInfo->maPrinterName = *it; @@ -547,7 +547,7 @@ bool PspSalInfoPrinter::Setup( SalFrame* pFrame, ImplJobSetup* pJobSetup ) PrinterInfoManager& rManager = PrinterInfoManager::get(); - PrinterInfo aInfo( rManager.getPrinterInfo( pJobSetup->GetPrinterName() ) ); + JobData aInfo( rManager.getPrinterInfo( pJobSetup->GetPrinterName() ) ); if ( pJobSetup->GetDriverData() ) { SetData( JobSetFlags::ALL, pJobSetup ); @@ -892,7 +892,7 @@ bool PspSalPrinter::StartJob( int nMode = 0; // check whether this printer is configured as fax sal_Int32 nIndex = 0; - const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) ); + const JobData& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) ); while( nIndex != -1 ) { OUString aToken( rInfo.m_aFeatures.getToken( 0, ',', nIndex ) ); @@ -930,7 +930,7 @@ bool PspSalPrinter::EndJob() if( bSuccess && m_bPdf ) { - const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) ); + const JobData& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) ); bSuccess = createPdf( m_aFileName, m_aTmpFile, rInfo.m_aCommand ); } } diff --git a/vcl/unx/generic/print/prtsetup.cxx b/vcl/unx/generic/print/prtsetup.cxx index 02684af1e765..0462187c0c65 100644 --- a/vcl/unx/generic/print/prtsetup.cxx +++ b/vcl/unx/generic/print/prtsetup.cxx @@ -71,7 +71,7 @@ void RTSDialog::insertAllPPDValues( ListBox& rBox, const PPDParser* pParser, con * RTSDialog */ -RTSDialog::RTSDialog(const PrinterInfo& rJobData, vcl::Window* pParent) +RTSDialog::RTSDialog(const JobData& rJobData, vcl::Window* pParent) : TabDialog(pParent, "PrinterPropertiesDialog", "vcl/ui/printerpropertiesdialog.ui") , m_aJobData(rJobData) , m_pPaperPage(nullptr) @@ -511,7 +511,7 @@ void RTSDevicePage::FillValueBox( const PPDKey* pKey ) } } -int SetupPrinterDriver(::psp::PrinterInfo& rJobData) +int SetupPrinterDriver(::psp::JobData& rJobData) { int nRet = 0; ScopedVclPtrInstance< RTSDialog > aDialog( rJobData, nullptr ); diff --git a/vcl/unx/generic/print/prtsetup.hxx b/vcl/unx/generic/print/prtsetup.hxx index fa22a4417ab3..d68f77f2b1d5 100644 --- a/vcl/unx/generic/print/prtsetup.hxx +++ b/vcl/unx/generic/print/prtsetup.hxx @@ -42,7 +42,7 @@ class RTSDialog : public TabDialog friend class RTSPaperPage; friend class RTSDevicePage; - ::psp::PrinterInfo m_aJobData; + ::psp::JobData m_aJobData; // controls VclPtr<TabControl> m_pTabControl; @@ -64,11 +64,11 @@ class RTSDialog : public TabDialog // helper functions void insertAllPPDValues( ListBox&, const psp::PPDParser*, const psp::PPDKey* ); public: - RTSDialog(const ::psp::PrinterInfo& rJobData, vcl::Window* pParent); + RTSDialog(const ::psp::JobData& rJobData, vcl::Window* pParent); virtual ~RTSDialog() override; virtual void dispose() override; - const ::psp::PrinterInfo& getSetup() const { return m_aJobData; } + const ::psp::JobData& getSetup() const { return m_aJobData; } void SetDataModified( bool bModified ) { mbDataModified = bModified; } bool GetDataModified() const { return mbDataModified; } @@ -128,7 +128,7 @@ public: sal_uLong getColorDevice(); }; -int SetupPrinterDriver(::psp::PrinterInfo& rJobData); +int SetupPrinterDriver(::psp::JobData& rJobData); #endif // _PAD_PRTSETUP_HXX diff --git a/vcl/unx/generic/printer/cupsmgr.cxx b/vcl/unx/generic/printer/cupsmgr.cxx index 30445b5bb676..9df3d3a7ee43 100644 --- a/vcl/unx/generic/printer/cupsmgr.cxx +++ b/vcl/unx/generic/printer/cupsmgr.cxx @@ -331,7 +331,7 @@ void CUPSManager::initialize() OUStringBuffer aBuf( 256 ); aBuf.append( "CUPS:" ); aBuf.append( aPrinterName ); - // note: the parser that goes with the PrinterInfo + // note: the parser that goes with the JobData // is created implicitly by the JobData::operator=() // when it detects the NULL ptr m_pParser. // if we wanted to fill in the parser here this @@ -459,7 +459,7 @@ const PPDParser* CUPSManager::createCUPSParser( const OUString& rPrinter ) SAL_INFO("vcl.unx.print", " \"" << pDest->options[k].name << "\" = \"" << pDest->options[k].value << "\""); - PrinterInfo& rInfo = m_aPrinters[ aPrinter ].m_aInfo; + JobData& rInfo = m_aPrinters[ aPrinter ].m_aInfo; // remember the default context for later use PPDContext& rContext = m_aDefaultContexts[ aPrinter ]; @@ -498,7 +498,7 @@ const PPDParser* CUPSManager::createCUPSParser( const OUString& rPrinter ) // get the default PPD pNewParser = PPDParser::getParser( "SGENPRT" ); - PrinterInfo& rInfo = m_aPrinters[ aPrinter ].m_aInfo; + JobData& rInfo = m_aPrinters[ aPrinter ].m_aInfo; rInfo.m_pParser = pNewParser; rInfo.m_aContext.setParser( pNewParser ); @@ -797,7 +797,7 @@ bool CUPSManager::writePrinterConfig() { bDestModified = true; cups_dest_t* pDest = static_cast<cups_dest_t*>(m_pDests) + nit->second; - PrinterInfo& rInfo = prt->second.m_aInfo; + JobData& rInfo = prt->second.m_aInfo; // create new option list int nNewOptions = 0; diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx index b9359429fd8a..920e430f6376 100644 --- a/vcl/unx/generic/printer/jobdata.cxx +++ b/vcl/unx/generic/printer/jobdata.cxx @@ -269,7 +269,7 @@ bool JobData::constructFromStreamBuffer( const void* pData, sal_uInt32 bytes, Jo if( bPrinter ) { PrinterInfoManager& rManager = PrinterInfoManager::get(); - const PrinterInfo& rInfo = rManager.getPrinterInfo( rJobData.m_aPrinterName ); + const JobData& rInfo = rManager.getPrinterInfo( rJobData.m_aPrinterName ); rJobData.m_pParser = PPDParser::getParser( rInfo.m_aDriverName ); if( rJobData.m_pParser ) { diff --git a/vcl/unx/generic/printer/printerinfomanager.cxx b/vcl/unx/generic/printer/printerinfomanager.cxx index e69323eea817..158f90af4033 100644 --- a/vcl/unx/generic/printer/printerinfomanager.cxx +++ b/vcl/unx/generic/printer/printerinfomanager.cxx @@ -186,7 +186,7 @@ void PrinterInfoManager::initialize() // have to iterate over all possible files // there should be only one global setup section in all // available config files - m_aGlobalDefaults = PrinterInfo(); + m_aGlobalDefaults = JobData(); // need a parser for the PPDContext. generic printer should do. m_aGlobalDefaults.m_pParser = PPDParser::getParser( "SGENPRT" ); @@ -483,13 +483,13 @@ void PrinterInfoManager::initialize() // add a default printer for every available print queue // merge paper default printer, all else from global defaults - PrinterInfo aMergeInfo( m_aGlobalDefaults ); + JobData aMergeInfo( m_aGlobalDefaults ); aMergeInfo.m_aDriverName = "SGENPRT"; aMergeInfo.m_aFeatures = "autoqueue"; if( !m_aDefaultPrinter.isEmpty() ) { - PrinterInfo aDefaultInfo( getPrinterInfo( m_aDefaultPrinter ) ); + JobData aDefaultInfo( getPrinterInfo( m_aDefaultPrinter ) ); const PPDKey* pDefKey = aDefaultInfo.m_pParser->getKey( OUString( "PageSize" ) ); const PPDKey* pMergeKey = aMergeInfo.m_pParser->getKey( OUString( "PageSize" ) ); @@ -541,9 +541,9 @@ void PrinterInfoManager::listPrinters( ::std::list< OUString >& rList ) const rList.push_back( it->first ); } -const PrinterInfo& PrinterInfoManager::getPrinterInfo( const OUString& rPrinter ) const +const JobData& PrinterInfoManager::getPrinterInfo( const OUString& rPrinter ) const { - static PrinterInfo aEmptyInfo; + static JobData aEmptyInfo; std::unordered_map< OUString, Printer, OUStringHash >::const_iterator it = m_aPrinters.find( rPrinter ); SAL_WARN_IF( it == m_aPrinters.end(), "vcl", "Do not ask for info about nonexistent printers" ); @@ -822,7 +822,7 @@ bool PrinterInfoManager::setDefaultPrinter( const OUString& rPrinterName ) bool PrinterInfoManager::checkFeatureToken( const OUString& rPrinterName, const char* pToken ) const { - const PrinterInfo& rPrinterInfo( getPrinterInfo( rPrinterName ) ); + const JobData& rPrinterInfo( getPrinterInfo( rPrinterName ) ); sal_Int32 nIndex = 0; while( nIndex != -1 ) { @@ -837,7 +837,7 @@ bool PrinterInfoManager::checkFeatureToken( const OUString& rPrinterName, const FILE* PrinterInfoManager::startSpool( const OUString& rPrintername, bool bQuickCommand ) { - const PrinterInfo& rPrinterInfo = getPrinterInfo (rPrintername); + const JobData& rPrinterInfo = getPrinterInfo (rPrintername); const OUString& rCommand = (bQuickCommand && !rPrinterInfo.m_aQuickCommand.isEmpty() ) ? rPrinterInfo.m_aQuickCommand : rPrinterInfo.m_aCommand; OString aShellCommand = OUStringToOString (rCommand, RTL_TEXTENCODING_ISO_8859_1); |