diff options
-rw-r--r-- | sw/inc/doc.hxx | 7 | ||||
-rw-r--r-- | sw/inc/printdata.hxx | 78 | ||||
-rw-r--r-- | sw/inc/unotxdoc.hxx | 4 | ||||
-rw-r--r-- | sw/source/core/doc/doc.cxx | 77 | ||||
-rw-r--r-- | sw/source/core/view/viewpg.cxx | 16 | ||||
-rw-r--r-- | sw/source/core/view/vprint.cxx | 95 | ||||
-rw-r--r-- | sw/source/ui/config/optpage.cxx | 22 | ||||
-rw-r--r-- | sw/source/ui/config/prtopt.cxx | 12 | ||||
-rw-r--r-- | sw/source/ui/dbui/dbmgr.cxx | 62 | ||||
-rw-r--r-- | sw/source/ui/inc/cfgitems.hxx | 8 | ||||
-rw-r--r-- | sw/source/ui/uiview/view.cxx | 2 | ||||
-rw-r--r-- | sw/source/ui/uiview/viewprt.cxx | 7 | ||||
-rw-r--r-- | sw/source/ui/uno/unotxdoc.cxx | 47 |
13 files changed, 253 insertions, 184 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 3f5ef569376b..52898ad0d1ad 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -218,6 +218,7 @@ class SwChartDataProvider; class SwChartLockController_Helper; class IGrammarContact; class SwPrintData; +class SwRenderData; class SwPageFrm; class SwViewOption; @@ -1339,11 +1340,11 @@ public: // get the set of printable pages for the XRenderable API by // evaluating the respective settings (see implementation) - void CalculatePagesForPrinting( /* out */ SwPrintUIOptions &rOptions, bool bIsPDFExport, + void CalculatePagesForPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, sal_Int32 nDocPageCount ); - void UpdatePagesForPrintingWithPostItData( /* out */ SwPrintUIOptions &rOptions, bool bIsPDFExport, + void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, sal_Int32 nDocPageCount ); - void CalculatePagePairsForProspectPrinting( /* out */ SwPrintUIOptions &rOptions, + void CalculatePagePairsForProspectPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions, sal_Int32 nDocPageCount ); sal_uInt16 GetPageCount() const; diff --git a/sw/inc/printdata.hxx b/sw/inc/printdata.hxx index e00ef66c977d..085121060c8e 100644 --- a/sw/inc/printdata.hxx +++ b/sw/inc/printdata.hxx @@ -50,10 +50,11 @@ class OutputDevice; //////////////////////////////////////////////////////////// -class SwPrintUIOptions : public vcl::PrinterOptionsHelper +// A class that stores temporary data that is needed for rendering the document. +// Usually this data is created when 'getRendererCount' is called and +// and it is used in the 'render' function of that same interface +class SwRenderData { - OutputDevice* m_pLast; - // pages valid for printing (according to the current settings) // and their respective start frames (see getRendererCount in unotxdoc.cxx) // This set of pages does NOT depend on the 'PageRange' that is used as a printing option! @@ -79,19 +80,10 @@ public: SwDoc * m_pPostItDoc; ViewShell * m_pPostItShell; - public: - SwPrintUIOptions( BOOL bWeb = FALSE ); - ~SwPrintUIOptions(); - - bool processPropertiesAndCheckFormat( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rNewProp ); + SwRenderData(); + ~SwRenderData(); - bool IsPrintLeftPages() const; - bool IsPrintRightPages() const; - bool IsPrintEmptyPages( bool bIsPDFExport ) const; - bool IsPrintTables() const; - bool IsPrintGraphics() const; - bool IsPrintDrawings() const; bool HasPostItData() const { return m_pPostItShell != 0 && m_pPostItDoc != 0 && m_pPostItShell != 0; } void CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev ); @@ -133,9 +125,32 @@ public: //////////////////////////////////////////////////////////// +class SwPrintUIOptions : public vcl::PrinterOptionsHelper +{ + OutputDevice* m_pLast; + +public: + SwPrintUIOptions( BOOL bWeb = FALSE ); + ~SwPrintUIOptions(); + + bool processPropertiesAndCheckFormat( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rNewProp ); + + bool IsPrintLeftPages() const; + bool IsPrintRightPages() const; + bool IsPrintEmptyPages( bool bIsPDFExport ) const; + bool IsPrintTables() const; + bool IsPrintGraphics() const; + bool IsPrintDrawings() const; +}; + + +//////////////////////////////////////////////////////////// + + class SwPrintData { - const SwPrintUIOptions * m_pPrintUIOptions; + const SwPrintUIOptions * m_pPrintUIOptions; // not owner + const SwRenderData * m_pRenderData; // not owner public: @@ -143,8 +158,8 @@ public: bPrintBlackFont, //#i81434# - printing of hidden text bPrintHiddenText, bPrintTextPlaceholder, - bPrintLeftPage, bPrintRightPage, bPrintReverse, bPrintProspect, - bPrintProspect_RTL, + bPrintLeftPages, bPrintRightPages, bPrintReverse, bPrintProspect, + bPrintProspectRTL, bPrintSingleJobs, bPaperFromSetup, // --> FME 2005-12-13 #b6354161# Print empty pages bPrintEmptyPages, @@ -159,13 +174,14 @@ public: SwPrintData() { m_pPrintUIOptions = NULL; + m_pRenderData = NULL; bPrintGraphic = bPrintTable = bPrintDraw = bPrintControl = - bPrintLeftPage = - bPrintRightPage = + bPrintLeftPages = + bPrintRightPages = bPrintPageBackground = bPrintEmptyPages = bUpdateFieldsInPrinting = sal_True; @@ -173,7 +189,7 @@ public: bPaperFromSetup = bPrintReverse = bPrintProspect = - bPrintProspect_RTL = + bPrintProspectRTL = bPrintSingleJobs = bModified = bPrintBlackFont = @@ -194,11 +210,11 @@ public: bPrintControl == rData.bPrintControl && bPrintPageBackground== rData.bPrintPageBackground&& bPrintBlackFont == rData.bPrintBlackFont && - bPrintLeftPage == rData.bPrintLeftPage && - bPrintRightPage == rData.bPrintRightPage && + bPrintLeftPages == rData.bPrintLeftPages && + bPrintRightPages == rData.bPrintRightPages && bPrintReverse == rData.bPrintReverse && bPrintProspect == rData.bPrintProspect && - bPrintProspect_RTL == rData.bPrintProspect_RTL && + bPrintProspectRTL == rData.bPrintProspectRTL && bPrintSingleJobs == rData.bPrintSingleJobs && bPaperFromSetup == rData.bPaperFromSetup && bPrintEmptyPages == rData.bPrintEmptyPages && @@ -209,22 +225,24 @@ public: bPrintTextPlaceholder == rData.bPrintTextPlaceholder; } - // Note: int the conntext where this class ist used the pointer should always be valid + // Note: in the context where this class ist used the pointers should always be valid // during the lifetime of this object const SwPrintUIOptions & GetPrintUIOptions() const { return *m_pPrintUIOptions; } - void SetPrintUIOptions( const SwPrintUIOptions *pOpt ) { m_pPrintUIOptions = pOpt; } + void SetPrintUIOptions( const SwPrintUIOptions *pOpt ) { m_pPrintUIOptions = pOpt; } + const SwRenderData & GetRenderData() const { return *m_pRenderData; } + void SetRenderData( const SwRenderData *pData ) { m_pRenderData = pData; } sal_Bool IsPrintGraphic() const { return bPrintGraphic; } sal_Bool IsPrintTable() const { return bPrintTable; } sal_Bool IsPrintDraw() const { return bPrintDraw; } sal_Bool IsPrintControl() const { return bPrintControl; } - sal_Bool IsPrintLeftPage() const { return bPrintLeftPage; } - sal_Bool IsPrintRightPage() const { return bPrintRightPage; } + sal_Bool IsPrintLeftPage() const { return bPrintLeftPages; } + sal_Bool IsPrintRightPage() const { return bPrintRightPages; } sal_Bool IsPrintReverse() const { return bPrintReverse; } sal_Bool IsPaperFromSetup() const { return bPaperFromSetup; } sal_Bool IsPrintEmptyPages() const{ return bPrintEmptyPages; } sal_Bool IsPrintProspect() const { return bPrintProspect; } - sal_Bool IsPrintProspect_RTL() const { return bPrintProspect_RTL; } + sal_Bool IsPrintProspectRTL() const { return bPrintProspectRTL; } sal_Bool IsPrintPageBackground() const { return bPrintPageBackground; } sal_Bool IsPrintBlackFont() const { return bPrintBlackFont;} sal_Bool IsPrintSingleJobs() const { return bPrintSingleJobs;} @@ -237,8 +255,8 @@ public: void SetPrintTable ( sal_Bool b ) { doSetModified(); bPrintTable = b;} void SetPrintDraw ( sal_Bool b ) { doSetModified(); bPrintDraw = b;} void SetPrintControl ( sal_Bool b ) { doSetModified(); bPrintControl = b; } - void SetPrintLeftPage ( sal_Bool b ) { doSetModified(); bPrintLeftPage = b;} - void SetPrintRightPage( sal_Bool b ) { doSetModified(); bPrintRightPage = b;} + void SetPrintLeftPage ( sal_Bool b ) { doSetModified(); bPrintLeftPages = b;} + void SetPrintRightPage( sal_Bool b ) { doSetModified(); bPrintRightPages = b;} void SetPrintReverse ( sal_Bool b ) { doSetModified(); bPrintReverse = b;} void SetPaperFromSetup( sal_Bool b ) { doSetModified(); bPaperFromSetup = b;} void SetPrintEmptyPages(sal_Bool b ) { doSetModified(); bPrintEmptyPages = b;} diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index 19b32df6c255..f2ec7fc21d01 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -127,6 +127,7 @@ class SwXDocumentPropertyHelper; class SfxViewFrame; class SwPrintUIOptions; class SwPrintData; +class SwRenderData; typedef UnoActionContext* UnoActionContextPtr; SV_DECL_PTRARR(ActionContextArr, UnoActionContextPtr, 4, 4) @@ -221,7 +222,8 @@ class SwXTextDocument : public SwXTextDocumentBaseClass, css::uno::Reference< css::uno::XInterface> xPropertyHelper; SwXDocumentPropertyHelper* pPropertyHelper; - SwPrintUIOptions* m_pPrintUIOptions; + SwPrintUIOptions * m_pPrintUIOptions; + SwRenderData * m_pRenderData; void GetBodyText(); void GetNumberFormatter(); diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 9a730106ea80..daefe8fef56f 100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -1136,7 +1136,8 @@ static void lcl_FormatPostIt( void SwDoc::CalculatePagesForPrinting( - /* out */ SwPrintUIOptions &rOptions, + /* out */ SwRenderData &rData, + const SwPrintUIOptions &rOptions, bool bIsPDFExport, sal_Int32 nDocPageCount ) { @@ -1222,8 +1223,8 @@ void SwDoc::CalculatePagesForPrinting( #endif // TL_NOT_NOW /*TLPDF*/ nPageNo = nFirstPageNo; - std::set< sal_Int32 > &rValidPages = rOptions.GetValidPagesSet(); - std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rOptions.GetValidStartFrames(); + std::set< sal_Int32 > &rValidPages = rData.GetValidPagesSet(); + std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames(); rValidPages.clear(); rValidStartFrms.clear(); while ( pStPage ) @@ -1292,38 +1293,39 @@ void SwDoc::CalculatePagesForPrinting( aPageRange += OUString::valueOf( (sal_Unicode)'-'); aPageRange += OUString::valueOf( nDocPageCount ); } - rOptions.SetPageRange( aPageRange ); + rData.SetPageRange( aPageRange ); // get vector of pages to print according to PageRange and valid pages set from above // (result may be an empty vector, for example if the range string is not correct) StringRangeEnumerator::getRangesFromString( - aPageRange, rOptions.GetPagesToPrint(), - 1, nDocPageCount, 0, &rOptions.GetValidPagesSet() ); + aPageRange, rData.GetPagesToPrint(), + 1, nDocPageCount, 0, &rData.GetValidPagesSet() ); } void SwDoc::UpdatePagesForPrintingWithPostItData( - /* out */ SwPrintUIOptions &rOptions, + /* out */ SwRenderData &rData, + const SwPrintUIOptions &rOptions, bool /*bIsPDFExport*/, sal_Int32 nDocPageCount ) { sal_Int16 nPostItMode = (sal_Int16) rOptions.getIntValue( "PrintAnnotationMode", 0 ); - DBG_ASSERT(nPostItMode == POSTITS_NONE || rOptions.HasPostItData(), + DBG_ASSERT(nPostItMode == POSTITS_NONE || rData.HasPostItData(), "print post-its without post-it data?" ); - const USHORT nPostItCount = rOptions.HasPostItData() ? rOptions.m_pPostItFields->Count() : 0; + const USHORT nPostItCount = rData.HasPostItData() ? rData.m_pPostItFields->Count() : 0; if (nPostItMode != POSTITS_NONE && nPostItCount > 0) { - SET_CURR_SHELL( rOptions.m_pPostItShell ); + SET_CURR_SHELL( rData.m_pPostItShell ); // clear document and move to end of it - SwPaM aPam( rOptions.m_pPostItDoc->GetNodes().GetEndOfContent() ); + SwPaM aPam( rData.m_pPostItDoc->GetNodes().GetEndOfContent() ); aPam.Move( fnMoveBackward, fnGoDoc ); aPam.SetMark(); aPam.Move( fnMoveForward, fnGoDoc ); - rOptions.m_pPostItDoc->Delete( aPam ); + rData.m_pPostItDoc->Delete( aPam ); - const StringRangeEnumerator aRangeEnum( rOptions.GetPageRange(), 1, nDocPageCount, 0 ); + const StringRangeEnumerator aRangeEnum( rData.GetPageRange(), 1, nDocPageCount, 0 ); // For mode POSTITS_ENDPAGE: // maps a physical page number to the page number in post-it document that holds @@ -1339,10 +1341,10 @@ void SwDoc::UpdatePagesForPrintingWithPostItData( bool bIsFirstPostIt = true; for (USHORT i = 0; i < nPostItCount; ++i) { - _PostItFld& rPostIt = (_PostItFld&)*(*rOptions.m_pPostItFields)[ i ]; + _PostItFld& rPostIt = (_PostItFld&)*(*rData.m_pPostItFields)[ i ]; nLastPageNum = nPhyPageNum; nPhyPageNum = rPostIt.GetPageNo( - aRangeEnum, rOptions.GetValidPagesSet(), + aRangeEnum, rData.GetValidPagesSet(), true /*TLPDF bRgt*/, true /*TLPDF bLft*/, nVirtPg, nLineNo ); if (nPhyPageNum) { @@ -1352,55 +1354,55 @@ void SwDoc::UpdatePagesForPrintingWithPostItData( const bool bNewPage = nPostItMode == POSTITS_ENDPAGE && !bIsFirstPostIt && nPhyPageNum != nLastPageNum; - lcl_FormatPostIt( rOptions.m_pPostItShell->GetDoc(), aPam, + lcl_FormatPostIt( rData.m_pPostItShell->GetDoc(), aPam, rPostIt.GetPostIt(), bNewPage, bIsFirstPostIt, nVirtPg, nLineNo ); bIsFirstPostIt = false; if (nPostItMode == POSTITS_ENDPAGE) { // get the correct number of current pages for the post-it document - rOptions.m_pPostItShell->CalcLayout(); - const sal_Int32 nPages = rOptions.m_pPostItDoc->GetPageCount(); + rData.m_pPostItShell->CalcLayout(); + const sal_Int32 nPages = rData.m_pPostItDoc->GetPageCount(); aPostItLastStartPageNum[ nPhyPageNum ] = nPages; } } } // format post-it doc to get correct number of pages - rOptions.m_pPostItShell->CalcLayout(); - const sal_Int32 nPostItDocPageCount = rOptions.m_pPostItDoc->GetPageCount(); + rData.m_pPostItShell->CalcLayout(); + const sal_Int32 nPostItDocPageCount = rData.m_pPostItDoc->GetPageCount(); if (nPostItMode == POSTITS_ONLY || nPostItMode == POSTITS_ENDDOC) { // now add those post-it pages to the vector of pages to print // or replace them if only post-its should be printed - rOptions.GetPostItStartFrames().clear(); + rData.GetPostItStartFrames().clear(); if (nPostItMode == POSTITS_ENDDOC) { // set all values up to number of pages to print currently known to NULL, // meaning none of the pages currently in the vector is from the // post-it document, they are the documents pages. - rOptions.GetPostItStartFrames().resize( rOptions.GetPagesToPrint().size() ); + rData.GetPostItStartFrames().resize( rData.GetPagesToPrint().size() ); } else if (nPostItMode == POSTITS_ONLY) { // no document page to be printed - rOptions.GetPagesToPrint().clear(); + rData.GetPagesToPrint().clear(); } // now we just need to add the post-it pages to be printed to the end // of the vector of pages to print and keep the GetValidStartFrames // data conform with it sal_Int32 nPageNum = 0; - const SwPageFrm * pPageFrm = (SwPageFrm*)rOptions.m_pPostItShell->GetLayout()->Lower(); + const SwPageFrm * pPageFrm = (SwPageFrm*)rData.m_pPostItShell->GetLayout()->Lower(); while( pPageFrm && nPageNum < nPostItDocPageCount ) { DBG_ASSERT( pPageFrm, "Empty page frame. How are we going to print this?" ); ++nPageNum; - rOptions.GetPagesToPrint().push_back( 0 ); // a page number of 0 indicates this page is from the post-it doc + rData.GetPagesToPrint().push_back( 0 ); // a page number of 0 indicates this page is from the post-it doc DBG_ASSERT( pPageFrm, "pPageFrm is NULL!" ); - rOptions.GetPostItStartFrames().push_back( pPageFrm ); + rData.GetPostItStartFrames().push_back( pPageFrm ); pPageFrm = (SwPageFrm*)pPageFrm->GetNext(); } DBG_ASSERT( nPageNum == nPostItDocPageCount, "unexpected number of pages" ); @@ -1414,7 +1416,7 @@ void SwDoc::UpdatePagesForPrintingWithPostItData( // ... thus, first collect all post-it doc start frames in a vector sal_Int32 nPostItPageNum = 0; std::vector< const SwPageFrm * > aAllPostItStartFrames; - const SwPageFrm * pPageFrm = (SwPageFrm*)rOptions.m_pPostItShell->GetLayout()->Lower(); + const SwPageFrm * pPageFrm = (SwPageFrm*)rData.m_pPostItShell->GetLayout()->Lower(); while( pPageFrm && sal_Int32(aAllPostItStartFrames.size()) < nPostItDocPageCount ) { DBG_ASSERT( pPageFrm, "Empty page frame. How are we going to print this?" ); @@ -1457,11 +1459,11 @@ void SwDoc::UpdatePagesForPrintingWithPostItData( // isn't that efficient we will create new vectors by copying the required data std::vector< sal_Int32 > aTmpPagesToPrint; std::vector< const SwPageFrm * > aTmpPostItStartFrames; - const size_t nNum = rOptions.GetPagesToPrint().size(); + const size_t nNum = rData.GetPagesToPrint().size(); for (size_t i = 0 ; i < nNum; ++i) { // add the physical page to print from the document - const sal_Int32 nPhysPage = rOptions.GetPagesToPrint()[i]; + const sal_Int32 nPhysPage = rData.GetPagesToPrint()[i]; aTmpPagesToPrint.push_back( nPhysPage ); aTmpPostItStartFrames.push_back( NULL ); @@ -1479,20 +1481,21 @@ void SwDoc::UpdatePagesForPrintingWithPostItData( // finally we need to assign those vectors to the resulting ones. // swapping the data should be more efficient than assigning since // we won't need the temporary vectors anymore - rOptions.GetPagesToPrint().swap( aTmpPagesToPrint ); - rOptions.GetPostItStartFrames().swap( aTmpPostItStartFrames ); + rData.GetPagesToPrint().swap( aTmpPagesToPrint ); + rData.GetPostItStartFrames().swap( aTmpPostItStartFrames ); } } } void SwDoc::CalculatePagePairsForProspectPrinting( - SwPrintUIOptions &rOptions, + /* out */ SwRenderData &rData, + const SwPrintUIOptions &rOptions, sal_Int32 nDocPageCount ) { - std::set< sal_Int32 > &rValidPagesSet = rOptions.GetValidPagesSet(); - std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rOptions.GetValidStartFrames(); - std::vector< std::pair< sal_Int32, sal_Int32 > > &rPagePairs = rOptions.GetPagePairsForProspectPrinting(); + std::set< sal_Int32 > &rValidPagesSet = rData.GetValidPagesSet(); + std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames(); + std::vector< std::pair< sal_Int32, sal_Int32 > > &rPagePairs = rData.GetPagePairsForProspectPrinting(); rPagePairs.clear(); rValidPagesSet.clear(); @@ -1534,7 +1537,7 @@ void SwDoc::CalculatePagePairsForProspectPrinting( // TLPDF, TODO: remove bPrintReverse, should be handled by PLs framework now //TLPDF bool bPrintReverse = rOptions.getBoolValue( C2U( "PrintReverseOrder" ), false ); // TLPDF: this one seems not to be used in prospect printing: bool bPrintEmptyPages = rOptions.getBoolValue( C2U( "PrintEmptyPages" ), false ); - bool bPrintProspect_RTL = rOptions.getIntValue( "PrintProspectRTL", 0 ) ? true : false; + bool bPrintProspectRTL = rOptions.getIntValue( "PrintProspectRTL", 0 ) ? true : false; // get pages for prospect printing according to the 'PageRange' // (duplicates and any order allowed!) @@ -1621,7 +1624,7 @@ void SwDoc::CalculatePagePairsForProspectPrinting( pStPage = aVec[ nSPg ]; const SwPageFrm* pNxtPage = nEPg < aVec.size() ? aVec[ nEPg ] : 0; - short nRtlOfs = bPrintProspect_RTL ? 1 : 0; + short nRtlOfs = bPrintProspectRTL ? 1 : 0; if ( 0 == (( nSPg + nRtlOfs) & 1 ) ) // switch for odd number in LTR, even number in RTL { const SwPageFrm* pTmp = pStPage; diff --git a/sw/source/core/view/viewpg.cxx b/sw/source/core/view/viewpg.cxx index 79dbdfc1f962..c0b5987e0046 100644 --- a/sw/source/core/view/viewpg.cxx +++ b/sw/source/core/view/viewpg.cxx @@ -481,7 +481,7 @@ void ViewShell::PrintProspect( { // TLPDF if( !rOptions.aMulti.GetSelectCount() ) Printer *pPrinter = dynamic_cast< Printer * >(pOutDev); - if (!pPrinter || rPrintData.GetPrintUIOptions().GetPagePairsForProspectPrinting().size() <= 0) + if (!pPrinter || rPrintData.GetRenderData().GetPagePairsForProspectPrinting().size() <= 0) return; #ifdef TL_NOT_NOW /*TLPDF*/ @@ -498,15 +498,15 @@ void ViewShell::PrintProspect( /* TLPDF neu: start */ #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( 0 <= nRenderer && nRenderer < (sal_Int32)rPrintData.GetPrintUIOptions().GetPagePairsForProspectPrinting().size(), "nRenderer out of bounds"); + DBG_ASSERT( 0 <= nRenderer && nRenderer < (sal_Int32)rPrintData.GetRenderData().GetPagePairsForProspectPrinting().size(), "nRenderer out of bounds"); #endif std::pair< sal_Int32, sal_Int32 > rPagesToPrint = - rPrintData.GetPrintUIOptions().GetPagePairsForProspectPrinting()[ nRenderer ]; + rPrintData.GetRenderData().GetPagePairsForProspectPrinting()[ nRenderer ]; const USHORT nPageMax = static_cast< USHORT >(rPagesToPrint.first > rPagesToPrint.second ? rPagesToPrint.first : rPagesToPrint.second); #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( rPagesToPrint.first == -1 || rPrintData.GetPrintUIOptions().GetValidPagesSet().count( rPagesToPrint.first ) == 1, "first Page not valid" ); - DBG_ASSERT( rPagesToPrint.second == -1 || rPrintData.GetPrintUIOptions().GetValidPagesSet().count( rPagesToPrint.second ) == 1, "second Page not valid" ); + DBG_ASSERT( rPagesToPrint.first == -1 || rPrintData.GetRenderData().GetValidPagesSet().count( rPagesToPrint.first ) == 1, "first Page not valid" ); + DBG_ASSERT( rPagesToPrint.second == -1 || rPrintData.GetRenderData().GetValidPagesSet().count( rPagesToPrint.second ) == 1, "second Page not valid" ); #endif /* TLPDF neu: end */ @@ -703,16 +703,16 @@ void ViewShell::PrintProspect( /* TLPDF neu: start */ const SwPageFrm *pStPage = 0; const SwPageFrm *pNxtPage = 0; - const SwPrintUIOptions::ValidStartFramesMap_t &rFrms = rPrintData.GetPrintUIOptions().GetValidStartFrames(); + const SwRenderData::ValidStartFramesMap_t &rFrms = rPrintData.GetRenderData().GetValidStartFrames(); if (rPagesToPrint.first > 0) { - SwPrintUIOptions::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( rPagesToPrint.first ) ); + SwRenderData::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( rPagesToPrint.first ) ); DBG_ASSERT( aIt != rFrms.end(), "failed to find start frame" ); pStPage = aIt->second; } if (rPagesToPrint.second > 0) { - SwPrintUIOptions::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( rPagesToPrint.second ) ); + SwRenderData::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( rPagesToPrint.second ) ); DBG_ASSERT( aIt != rFrms.end(), "failed to find start frame" ); pNxtPage = aIt->second; } diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx index 7f5201c5e46d..08a19e307ae5 100644 --- a/sw/source/core/view/vprint.cxx +++ b/sw/source/core/view/vprint.cxx @@ -239,6 +239,52 @@ const XubString& SwPrtOptions::MakeNextJobName() /*****************************************************************************/ + +SwRenderData::SwRenderData() +{ + m_pPostItFields = 0; + m_pPostItDoc = 0; + m_pPostItShell = 0; +} + + +SwRenderData::~SwRenderData() +{ +} + + +void SwRenderData::CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev ) +{ + m_pPostItFields = new _SetGetExpFlds; + lcl_GetPostIts( pDoc, *m_pPostItFields );
+ m_pPostItDoc = new SwDoc;
+ + //!! Disable spell and grammar checking in the temporary document. + //!! Otherwise the grammar checker might process it and crash if we later on + //!! simply delete this document while he is still at it. + SwViewOption aViewOpt( *pViewOpt ); + aViewOpt.SetOnlineSpell( FALSE ); + + m_pPostItShell = new ViewShell( *m_pPostItDoc, 0, &aViewOpt, pOutDev );
+} + + +void SwRenderData::DeletePostItData() +{ + if (HasPostItData()) + { + m_pPostItDoc->setPrinter( 0, false, false ); //damit am echten DOC der Drucker bleibt + delete m_pPostItShell; //Nimmt das PostItDoc mit ins Grab. + delete m_pPostItFields; + m_pPostItDoc = 0; + m_pPostItShell = 0; + m_pPostItFields = 0; + } +} + + +/*****************************************************************************/ + SwPrintUIOptions::SwPrintUIOptions( BOOL bWeb ) : m_pLast( NULL ) { @@ -428,10 +474,6 @@ SwPrintUIOptions::SwPrintUIOptions( BOOL bWeb ) : DBG_ASSERT( nIdx == nNumProps, "number of added properties is not as expected" ); - - m_pPostItFields = 0; - m_pPostItDoc = 0; - m_pPostItShell = 0; } @@ -526,35 +568,6 @@ bool SwPrintUIOptions::processPropertiesAndCheckFormat( const com::sun::star::un } -void SwPrintUIOptions::CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev ) -{ - m_pPostItFields = new _SetGetExpFlds; - lcl_GetPostIts( pDoc, *m_pPostItFields );
- m_pPostItDoc = new SwDoc;
- - //!! Disable spell and grammar checking in the temporary document. - //!! Otherwise the grammar checker might process it and crash if we later on - //!! simply delete this document while he is still at it. - SwViewOption aViewOpt( *pViewOpt ); - aViewOpt.SetOnlineSpell( FALSE ); - - m_pPostItShell = new ViewShell( *m_pPostItDoc, 0, &aViewOpt, pOutDev );
-} - - -void SwPrintUIOptions::DeletePostItData() -{ - if (HasPostItData()) - { - m_pPostItDoc->setPrinter( 0, false, false ); //damit am echten DOC der Drucker bleibt - delete m_pPostItShell; //Nimmt das PostItDoc mit ins Grab. - delete m_pPostItFields; - m_pPostItDoc = 0; - m_pPostItShell = 0; - m_pPostItFields = 0; - } -} - /****************************************************************************** * Methode : void SetSwVisArea( ViewShell *pSh, Point aPrtOffset, ... * Beschreibung: @@ -1158,17 +1171,17 @@ sal_Bool ViewShell::PrintOrPDFExport( /* TLPDF neu: start */ #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( 0 <= nRenderer && nRenderer < (sal_Int32)rPrintData.GetPrintUIOptions().GetPagesToPrint().size(), "nRenderer out of bounds"); + DBG_ASSERT( 0 <= nRenderer && nRenderer < (sal_Int32)rPrintData.GetRenderData().GetPagesToPrint().size(), "nRenderer out of bounds"); #endif - const sal_Int32 nPage = rPrintData.GetPrintUIOptions().GetPagesToPrint()[ nRenderer ]; /* TLPDF */ + const sal_Int32 nPage = rPrintData.GetRenderData().GetPagesToPrint()[ nRenderer ]; /* TLPDF */ #if OSL_DEBUG_LEVEL > 1 - DBG_ASSERT( nPage == 0 || rPrintData.GetPrintUIOptions().GetValidPagesSet().count( nPage ) == 1, "nPage not valid" ); + DBG_ASSERT( nPage == 0 || rPrintData.GetRenderData().GetValidPagesSet().count( nPage ) == 1, "nPage not valid" ); #endif const SwPageFrm *pStPage = 0; if (nPage > 0) // a 'regular' page, not one from the post-it document { - const SwPrintUIOptions::ValidStartFramesMap_t &rFrms = rPrintData.GetPrintUIOptions().GetValidStartFrames(); - SwPrintUIOptions::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( nPage ) ); + const SwRenderData::ValidStartFramesMap_t &rFrms = rPrintData.GetRenderData().GetValidStartFrames(); + SwRenderData::ValidStartFramesMap_t::const_iterator aIt( rFrms.find( nPage ) ); DBG_ASSERT( aIt != rFrms.end(), "failed to find start frame" ); if (aIt == rFrms.end()) return sal_False; @@ -1177,7 +1190,7 @@ sal_Bool ViewShell::PrintOrPDFExport( else // a page from the post-its document ... { DBG_ASSERT( nPage == 0, "unexpected page number. 0 for post-it pages expected" ); - pStPage = rPrintData.GetPrintUIOptions().GetPostItStartFrames()[ nRenderer ]; + pStPage = rPrintData.GetRenderData().GetPostItStartFrames()[ nRenderer ]; } DBG_ASSERT( pStPage, "failed to get start page" ); /* TLPDF neu: end */ @@ -1269,7 +1282,7 @@ sal_Bool ViewShell::PrintOrPDFExport( //TLPDF while( pStPage && !bStop ) { ViewShell *pViewSh2 = nPage == 0 ? /* post-it page? */ - rPrintData.GetPrintUIOptions().m_pPostItShell : pShell; + rPrintData.GetRenderData().m_pPostItShell : pShell; ::SetSwVisArea( pViewSh2, pStPage->Frm() ); // TLPDF // wenn wir einen Umschlag drucken wird ein Offset beachtet @@ -1351,7 +1364,7 @@ sal_Bool ViewShell::PrintOrPDFExport( pShell->InitPrt( pOutDev ); ViewShell *pViewSh2 = nPage == 0 ? /* post-it page? */ - rPrintData.GetPrintUIOptions().m_pPostItShell : pShell; + rPrintData.GetRenderData().m_pPostItShell : pShell; ::SetSwVisArea( pViewSh2, pStPage->Frm() ); // TLPDF // TLPDF nJobStartError = JOBSET_ERR_ISSTARTET; } diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 4b85042d0003..3c529263f66d 100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -473,14 +473,14 @@ BOOL SwAddPrinterTabPage::FillItemSet( SfxItemSet& rCoreSet ) aAddPrinterAttr.bPrintHiddenText = aPrintHiddenTextCB.IsChecked(); aAddPrinterAttr.bPrintTextPlaceholder = aPrintTextPlaceholderCB.IsChecked(); - aAddPrinterAttr.bPrintLeftPage = aLeftPageCB.IsChecked(); - aAddPrinterAttr.bPrintRightPage = aRightPageCB.IsChecked(); - aAddPrinterAttr.bPrintReverse = aReverseCB.IsChecked(); - aAddPrinterAttr.bPrintProspect = aProspectCB.IsChecked(); - aAddPrinterAttr.bPrintProspect_RTL = aProspectCB_RTL.IsChecked(); - aAddPrinterAttr.bPaperFromSetup = aPaperFromSetupCB.IsChecked(); - aAddPrinterAttr.bPrintEmptyPages = aPrintEmptyPagesCB.IsChecked(); - aAddPrinterAttr.bPrintSingleJobs = aSingleJobsCB.IsChecked(); + aAddPrinterAttr.bPrintLeftPages = aLeftPageCB.IsChecked(); + aAddPrinterAttr.bPrintRightPages = aRightPageCB.IsChecked(); + aAddPrinterAttr.bPrintReverse = aReverseCB.IsChecked(); + aAddPrinterAttr.bPrintProspect = aProspectCB.IsChecked(); + aAddPrinterAttr.bPrintProspectRTL = aProspectCB_RTL.IsChecked(); + aAddPrinterAttr.bPaperFromSetup = aPaperFromSetupCB.IsChecked(); + aAddPrinterAttr.bPrintEmptyPages = aPrintEmptyPagesCB.IsChecked(); + aAddPrinterAttr.bPrintSingleJobs = aSingleJobsCB.IsChecked(); if (aNoRB.IsChecked()) aAddPrinterAttr.nPrintPostIts = POSTITS_NONE; @@ -516,13 +516,13 @@ void SwAddPrinterTabPage::Reset( const SfxItemSet& ) aBlackFontCB.Check( pAddPrinterAttr->bPrintBlackFont); aPrintHiddenTextCB.Check( pAddPrinterAttr->bPrintHiddenText); aPrintTextPlaceholderCB.Check(pAddPrinterAttr->bPrintTextPlaceholder); - aLeftPageCB.Check( pAddPrinterAttr->bPrintLeftPage); - aRightPageCB.Check( pAddPrinterAttr->bPrintRightPage); + aLeftPageCB.Check( pAddPrinterAttr->bPrintLeftPages); + aRightPageCB.Check( pAddPrinterAttr->bPrintRightPages); aReverseCB.Check( pAddPrinterAttr->bPrintReverse); aPaperFromSetupCB.Check(pAddPrinterAttr->bPaperFromSetup); aPrintEmptyPagesCB.Check(pAddPrinterAttr->bPrintEmptyPages); aProspectCB.Check( pAddPrinterAttr->bPrintProspect); - aProspectCB_RTL.Check( pAddPrinterAttr->bPrintProspect_RTL); + aProspectCB_RTL.Check( pAddPrinterAttr->bPrintProspectRTL); aSingleJobsCB.Check( pAddPrinterAttr->bPrintSingleJobs); aNoRB.Check (pAddPrinterAttr->nPrintPostIts== POSTITS_NONE ) ; diff --git a/sw/source/ui/config/prtopt.cxx b/sw/source/ui/config/prtopt.cxx index 41a118614b95..ceb48b6adefe 100644 --- a/sw/source/ui/config/prtopt.cxx +++ b/sw/source/ui/config/prtopt.cxx @@ -119,13 +119,13 @@ SwPrintOptions::SwPrintOptions(sal_Bool bWeb) : break; case 6: bPrintReverse = *(sal_Bool*)pValues[nProp].getValue(); break; case 7: bPrintProspect = *(sal_Bool*)pValues[nProp].getValue(); break; - case 8: bPrintProspect_RTL = *(sal_Bool*)pValues[nProp].getValue(); break; + case 8: bPrintProspectRTL = *(sal_Bool*)pValues[nProp].getValue(); break; case 9: bPrintSingleJobs = *(sal_Bool*)pValues[nProp].getValue(); break; case 10: pValues[nProp] >>= sFaxName; break; case 11: bPaperFromSetup = *(sal_Bool*)pValues[nProp].getValue(); break; case 12: bPrintDraw = *(sal_Bool*)pValues[nProp].getValue() ; break; - case 13: bPrintLeftPage = *(sal_Bool*)pValues[nProp].getValue(); break; - case 14: bPrintRightPage = *(sal_Bool*)pValues[nProp].getValue(); break; + case 13: bPrintLeftPages = *(sal_Bool*)pValues[nProp].getValue(); break; + case 14: bPrintRightPages = *(sal_Bool*)pValues[nProp].getValue(); break; case 15: bPrintEmptyPages = *(sal_Bool*)pValues[nProp].getValue(); break; case 16: bPrintTextPlaceholder = *(sal_Bool*)pValues[nProp].getValue(); break; case 17: bPrintHiddenText = *(sal_Bool*)pValues[nProp].getValue(); break; @@ -164,13 +164,13 @@ void SwPrintOptions::Commit() case 5: pValues[nProp] <<= (sal_Int32)nPrintPostIts ; break; case 6: bVal = bPrintReverse ; pValues[nProp].setValue(&bVal, rType); break; case 7: bVal = bPrintProspect ; pValues[nProp].setValue(&bVal, rType); break; - case 8: bVal = bPrintProspect_RTL ; pValues[nProp].setValue(&bVal, rType); break; + case 8: bVal = bPrintProspectRTL ; pValues[nProp].setValue(&bVal, rType); break; case 9: bVal = bPrintSingleJobs ; pValues[nProp].setValue(&bVal, rType); break; case 10: pValues[nProp] <<= sFaxName; break; case 11: bVal = bPaperFromSetup ; pValues[nProp].setValue(&bVal, rType); break; case 12: bVal = bPrintDraw ; pValues[nProp].setValue(&bVal, rType); break; - case 13: bVal = bPrintLeftPage ; pValues[nProp].setValue(&bVal, rType); break; - case 14: bVal = bPrintRightPage ; pValues[nProp].setValue(&bVal, rType); break; + case 13: bVal = bPrintLeftPages ; pValues[nProp].setValue(&bVal, rType); break; + case 14: bVal = bPrintRightPages ; pValues[nProp].setValue(&bVal, rType); break; case 15: bVal = bPrintEmptyPages ; pValues[nProp].setValue(&bVal, rType); break; case 16: bVal = bPrintTextPlaceholder; pValues[nProp].setValue(&bVal, rType); break; case 17: bVal = bPrintHiddenText; pValues[nProp].setValue(&bVal, rType); break; diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx index a5cfd66a740a..ff29ca8638e2 100644 --- a/sw/source/ui/dbui/dbmgr.cxx +++ b/sw/source/ui/dbui/dbmgr.cxx @@ -458,6 +458,7 @@ BOOL SwNewDBMgr::MergeNew(const SwMergeDescriptor& rMergeDesc ) case DBMGR_MERGE_MAILMERGE: // Serienbrief { SwView& rView = rMergeDesc.rSh.GetView(); +#ifdef TL_NOT_NOW /*TLPDF*/
SfxDispatcher *pDis = rView.GetViewFrame()->GetDispatcher(); SfxItemSet aPrintArgs( rView.GetPool(), SID_SILENT, SID_SILENT, //5528 @@ -522,9 +523,42 @@ BOOL SwNewDBMgr::MergeNew(const SwMergeDescriptor& rMergeDesc ) } } - pDis->Execute( SID_PRINTDOC, - SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD, - aPrintArgs ); +#endif //def TL_NOT_NOW /*TLPDF*/
+ +// TLPDF pDis->Execute( SID_PRINTDOC, +// TLPDF SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD, +// TLPDF aPrintArgs ); +#if OSL_DEBUG_LEVEL > 1 + sal_Bool _bVal; + sal_Int16 _nVal; + rtl::OUString _sVal; + const beans::PropertyValue* pPrintOptions = rMergeDesc.aPrintOptions.getConstArray(); + for( sal_Int32 nOption = 0; nOption < rMergeDesc.aPrintOptions.getLength(); ++nOption) + { + rtl::OUString aName( pPrintOptions[nOption].Name ); + uno::Any aVal( pPrintOptions[nOption].Value ); + aVal >>= _bVal; + aVal >>= _nVal; + aVal >>= _sVal; + }
+#endif
+ + // printing should be done synchronous otherwise the document + // might already become invalid during the process + uno::Sequence< beans::PropertyValue > aOptions( rMergeDesc.aPrintOptions ); + const sal_Int32 nOpts = aOptions.getLength(); + aOptions.realloc( nOpts + 1 ); + aOptions[ nOpts ].Name = rtl::OUString::createFromAscii( "Wait" ); + aOptions[ nOpts ].Value <<= sal_True ; +
+ const SwModuleOptions * pModOpt = SW_MOD()->GetModuleConfig();
+ if (pModOpt->IsSinglePrintJob()) + { + } + else + { + rView.ExecPrint( aOptions, sal_False, sal_False ); + } } break; @@ -858,12 +892,9 @@ SwNewDBMgr::~SwNewDBMgr() --------------------------------------------------------------------*/ -BOOL SwNewDBMgr::MergePrint( SwView& /*rView*/, - SwPrtOptions& /*rOpt*/, SfxProgress& /*rProgress*/, BOOL /*bIsAPI*/ ) +BOOL SwNewDBMgr::MergePrint( SwView& rView, + SwPrtOptions& rOpt, SfxProgress& rProgress, BOOL bIsAPI ) { - DBG_ASSERT( 0, "not implemented" ); - return FALSE; -#ifdef TL_NOT_NOW /* TLPDF */ SwWrtShell* pSh = &rView.GetWrtShell(); //check if the doc is synchronized and contains at least one linked section BOOL bSynchronizedDoc = pSh->IsLabelDoc() && pSh->GetSectionFmtCount() > 1; @@ -971,11 +1002,11 @@ BOOL SwNewDBMgr::MergePrint( SwView& /*rView*/, } if( pPrt->IsJobActive() ) { - pSh->PrintProspectMM( aPrtAdaptor, aViewProperties, rOpt, rOpt.IsPrintProspect_RTL() ); /* TLPDF */ + pSh->PrintProspectMM( aPrtAdaptor, aViewProperties, rOpt, rOpt.IsPrintProspectRTL() ); /* TLPDF */ bRet = TRUE; } #endif // TL_NOT_NOW /*TLPDF*/ - pSh->PrintProspectMM( aPrtAdaptor, aViewProperties, rOpt, rOpt.IsPrintProspect_RTL() ); // TLPDF + pSh->PrintProspectMM( aPrtAdaptor, aViewProperties, rOpt, rOpt.IsPrintProspectRTL() ); // TLPDF bRet = TRUE; // TLPDF } else if( pSh->PrintOrPDFExportMM( aPrtAdaptor, aViewProperties, rOpt ) /* TLPDF */ ) @@ -1027,17 +1058,13 @@ BOOL SwNewDBMgr::MergePrint( SwView& /*rView*/, } return bRet; -#endif // TL_NOT_NOW /* TLPDF */ } /*-- 21.06.2004 09:08:16--------------------------------------------------- -----------------------------------------------------------------------*/ -BOOL SwNewDBMgr::MergePrintDocuments( SwView& /*rView*/, - SwPrtOptions& /*rOpt*/, SfxProgress& /*rProgress*/, BOOL /*bIsAPI*/ ) +BOOL SwNewDBMgr::MergePrintDocuments( SwView& rView, + SwPrtOptions& rOpt, SfxProgress& rProgress, BOOL bIsAPI ) { - DBG_ASSERT( 0, "not implemented" ); - return FALSE; -#ifdef TL_NOT_NOW /* TLPDF */ SwWrtShell* pSh = &rView.GetWrtShell(); //check if the doc is synchronized and contains at least one linked section //merge source is already open @@ -1144,7 +1171,7 @@ BOOL SwNewDBMgr::MergePrintDocuments( SwView& /*rView*/, { //TLPDF if( pPrt->IsJobActive() || pPrt->StartJob( rOpt.GetJobName() )) //TLPDF { - pSh->PrintProspectMM( aPrtAdaptor, aAddViewProperties, rOpt, rOpt.IsPrintProspect_RTL() ); + pSh->PrintProspectMM( aPrtAdaptor, aAddViewProperties, rOpt, rOpt.IsPrintProspectRTL() ); bRet = TRUE; //TLPDF } } @@ -1192,7 +1219,6 @@ BOOL SwNewDBMgr::MergePrintDocuments( SwView& /*rView*/, } return bRet; -#endif // TL_NOT_NOW /* TLPDF */ } diff --git a/sw/source/ui/inc/cfgitems.hxx b/sw/source/ui/inc/cfgitems.hxx index 620d3ac52b23..bb301283a005 100644 --- a/sw/source/ui/inc/cfgitems.hxx +++ b/sw/source/ui/inc/cfgitems.hxx @@ -155,15 +155,15 @@ public: BOOL IsPrintProspect() const { return bPrintProspect; } - BOOL IsPrintProspect_RTL() const { return bPrintProspect_RTL; } + BOOL IsPrintProspectRTL() const { return bPrintProspectRTL; } void SetPrintProspect(BOOL bFlag ){ bPrintProspect = bFlag; } - void SetPrintProspect_RTL(BOOL bFlag ){ bPrintProspect_RTL = bFlag; } + void SetPrintProspectRTL(BOOL bFlag ){ bPrintProspectRTL = bFlag; } BOOL IsPrintGraphic () const { return bPrintGraphic; } BOOL IsPrintTable () const { return bPrintTable; } BOOL IsPrintDraw () const { return bPrintDraw; } BOOL IsPrintControl () const { return bPrintControl; } - BOOL IsPrintLeftPage () const { return bPrintLeftPage; } - BOOL IsPrintRightPage() const { return bPrintRightPage; } + BOOL IsPrintLeftPage () const { return bPrintLeftPages; } + BOOL IsPrintRightPage() const { return bPrintRightPages; } BOOL IsPrintReverse () const { return bPrintReverse; } BOOL IsPaperFromSetup() const { return bPaperFromSetup; } BOOL IsPrintEmptyPages() const { return bPrintEmptyPages; } diff --git a/sw/source/ui/uiview/view.cxx b/sw/source/ui/uiview/view.cxx index 5e3afd2ed8fa..642c34352a0e 100644 --- a/sw/source/ui/uiview/view.cxx +++ b/sw/source/ui/uiview/view.cxx @@ -1975,7 +1975,7 @@ void SwView::MakeOptions( PrintDialog* pDlg, SwPrtOptions& rOpts, if( pPrtProspect ) *pPrtProspect = pData->bPrintProspect; if( pPrtProspect_RTL ) - *pPrtProspect_RTL = pData->bPrintProspect_RTL; + *pPrtProspect_RTL = pData->bPrintProspectRTL; rOpts.aMulti.SetTotalRange( Range( 0, RANGE_MAX ) ); rOpts.aMulti.SelectAll( FALSE ); rOpts.nCopyCount = 1; diff --git a/sw/source/ui/uiview/viewprt.cxx b/sw/source/ui/uiview/viewprt.cxx index b6f2308d9888..4a7e6477aa7f 100644 --- a/sw/source/ui/uiview/viewprt.cxx +++ b/sw/source/ui/uiview/viewprt.cxx @@ -178,10 +178,6 @@ USHORT __EXPORT SwView::SetPrinter(SfxPrinter* pNew, USHORT nDiffFlags, bool ) ErrCode SwView::DoPrint( SfxPrinter* pPrinter, PrintDialog* pDlg, BOOL bSilent, BOOL bIsAPI ) { - (void) pPrinter; (void) pDlg; (void) bSilent; (void) bIsAPI; - DBG_ASSERT( 0, "not implemented" ); - return 0; -#ifdef TL_NOT_NOW /* TLPDF */ // First test SwWrtShell* pSh = &GetWrtShell(); SwNewDBMgr* pMgr = pSh->GetNewDBMgr(); @@ -376,7 +372,7 @@ ErrCode SwView::DoPrint( SfxPrinter* pPrinter, PrintDialog* pDlg, BOOL bSilent, pViewProperties[10].Value <<= (text::NotePrintMode) aOpts.GetPrintPostIts(); pViewProperties[11].Name = C2U("PrintProspect"); pViewProperties[11].Value <<= (sal_Bool)aOpts.IsPrintProspect(); - pViewProperties[12].Name = C2U("PrintPageBackground"); + pViewProperties[12].Name = C2U("PrintPageBackground"); pViewProperties[12].Value <<= (sal_Bool)aOpts.IsPrintPageBackground(); pViewProperties[13].Name = C2U("PrintBlackFonts"); pViewProperties[13].Value <<= (sal_Bool)aOpts.IsPrintBlackFont(); @@ -447,7 +443,6 @@ ErrCode SwView::DoPrint( SfxPrinter* pPrinter, PrintDialog* pDlg, BOOL bSilent, //TLPDF pProgress->DeleteOnEndPrint(); //TLPDF pPrinter->EndJob(); return pPrinter->GetError(); -#endif // TL_NOT_NOW /* TLPDF */ } diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx index 3b774180dd63..46696961dca4 100644 --- a/sw/source/ui/uno/unotxdoc.cxx +++ b/sw/source/ui/uno/unotxdoc.cxx @@ -360,7 +360,8 @@ SwXTextDocument::SwXTextDocument(SwDocShell* pShell) : pxLinkTargetSupplier(0), pxXRedlines(0), m_pHiddenViewFrame(0), - m_pPrintUIOptions( NULL ) + m_pPrintUIOptions( NULL ), + m_pRenderData( NULL ) { } /*-- 18.12.98 11:53:00--------------------------------------------------- @@ -376,6 +377,7 @@ SwXTextDocument::~SwXTextDocument() xNumFmtAgg = 0; } delete m_pPrintUIOptions; + delete m_pRenderData; } @@ -2626,6 +2628,8 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( if(!IsValid()) throw RuntimeException(); + if( ! m_pRenderData ) + m_pRenderData = new SwRenderData; if( ! m_pPrintUIOptions ) { const BOOL bWebDoc = (0 != PTR_CAST(SwWebDocShell, pDocShell)); @@ -2680,8 +2684,8 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( const bool bPrintProspect = m_pPrintUIOptions->getBoolValue( "PrintProspect", false ); if (bPrintProspect) { - pDoc->CalculatePagePairsForProspectPrinting( *m_pPrintUIOptions, nPageCount ); - nRet = m_pPrintUIOptions->GetPagePairsForProspectPrinting().size(); + pDoc->CalculatePagePairsForProspectPrinting( *m_pRenderData, *m_pPrintUIOptions, nPageCount ); + nRet = m_pRenderData->GetPagePairsForProspectPrinting().size(); } else { @@ -2689,20 +2693,20 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( if (nPostItMode != POSTITS_NONE) { OutputDevice *pOutDev = lcl_GetOutputDevice( *m_pPrintUIOptions ); - m_pPrintUIOptions->CreatePostItData( pDoc, pWrtShell->GetViewOptions(), pOutDev ); + m_pRenderData->CreatePostItData( pDoc, pWrtShell->GetViewOptions(), pOutDev ); } // get set of valid document pages (according to the current settings) // and their start frames - pDoc->CalculatePagesForPrinting( *m_pPrintUIOptions, bIsPDFExport, nPageCount ); + pDoc->CalculatePagesForPrinting( *m_pRenderData, *m_pPrintUIOptions, bIsPDFExport, nPageCount ); if (nPostItMode != POSTITS_NONE) { - pDoc->UpdatePagesForPrintingWithPostItData( + pDoc->UpdatePagesForPrintingWithPostItData( *m_pRenderData, *m_pPrintUIOptions, bIsPDFExport, nPageCount ); } - nRet = m_pPrintUIOptions->GetPagesToPrint().size(); + nRet = m_pRenderData->GetPagesToPrint().size(); } DBG_ASSERT( nRet >= 0, "negative number of pages???" ); @@ -2721,6 +2725,8 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer( if(!IsValid()) throw RuntimeException(); + if( ! m_pRenderData ) + m_pRenderData = new SwRenderData; if( ! m_pPrintUIOptions ) { const BOOL bWebDoc = (0 != PTR_CAST(SwWebDocShell, pDocShell)); @@ -2812,6 +2818,8 @@ void SAL_CALL SwXTextDocument::render( if(!IsValid()) throw RuntimeException(); + if (!m_pRenderData) + m_pRenderData = new SwRenderData; if (!m_pPrintUIOptions) { const BOOL bWebDoc = (0 != PTR_CAST(SwWebDocShell, pDocShell)); @@ -2846,8 +2854,8 @@ void SAL_CALL SwXTextDocument::render( // Thus instead of throwing the exception we silently return. if (0 > nRenderer) throw IllegalArgumentException(); - if ( (bPrintProspect && size_t(nRenderer) >= m_pPrintUIOptions->GetPagePairsForProspectPrinting().size()) - || (!bPrintProspect && size_t(nRenderer) >= m_pPrintUIOptions->GetPagesToPrint().size())) + if ( (bPrintProspect && size_t(nRenderer) >= m_pRenderData->GetPagePairsForProspectPrinting().size()) + || (!bPrintProspect && size_t(nRenderer) >= m_pRenderData->GetPagesToPrint().size())) return; // the view shell should be SwView for documents PDF export @@ -2885,15 +2893,15 @@ void SAL_CALL SwXTextDocument::render( aOptions.bPrintTable = m_pPrintUIOptions->IsPrintTables(); aOptions.bPrintDraw = m_pPrintUIOptions->IsPrintDrawings(); aOptions.bPrintControl = m_pPrintUIOptions->getBoolValue( "PrintControls", aOptions.bPrintControl ); - aOptions.bPrintLeftPage = m_pPrintUIOptions->IsPrintLeftPages(); - aOptions.bPrintRightPage = m_pPrintUIOptions->IsPrintRightPages(); + aOptions.bPrintLeftPages = m_pPrintUIOptions->IsPrintLeftPages(); + aOptions.bPrintRightPages = m_pPrintUIOptions->IsPrintRightPages(); aOptions.bPrintPageBackground = m_pPrintUIOptions->getBoolValue( "PrintPageBackground", aOptions.bPrintPageBackground ); aOptions.bPrintEmptyPages = !bIsSkipEmptyPages; // bUpdateFieldsInPrinting <-- not set here // TLPDF: TODO: remove this from SwPrintData?? Get rid of SwPrtOptions?? aOptions.bPaperFromSetup = m_pPrintUIOptions->getBoolValue( "PrintPaperFromSetup", aOptions.bPaperFromSetup ); aOptions.bPrintReverse = m_pPrintUIOptions->getBoolValue( "PrintReversed", aOptions.bPrintReverse ); aOptions.bPrintProspect = m_pPrintUIOptions->getBoolValue( "PrintProspect", aOptions.bPrintProspect ); - aOptions.bPrintProspect_RTL = m_pPrintUIOptions->getIntValue( "PrintProspectRTL", aOptions.bPrintProspect_RTL ) ? true : false; + aOptions.bPrintProspectRTL = m_pPrintUIOptions->getIntValue( "PrintProspectRTL", aOptions.bPrintProspectRTL ) ? true : false; // bPrintSingleJobs <-- not set here // TLPDF: TODO: remove this from SwPrintData?? Get rid of SwPrtOptions?? // bModified <-- not set here // TLPDF: TODO: remove this from SwPrintData?? Get rid of SwPrtOptions?? aOptions.bPrintBlackFont = m_pPrintUIOptions->getBoolValue( "PrintBlackFonts", aOptions.bPrintBlackFont ); @@ -2901,9 +2909,10 @@ void SAL_CALL SwXTextDocument::render( aOptions.bPrintTextPlaceholder = m_pPrintUIOptions->getBoolValue( "PrintTextPlaceholder", aOptions.bPrintTextPlaceholder ); aOptions.nPrintPostIts = static_cast< sal_Int16 >(m_pPrintUIOptions->getIntValue( "PrintAnnotationMode", aOptions.nPrintPostIts )); - //! needs to be set after MakeOptions since the assingment operation in that - //! function will destroy this pointer + //! needs to be set after MakeOptions since the assignment operation in that + //! function will destroy the pointers aOptions.SetPrintUIOptions( m_pPrintUIOptions ); + aOptions.SetRenderData( m_pRenderData ); Range aRange( nRenderer+1, nRenderer+1 ); MultiSelection aPages( aRange ); @@ -2967,16 +2976,18 @@ void SAL_CALL SwXTextDocument::render( if (bLastPage) { - if (m_pPrintUIOptions->HasPostItData()) - m_pPrintUIOptions->DeletePostItData(); - + if (m_pRenderData && m_pRenderData->HasPostItData()) + m_pRenderData->DeletePostItData(); if (m_pHiddenViewFrame) { lcl_DisposeView( m_pHiddenViewFrame, pDocShell ); m_pHiddenViewFrame = 0; } + + aOptions.SetRenderData( NULL ); aOptions.SetPrintUIOptions( NULL ); - delete m_pPrintUIOptions, m_pPrintUIOptions = NULL; + delete m_pRenderData; m_pRenderData = NULL; + delete m_pPrintUIOptions; m_pPrintUIOptions = NULL; } } } |