filter/source/pdf/impdialog.cxx | 13 filter/source/pdf/impdialog.hrc | 1 filter/source/pdf/impdialog.hxx | 2 filter/source/pdf/impdialog.src | 12 filter/source/pdf/pdfexport.cxx | 4 filter/source/pdf/pdfexport.hxx | 1 filter/source/pdf/pdffilter.cxx | 1 sc/source/core/tool/dbdata.cxx | 6 sd/source/ui/unoidl/unomodel.cxx | 498 ++++++++++++++++++------------------ vcl/inc/vcl/pdfextoutdevdata.hxx | 4 vcl/source/gdi/pdfextoutdevdata.cxx | 9 11 files changed, 298 insertions(+), 253 deletions(-)
New commits: commit 146fa8dabe816d35e7b879172baa00027575d3b2 Author: Julien Nabet <serval2...@yahoo.fr> Date: Wed Dec 28 23:15:03 2011 +0100 Fix order init diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx index cae790a..182af3c 100644 --- a/filter/source/pdf/impdialog.cxx +++ b/filter/source/pdf/impdialog.cxx @@ -453,9 +453,9 @@ ImpPDFTabGeneralPage::ImpPDFTabGeneralPage( Window* pParent, maCbAllowDuplicateFieldNames( this, PDFFilterResId( CB_ALLOWDUPLICATEFIELDNAMES ) ), maCbExportBookmarks( this, PDFFilterResId( CB_EXPORTBOOKMARKS ) ), + maCbExportHiddenSlides( this, PDFFilterResId( CB_EXPORTHIDDENSLIDES ) ), maCbExportNotes( this, PDFFilterResId( CB_EXPORTNOTES ) ), maCbExportNotesPages( this, PDFFilterResId( CB_EXPORTNOTESPAGES ) ), - maCbExportHiddenSlides( this, PDFFilterResId( CB_EXPORTHIDDENSLIDES ) ), maCbExportEmptyPages( this, PDFFilterResId( CB_EXPORTEMPTYPAGES ) ), maCbAddStream( this, PDFFilterResId( CB_ADDSTREAM ) ), maFtAddStreamDescription( this, PDFFilterResId( FT_ADDSTREAMDESCRIPTION ) ), commit 6ea45acb55294fe99dbe44dec1ff844ab0989111 Author: Julien Nabet <serval2...@yahoo.fr> Date: Wed Dec 28 22:55:15 2011 +0100 Fix init order diff --git a/vcl/source/gdi/pdfextoutdevdata.cxx b/vcl/source/gdi/pdfextoutdevdata.cxx index a2d856d..23d81a4 100644 --- a/vcl/source/gdi/pdfextoutdevdata.cxx +++ b/vcl/source/gdi/pdfextoutdevdata.cxx @@ -511,8 +511,8 @@ PDFExtOutDevData::PDFExtOutDevData( const OutputDevice& rOutDev ) : mbTransitionEffects ( sal_True ), mbUseLosslessCompression( sal_True ), mbReduceImageResolution ( sal_False ), - mbExportNDests ( sal_False ), mbExportHiddenSlides ( sal_False ), + mbExportNDests ( sal_False ), mnFormsFormat ( 0 ), mnPage ( -1 ), mpPageSyncData ( NULL ), commit 0fcf0fa0a6760d85e791bd4a63fe6a0a75e59ea5 Author: Pierre-André Jacquod <pjacq...@alumni.ethz.ch> Date: Sat Dec 24 00:16:59 2011 +0100 option to export hidden slides to pdf files This add the checkbox hidden pages to the PDF export general tab and if checked, export also to PDF the hidden slides diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx index 25dbbd1..cae790a 100644 --- a/filter/source/pdf/impdialog.cxx +++ b/filter/source/pdf/impdialog.cxx @@ -93,6 +93,7 @@ ImpPDFTabDialog::ImpPDFTabDialog( Window* pParent, mbExportFormFields( sal_True ), mbAllowDuplicateFieldNames( sal_False ), mbExportBookmarks( sal_True ), + mbExportHiddenSlides ( sal_False), mnOpenBookmarkLevels( -1 ), mbHideViewerToolbar( sal_False ), @@ -194,6 +195,8 @@ ImpPDFTabDialog::ImpPDFTabDialog( Window* pParent, mbExportNotes = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportNotes" ) ), sal_False ); mbExportBookmarks = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportBookmarks" ) ), sal_True ); + if ( mbIsPresentation ) + mbExportHiddenSlides = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportHiddenSlides" ) ), sal_False ); mnOpenBookmarkLevels = maConfigItem.ReadInt32( OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenBookmarkLevels" ) ), -1 ); mbUseTransitionEffects = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "UseTransitionEffects" ) ), sal_True ); mbIsSkipEmptyPages = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "IsSkipEmptyPages" ) ), sal_False ); @@ -333,6 +336,8 @@ Sequence< PropertyValue > ImpPDFTabDialog::GetFilterData() maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportNotes" ) ), mbExportNotes ); maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportBookmarks" ) ), mbExportBookmarks ); + if ( mbIsPresentation ) + maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportHiddenSlides" ) ), mbExportHiddenSlides ); maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "UseTransitionEffects" ) ), mbUseTransitionEffects ); maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "IsSkipEmptyPages" ) ), mbIsSkipEmptyPages ); maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "IsAddStream" ) ), mbAddStream ); @@ -450,6 +455,7 @@ ImpPDFTabGeneralPage::ImpPDFTabGeneralPage( Window* pParent, maCbExportBookmarks( this, PDFFilterResId( CB_EXPORTBOOKMARKS ) ), maCbExportNotes( this, PDFFilterResId( CB_EXPORTNOTES ) ), maCbExportNotesPages( this, PDFFilterResId( CB_EXPORTNOTESPAGES ) ), + maCbExportHiddenSlides( this, PDFFilterResId( CB_EXPORTHIDDENSLIDES ) ), maCbExportEmptyPages( this, PDFFilterResId( CB_EXPORTEMPTYPAGES ) ), maCbAddStream( this, PDFFilterResId( CB_ADDSTREAM ) ), maFtAddStreamDescription( this, PDFFilterResId( FT_ADDSTREAMDESCRIPTION ) ), @@ -561,6 +567,9 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( const ImpPDFTabDialog* paParent { maCbExportNotesPages.Show( sal_True ); maCbExportNotesPages.Check( paParent->mbExportNotesPages ); + maCbExportHiddenSlides.Show( sal_True); + maCbExportHiddenSlides.Check( paParent->mbExportHiddenSlides ); + } else { @@ -573,6 +582,8 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( const ImpPDFTabDialog* paParent maCbEmbedStandardFonts.SetPosPixel( Point( aPos.X(), aPos.Y() - nCheckBoxHeight ) ); maCbExportNotesPages.Show( sal_False ); maCbExportNotesPages.Check( sal_False ); + maCbExportHiddenSlides.Show( sal_False); + maCbExportHiddenSlides.Check( sal_False ); } maCbExportEmptyPages.Check( !paParent->mbIsSkipEmptyPages ); @@ -598,6 +609,8 @@ void ImpPDFTabGeneralPage::GetFilterConfigItem( ImpPDFTabDialog* paParent ) if ( mbIsPresentation ) paParent->mbExportNotesPages = maCbExportNotesPages.IsChecked(); paParent->mbExportBookmarks = maCbExportBookmarks.IsChecked(); + if ( mbIsPresentation ) + paParent->mbExportHiddenSlides = maCbExportHiddenSlides.IsChecked(); paParent->mbIsSkipEmptyPages = !maCbExportEmptyPages.IsChecked(); paParent->mbAddStream = maCbAddStream.IsVisible() && maCbAddStream.IsChecked(); diff --git a/filter/source/pdf/impdialog.hrc b/filter/source/pdf/impdialog.hrc index c8afb6d..b84d13f 100644 --- a/filter/source/pdf/impdialog.hrc +++ b/filter/source/pdf/impdialog.hrc @@ -89,6 +89,7 @@ #define CB_EXPORTNOTESPAGES 27 #define CB_EMBEDSTANDARDFONTS 28 #define FT_ADDSTREAMDESCRIPTION 29 +#define CB_EXPORTHIDDENSLIDES 30 #define FL_OLD_PAGES 51 #define RB_OLD_ALL 52 diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx index 77f88b3..b9b7158 100644 --- a/filter/source/pdf/impdialog.hxx +++ b/filter/source/pdf/impdialog.hxx @@ -111,6 +111,7 @@ protected: sal_Bool mbExportFormFields; sal_Bool mbAllowDuplicateFieldNames; sal_Bool mbExportBookmarks; + sal_Bool mbExportHiddenSlides; sal_Int32 mnOpenBookmarkLevels; sal_Bool mbHideViewerToolbar; @@ -205,6 +206,7 @@ class ImpPDFTabGeneralPage : public SfxTabPage CheckBox maCbAllowDuplicateFieldNames; CheckBox maCbExportBookmarks; + CheckBox maCbExportHiddenSlides; CheckBox maCbExportNotes; CheckBox maCbExportNotesPages; diff --git a/filter/source/pdf/impdialog.src b/filter/source/pdf/impdialog.src index 910bbac..006fa3a 100644 --- a/filter/source/pdf/impdialog.src +++ b/filter/source/pdf/impdialog.src @@ -260,10 +260,18 @@ TabPage RID_PDF_TAB_GENER TabStop = TRUE ; Text[ en-US ] = "Export ~notes pages"; }; + CheckBox CB_EXPORTHIDDENSLIDES + { + HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTHIDDENSLIDES"; + Pos = MAP_APPFONT ( 188 , 144 ) ; + Size = MAP_APPFONT ( 158 , 10 ) ; + TabStop = TRUE ; + Text[ en-US ] = "Export ~hidden pages"; + }; CheckBox CB_EXPORTEMPTYPAGES { HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EXPORTEMPTYPAGES"; - Pos = MAP_APPFONT ( 188 , 144 ) ; + Pos = MAP_APPFONT ( 188 , 157 ) ; Size = MAP_APPFONT ( 158 , 16 ) ; TabStop = TRUE ; WordBreak = TRUE ; @@ -272,7 +280,7 @@ TabPage RID_PDF_TAB_GENER CheckBox CB_EMBEDSTANDARDFONTS { HelpID = "filter:CheckBox:RID_PDF_TAB_GENER:CB_EMBEDSTANDARDFONTS"; - Pos = MAP_APPFONT ( 188 , 163 ) ; + Pos = MAP_APPFONT ( 188 , 176 ) ; Size = MAP_APPFONT ( 158 , 10 ) ; TabStop = TRUE ; Text[ en-US ] = "E~mbed standard fonts"; diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx index cd52899..0057a17 100644 --- a/filter/source/pdf/pdfexport.cxx +++ b/filter/source/pdf/pdfexport.cxx @@ -113,6 +113,7 @@ PDFExport::PDFExport( const Reference< XComponent >& rxSrcDoc, //already used for i59651 (PDF/A-1) mbUseTransitionEffects ( sal_True ), mbExportBookmarks ( sal_True ), + mbExportHiddenSlides ( sal_False ), mnOpenBookmarkLevels ( -1 ), mbUseLosslessCompression ( sal_False ), mbReduceImageResolution ( sal_False ), @@ -550,6 +551,8 @@ sal_Bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue rFilterData[ nData ].Value >>= mbExportBmkToDest; else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportBookmarks" ) ) ) rFilterData[ nData ].Value >>= mbExportBookmarks; + else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportHiddenSlides" ) ) ) + rFilterData[ nData ].Value >>= mbExportHiddenSlides; else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenBookmarkLevels" ) ) ) rFilterData[ nData ].Value >>= mnOpenBookmarkLevels; } @@ -809,6 +812,7 @@ sal_Bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue pPDFExtOutDevData->SetFormsFormat( mnFormsFormat ); pPDFExtOutDevData->SetIsExportFormFields( mbExportFormFields ); pPDFExtOutDevData->SetIsExportBookmarks( mbExportBookmarks ); + pPDFExtOutDevData->SetIsExportHiddenSlides( mbExportHiddenSlides ); pPDFExtOutDevData->SetIsLosslessCompression( mbUseLosslessCompression ); pPDFExtOutDevData->SetIsReduceImageResolution( mbReduceImageResolution ); pPDFExtOutDevData->SetIsExportNamedDestinations( mbExportBmkToDest ); diff --git a/filter/source/pdf/pdfexport.hxx b/filter/source/pdf/pdfexport.hxx index 12355d1..3374d0a 100644 --- a/filter/source/pdf/pdfexport.hxx +++ b/filter/source/pdf/pdfexport.hxx @@ -66,6 +66,7 @@ private: sal_Bool mbEmbedStandardFonts; sal_Bool mbUseTransitionEffects; sal_Bool mbExportBookmarks; + sal_Bool mbExportHiddenSlides; sal_Int32 mnOpenBookmarkLevels; sal_Bool mbUseLosslessCompression; diff --git a/filter/source/pdf/pdffilter.cxx b/filter/source/pdf/pdffilter.cxx index fc263d3..7ee1655 100644 --- a/filter/source/pdf/pdffilter.cxx +++ b/filter/source/pdf/pdffilter.cxx @@ -114,6 +114,7 @@ sal_Bool PDFFilter::implExport( const Sequence< PropertyValue >& rDescriptor ) aCfgItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportBookmarksToPDFDestination" ) ), sal_False ); aCfgItem.ReadBool( String( RTL_CONSTASCII_USTRINGPARAM( "ExportBookmarks" ) ), sal_True ); + aCfgItem.ReadBool( String( RTL_CONSTASCII_USTRINGPARAM( "ExportHiddenSlides" ) ), sal_False ); aCfgItem.ReadInt32( String( RTL_CONSTASCII_USTRINGPARAM( "OpenBookmarkLevels" ) ), -1 ); aFilterData = aCfgItem.GetFilterData(); } diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 1f75de0..6dfb029 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -1824,7 +1824,8 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r { vcl::PDFExtOutDevData* pPDFExtOutDevData = PTR_CAST( vcl::PDFExtOutDevData, pOut->GetExtOutDevData() ); - if ( !( (mpDoc->GetSdPage((sal_Int16) nPageNumber-1, PK_STANDARD))->IsExcluded() ) ) + if ( !( (mpDoc->GetSdPage((sal_Int16) nPageNumber-1, PK_STANDARD))->IsExcluded() ) || + pPDFExtOutDevData->GetIsExportHiddenSlides() ) { ::sd::ClientView* pView = new ::sd::ClientView( mpDocShell, pOut, NULL ); Rectangle aVisArea = Rectangle( Point(), mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1, ePageKind )->GetSize() ); diff --git a/vcl/inc/vcl/pdfextoutdevdata.hxx b/vcl/inc/vcl/pdfextoutdevdata.hxx index ab9f44e..c1be576 100644 --- a/vcl/inc/vcl/pdfextoutdevdata.hxx +++ b/vcl/inc/vcl/pdfextoutdevdata.hxx @@ -92,6 +92,7 @@ class VCL_DLLPUBLIC PDFExtOutDevData : public ExtOutDevData sal_Bool mbReduceImageResolution; sal_Bool mbExportFormFields; sal_Bool mbExportBookmarks; + sal_Bool mbExportHiddenSlides; sal_Bool mbExportNDests; //i56629 sal_Int32 mnFormsFormat; sal_Int32 mnPage; @@ -136,6 +137,9 @@ public : sal_Bool GetIsExportBookmarks() const; void SetIsExportBookmarks( const sal_Bool bExportBookmarks ); + sal_Bool GetIsExportHiddenSlides() const; + void SetIsExportHiddenSlides( const sal_Bool bExportHiddenSlides ); + sal_Bool GetIsExportNamedDestinations() const; //i56629 void SetIsExportNamedDestinations( const sal_Bool bExportNDests ); //i56629 diff --git a/vcl/source/gdi/pdfextoutdevdata.cxx b/vcl/source/gdi/pdfextoutdevdata.cxx index d742bee..a2d856d 100644 --- a/vcl/source/gdi/pdfextoutdevdata.cxx +++ b/vcl/source/gdi/pdfextoutdevdata.cxx @@ -512,6 +512,7 @@ PDFExtOutDevData::PDFExtOutDevData( const OutputDevice& rOutDev ) : mbUseLosslessCompression( sal_True ), mbReduceImageResolution ( sal_False ), mbExportNDests ( sal_False ), + mbExportHiddenSlides ( sal_False ), mnFormsFormat ( 0 ), mnPage ( -1 ), mpPageSyncData ( NULL ), @@ -614,6 +615,14 @@ void PDFExtOutDevData::SetIsExportBookmarks( const sal_Bool bExportBookmarks ) { mbExportBookmarks = bExportBookmarks; } +sal_Bool PDFExtOutDevData::GetIsExportHiddenSlides() const +{ + return mbExportHiddenSlides; +} +void PDFExtOutDevData::SetIsExportHiddenSlides( const sal_Bool bExportHiddenSlides ) +{ + mbExportHiddenSlides = bExportHiddenSlides; +} std::vector< PDFExtOutDevBookmarkEntry >& PDFExtOutDevData::GetBookmarks() { return maBookmarks; commit fe55c420b8b195e9ab8bf814f9039a06638fc2d1 Author: Pierre-André Jacquod <pjacq...@alumni.ethz.ch> Date: Thu Dec 22 23:12:40 2011 +0100 fdo43033 do not export to PDF hidden slides diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 1a49b7f..1f75de0 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -1824,321 +1824,324 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r { vcl::PDFExtOutDevData* pPDFExtOutDevData = PTR_CAST( vcl::PDFExtOutDevData, pOut->GetExtOutDevData() ); - ::sd::ClientView* pView = new ::sd::ClientView( mpDocShell, pOut, NULL ); - Rectangle aVisArea = Rectangle( Point(), mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1, ePageKind )->GetSize() ); - Region aRegion( aVisArea ); - Point aOrigin; - - ::sd::ViewShell* pOldViewSh = mpDocShell->GetViewShell(); - ::sd::View* pOldSdView = pOldViewSh ? pOldViewSh->GetView() : NULL; + if ( !( (mpDoc->GetSdPage((sal_Int16) nPageNumber-1, PK_STANDARD))->IsExcluded() ) ) + { + ::sd::ClientView* pView = new ::sd::ClientView( mpDocShell, pOut, NULL ); + Rectangle aVisArea = Rectangle( Point(), mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1, ePageKind )->GetSize() ); + Region aRegion( aVisArea ); + Point aOrigin; - if ( pOldSdView ) - pOldSdView->SdrEndTextEdit(); + ::sd::ViewShell* pOldViewSh = mpDocShell->GetViewShell(); + ::sd::View* pOldSdView = pOldViewSh ? pOldViewSh->GetView() : NULL; - pView->SetHlplVisible( sal_False ); - pView->SetGridVisible( sal_False ); - pView->SetBordVisible( sal_False ); - pView->SetPageVisible( sal_False ); - pView->SetGlueVisible( sal_False ); + if ( pOldSdView ) + pOldSdView->SdrEndTextEdit(); - pOut->SetMapMode( MAP_100TH_MM ); - pOut->IntersectClipRegion( aVisArea ); + pView->SetHlplVisible( sal_False ); + pView->SetGridVisible( sal_False ); + pView->SetBordVisible( sal_False ); + pView->SetPageVisible( sal_False ); + pView->SetGlueVisible( sal_False ); + pOut->SetMapMode( MAP_100TH_MM ); + pOut->IntersectClipRegion( aVisArea ); - uno::Reference< frame::XModel > xModel; - rSelection >>= xModel; - if( xModel == mpDocShell->GetModel() ) - { - pView->ShowSdrPage( mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1, ePageKind )); - SdrPageView* pPV = pView->GetSdrPageView(); + uno::Reference< frame::XModel > xModel; + rSelection >>= xModel; - if( pOldSdView ) + if( xModel == mpDocShell->GetModel() ) { - SdrPageView* pOldPV = pOldSdView->GetSdrPageView(); - if( pPV && pOldPV ) + pView->ShowSdrPage( mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1, ePageKind )); + SdrPageView* pPV = pView->GetSdrPageView(); + + if( pOldSdView ) { - pPV->SetVisibleLayers( pOldPV->GetVisibleLayers() ); - pPV->SetPrintableLayers( pOldPV->GetPrintableLayers() ); + SdrPageView* pOldPV = pOldSdView->GetSdrPageView(); + if( pPV && pOldPV ) + { + pPV->SetVisibleLayers( pOldPV->GetVisibleLayers() ); + pPV->SetPrintableLayers( pOldPV->GetPrintableLayers() ); + } } - } - ImplRenderPaintProc aImplRenderPaintProc( mpDoc->GetLayerAdmin(), - pPV, pPDFExtOutDevData ); + ImplRenderPaintProc aImplRenderPaintProc( mpDoc->GetLayerAdmin(), + pPV, pPDFExtOutDevData ); - // background color for outliner :o - SdPage* pPage = (SdPage*)pPV->GetPage(); - if( pPage ) - { - SdrOutliner& rOutl = mpDoc->GetDrawOutliner( NULL ); - bool bScreenDisplay(true); - - if(bScreenDisplay && pOut && OUTDEV_PRINTER == pOut->GetOutDevType()) + // background color for outliner :o + SdPage* pPage = (SdPage*)pPV->GetPage(); + if( pPage ) { - // #i75566# printing; suppress AutoColor BackgroundColor generation - // for visibility reasons by giving GetPageBackgroundColor() - // the needed hint - bScreenDisplay = false; - } + SdrOutliner& rOutl = mpDoc->GetDrawOutliner( NULL ); + bool bScreenDisplay(true); - if(bScreenDisplay && pOut && pOut->GetPDFWriter()) - { - // #i75566# PDF export; suppress AutoColor BackgroundColor generation (see above) - bScreenDisplay = false; - } + if(bScreenDisplay && pOut && OUTDEV_PRINTER == pOut->GetOutDevType()) + { + // #i75566# printing; suppress AutoColor BackgroundColor generation + // for visibility reasons by giving GetPageBackgroundColor() + // the needed hint + bScreenDisplay = false; + } - // #i75566# Name change GetBackgroundColor -> GetPageBackgroundColor and - // hint value if screen display. Only then the AutoColor mechanisms shall be applied - rOutl.SetBackgroundColor( pPage->GetPageBackgroundColor( pPV, bScreenDisplay ) ); - } - pView->SdrPaintView::CompleteRedraw( pOut, aRegion, &aImplRenderPaintProc ); + if(bScreenDisplay && pOut && pOut->GetPDFWriter()) + { + // #i75566# PDF export; suppress AutoColor BackgroundColor generation (see above) + bScreenDisplay = false; + } - if ( pPDFExtOutDevData ) - { - try + // #i75566# Name change GetBackgroundColor -> GetPageBackgroundColor and + // hint value if screen display. Only then the AutoColor mechanisms shall be applied + rOutl.SetBackgroundColor( pPage->GetPageBackgroundColor( pPV, bScreenDisplay ) ); + } + pView->SdrPaintView::CompleteRedraw( pOut, aRegion, &aImplRenderPaintProc ); + + if ( pPDFExtOutDevData ) { - uno::Any aAny; - uno::Reference< drawing::XDrawPage > xPage( uno::Reference< drawing::XDrawPage >::query( pPage->getUnoPage() ) ); - if ( xPage.is() ) + try { - if ( pPDFExtOutDevData->GetIsExportNotes() ) - ImplPDFExportComments( xPage, *pPDFExtOutDevData ); - uno::Reference< beans::XPropertySet > xPagePropSet( xPage, uno::UNO_QUERY ); - if( xPagePropSet.is() ) + uno::Any aAny; + uno::Reference< drawing::XDrawPage > xPage( uno::Reference< drawing::XDrawPage >::query( pPage->getUnoPage() ) ); + if ( xPage.is() ) { - // exporting object interactions to pdf - - // if necessary, the master page interactions will be exported first - sal_Bool bIsBackgroundObjectsVisible = sal_False; // #i39428# IsBackgroundObjectsVisible not available for Draw - const rtl::OUString sIsBackgroundObjectsVisible( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) ); - if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sIsBackgroundObjectsVisible ) ) - xPagePropSet->getPropertyValue( sIsBackgroundObjectsVisible ) >>= bIsBackgroundObjectsVisible; - if ( mbImpressDoc && bIsBackgroundObjectsVisible && !pPDFExtOutDevData->GetIsExportNotesPages() ) + if ( pPDFExtOutDevData->GetIsExportNotes() ) + ImplPDFExportComments( xPage, *pPDFExtOutDevData ); + uno::Reference< beans::XPropertySet > xPagePropSet( xPage, uno::UNO_QUERY ); + if( xPagePropSet.is() ) { - uno::Reference< drawing::XMasterPageTarget > xMasterPageTarget( xPage, uno::UNO_QUERY ); - if ( xMasterPageTarget.is() ) + // exporting object interactions to pdf + + // if necessary, the master page interactions will be exported first + sal_Bool bIsBackgroundObjectsVisible = sal_False; // #i39428# IsBackgroundObjectsVisible not available for Draw + const rtl::OUString sIsBackgroundObjectsVisible( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) ); + if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sIsBackgroundObjectsVisible ) ) + xPagePropSet->getPropertyValue( sIsBackgroundObjectsVisible ) >>= bIsBackgroundObjectsVisible; + if ( mbImpressDoc && bIsBackgroundObjectsVisible && !pPDFExtOutDevData->GetIsExportNotesPages() ) { - uno::Reference< drawing::XDrawPage > xMasterPage = xMasterPageTarget->getMasterPage(); - if ( xMasterPage.is() ) + uno::Reference< drawing::XMasterPageTarget > xMasterPageTarget( xPage, uno::UNO_QUERY ); + if ( xMasterPageTarget.is() ) { - uno::Reference< drawing::XShapes> xShapes( xMasterPage, uno::UNO_QUERY ); - sal_Int32 i, nCount = xShapes->getCount(); - for ( i = 0; i < nCount; i++ ) + uno::Reference< drawing::XDrawPage > xMasterPage = xMasterPageTarget->getMasterPage(); + if ( xMasterPage.is() ) { - aAny = xShapes->getByIndex( i ); - uno::Reference< drawing::XShape > xShape; - if ( aAny >>= xShape ) - ImplPDFExportShapeInteraction( xShape, *mpDoc, *pPDFExtOutDevData ); + uno::Reference< drawing::XShapes> xShapes( xMasterPage, uno::UNO_QUERY ); + sal_Int32 i, nCount = xShapes->getCount(); + for ( i = 0; i < nCount; i++ ) + { + aAny = xShapes->getByIndex( i ); + uno::Reference< drawing::XShape > xShape; + if ( aAny >>= xShape ) + ImplPDFExportShapeInteraction( xShape, *mpDoc, *pPDFExtOutDevData ); + } } } } - } - // exporting slide page object interactions - uno::Reference< drawing::XShapes> xShapes( xPage, uno::UNO_QUERY ); - sal_Int32 i, nCount = xShapes->getCount(); - for ( i = 0; i < nCount; i++ ) - { - aAny = xShapes->getByIndex( i ); - uno::Reference< drawing::XShape > xShape; - if ( aAny >>= xShape ) - ImplPDFExportShapeInteraction( xShape, *mpDoc, *pPDFExtOutDevData ); - } + // exporting slide page object interactions + uno::Reference< drawing::XShapes> xShapes( xPage, uno::UNO_QUERY ); + sal_Int32 i, nCount = xShapes->getCount(); + for ( i = 0; i < nCount; i++ ) + { + aAny = xShapes->getByIndex( i ); + uno::Reference< drawing::XShape > xShape; + if ( aAny >>= xShape ) + ImplPDFExportShapeInteraction( xShape, *mpDoc, *pPDFExtOutDevData ); + } - // exporting transition effects to pdf - if ( mbImpressDoc && !pPDFExtOutDevData->GetIsExportNotesPages() && pPDFExtOutDevData->GetIsExportTransitionEffects() ) - { - const rtl::OUString sEffect( RTL_CONSTASCII_USTRINGPARAM( "Effect" ) ); - const rtl::OUString sSpeed ( RTL_CONSTASCII_USTRINGPARAM( "Speed" ) ); - sal_Int32 nTime = 800; - presentation::AnimationSpeed aAs; - if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) ) + // exporting transition effects to pdf + if ( mbImpressDoc && !pPDFExtOutDevData->GetIsExportNotesPages() && pPDFExtOutDevData->GetIsExportTransitionEffects() ) { - aAny = xPagePropSet->getPropertyValue( sSpeed ); - if ( aAny >>= aAs ) + const rtl::OUString sEffect( RTL_CONSTASCII_USTRINGPARAM( "Effect" ) ); + const rtl::OUString sSpeed ( RTL_CONSTASCII_USTRINGPARAM( "Speed" ) ); + sal_Int32 nTime = 800; + presentation::AnimationSpeed aAs; + if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) ) { - switch( aAs ) + aAny = xPagePropSet->getPropertyValue( sSpeed ); + if ( aAny >>= aAs ) { - case presentation::AnimationSpeed_SLOW : nTime = 1500; break; - case presentation::AnimationSpeed_FAST : nTime = 300; break; - default: - case presentation::AnimationSpeed_MEDIUM : nTime = 800; + switch( aAs ) + { + case presentation::AnimationSpeed_SLOW : nTime = 1500; break; + case presentation::AnimationSpeed_FAST : nTime = 300; break; + default: + case presentation::AnimationSpeed_MEDIUM : nTime = 800; + } } } - } - presentation::FadeEffect eFe; - vcl::PDFWriter::PageTransition eType = vcl::PDFWriter::Regular; - if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) ) - { - aAny = xPagePropSet->getPropertyValue( sEffect ); - if ( aAny >>= eFe ) + presentation::FadeEffect eFe; + vcl::PDFWriter::PageTransition eType = vcl::PDFWriter::Regular; + if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) ) { - switch( eFe ) + aAny = xPagePropSet->getPropertyValue( sEffect ); + if ( aAny >>= eFe ) { - case presentation::FadeEffect_HORIZONTAL_LINES : - case presentation::FadeEffect_HORIZONTAL_CHECKERBOARD : - case presentation::FadeEffect_HORIZONTAL_STRIPES : eType = vcl::PDFWriter::BlindsHorizontal; break; - - case presentation::FadeEffect_VERTICAL_LINES : - case presentation::FadeEffect_VERTICAL_CHECKERBOARD : - case presentation::FadeEffect_VERTICAL_STRIPES : eType = vcl::PDFWriter::BlindsVertical; break; - - case presentation::FadeEffect_UNCOVER_TO_RIGHT : - case presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT : - case presentation::FadeEffect_ROLL_FROM_LEFT : - case presentation::FadeEffect_FADE_FROM_UPPERLEFT : - case presentation::FadeEffect_MOVE_FROM_UPPERLEFT : - case presentation::FadeEffect_FADE_FROM_LEFT : - case presentation::FadeEffect_MOVE_FROM_LEFT : eType = vcl::PDFWriter::WipeLeftToRight; break; - - case presentation::FadeEffect_UNCOVER_TO_BOTTOM : - case presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT : - case presentation::FadeEffect_ROLL_FROM_TOP : - case presentation::FadeEffect_FADE_FROM_UPPERRIGHT : - case presentation::FadeEffect_MOVE_FROM_UPPERRIGHT : - case presentation::FadeEffect_FADE_FROM_TOP : - case presentation::FadeEffect_MOVE_FROM_TOP : eType = vcl::PDFWriter::WipeTopToBottom; break; - - case presentation::FadeEffect_UNCOVER_TO_LEFT : - case presentation::FadeEffect_UNCOVER_TO_LOWERLEFT : - case presentation::FadeEffect_ROLL_FROM_RIGHT : - - case presentation::FadeEffect_FADE_FROM_LOWERRIGHT : - case presentation::FadeEffect_MOVE_FROM_LOWERRIGHT : - case presentation::FadeEffect_FADE_FROM_RIGHT : - case presentation::FadeEffect_MOVE_FROM_RIGHT : eType = vcl::PDFWriter::WipeRightToLeft; break; - - case presentation::FadeEffect_UNCOVER_TO_TOP : - case presentation::FadeEffect_UNCOVER_TO_UPPERLEFT : - case presentation::FadeEffect_ROLL_FROM_BOTTOM : - case presentation::FadeEffect_FADE_FROM_LOWERLEFT : - case presentation::FadeEffect_MOVE_FROM_LOWERLEFT : - case presentation::FadeEffect_FADE_FROM_BOTTOM : - case presentation::FadeEffect_MOVE_FROM_BOTTOM : eType = vcl::PDFWriter::WipeBottomToTop; break; - - case presentation::FadeEffect_OPEN_VERTICAL : eType = vcl::PDFWriter::SplitHorizontalInward; break; - case presentation::FadeEffect_CLOSE_HORIZONTAL : eType = vcl::PDFWriter::SplitHorizontalOutward; break; - - case presentation::FadeEffect_OPEN_HORIZONTAL : eType = vcl::PDFWriter::SplitVerticalInward; break; - case presentation::FadeEffect_CLOSE_VERTICAL : eType = vcl::PDFWriter::SplitVerticalOutward; break; - - case presentation::FadeEffect_FADE_TO_CENTER : eType = vcl::PDFWriter::BoxInward; break; - case presentation::FadeEffect_FADE_FROM_CENTER : eType = vcl::PDFWriter::BoxOutward; break; - - case presentation::FadeEffect_NONE : eType = vcl::PDFWriter::Regular; break; - - case presentation::FadeEffect_RANDOM : - case presentation::FadeEffect_DISSOLVE : - default: eType = vcl::PDFWriter::Dissolve; break; + switch( eFe ) + { + case presentation::FadeEffect_HORIZONTAL_LINES : + case presentation::FadeEffect_HORIZONTAL_CHECKERBOARD : + case presentation::FadeEffect_HORIZONTAL_STRIPES : eType = vcl::PDFWriter::BlindsHorizontal; break; + + case presentation::FadeEffect_VERTICAL_LINES : + case presentation::FadeEffect_VERTICAL_CHECKERBOARD : + case presentation::FadeEffect_VERTICAL_STRIPES : eType = vcl::PDFWriter::BlindsVertical; break; + + case presentation::FadeEffect_UNCOVER_TO_RIGHT : + case presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT : + case presentation::FadeEffect_ROLL_FROM_LEFT : + case presentation::FadeEffect_FADE_FROM_UPPERLEFT : + case presentation::FadeEffect_MOVE_FROM_UPPERLEFT : + case presentation::FadeEffect_FADE_FROM_LEFT : + case presentation::FadeEffect_MOVE_FROM_LEFT : eType = vcl::PDFWriter::WipeLeftToRight; break; + + case presentation::FadeEffect_UNCOVER_TO_BOTTOM : + case presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT : + case presentation::FadeEffect_ROLL_FROM_TOP : + case presentation::FadeEffect_FADE_FROM_UPPERRIGHT : + case presentation::FadeEffect_MOVE_FROM_UPPERRIGHT : + case presentation::FadeEffect_FADE_FROM_TOP : + case presentation::FadeEffect_MOVE_FROM_TOP : eType = vcl::PDFWriter::WipeTopToBottom; break; + + case presentation::FadeEffect_UNCOVER_TO_LEFT : + case presentation::FadeEffect_UNCOVER_TO_LOWERLEFT : + case presentation::FadeEffect_ROLL_FROM_RIGHT : + + case presentation::FadeEffect_FADE_FROM_LOWERRIGHT : + case presentation::FadeEffect_MOVE_FROM_LOWERRIGHT : + case presentation::FadeEffect_FADE_FROM_RIGHT : + case presentation::FadeEffect_MOVE_FROM_RIGHT : eType = vcl::PDFWriter::WipeRightToLeft; break; + + case presentation::FadeEffect_UNCOVER_TO_TOP : + case presentation::FadeEffect_UNCOVER_TO_UPPERLEFT : + case presentation::FadeEffect_ROLL_FROM_BOTTOM : + case presentation::FadeEffect_FADE_FROM_LOWERLEFT : + case presentation::FadeEffect_MOVE_FROM_LOWERLEFT : + case presentation::FadeEffect_FADE_FROM_BOTTOM : + case presentation::FadeEffect_MOVE_FROM_BOTTOM : eType = vcl::PDFWriter::WipeBottomToTop; break; + + case presentation::FadeEffect_OPEN_VERTICAL : eType = vcl::PDFWriter::SplitHorizontalInward; break; + case presentation::FadeEffect_CLOSE_HORIZONTAL : eType = vcl::PDFWriter::SplitHorizontalOutward; break; + + case presentation::FadeEffect_OPEN_HORIZONTAL : eType = vcl::PDFWriter::SplitVerticalInward; break; + case presentation::FadeEffect_CLOSE_VERTICAL : eType = vcl::PDFWriter::SplitVerticalOutward; break; + + case presentation::FadeEffect_FADE_TO_CENTER : eType = vcl::PDFWriter::BoxInward; break; + case presentation::FadeEffect_FADE_FROM_CENTER : eType = vcl::PDFWriter::BoxOutward; break; + + case presentation::FadeEffect_NONE : eType = vcl::PDFWriter::Regular; break; + + case presentation::FadeEffect_RANDOM : + case presentation::FadeEffect_DISSOLVE : + default: eType = vcl::PDFWriter::Dissolve; break; + } } } - } - if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) || - xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) ) - { - pPDFExtOutDevData->SetPageTransition( eType, nTime, -1 ); + if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) || + xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) ) + { + pPDFExtOutDevData->SetPageTransition( eType, nTime, -1 ); + } } } } - } - Size aPageSize( mpDoc->GetSdPage( 0, PK_STANDARD )->GetSize() ); - Point aPoint( 0, 0 ); - Rectangle aPageRect( aPoint, aPageSize ); + Size aPageSize( mpDoc->GetSdPage( 0, PK_STANDARD )->GetSize() ); + Point aPoint( 0, 0 ); + Rectangle aPageRect( aPoint, aPageSize ); - // resolving links found in this page by the method ImpEditEngine::Paint - std::vector< vcl::PDFExtOutDevBookmarkEntry >& rBookmarks = pPDFExtOutDevData->GetBookmarks(); - std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIBeg = rBookmarks.begin(); - std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIEnd = rBookmarks.end(); - while ( aIBeg != aIEnd ) - { - sal_Int32 nPage = ImplPDFGetBookmarkPage( aIBeg->aBookmark, *mpDoc ); - if ( nPage != -1 ) + // resolving links found in this page by the method ImpEditEngine::Paint + std::vector< vcl::PDFExtOutDevBookmarkEntry >& rBookmarks = pPDFExtOutDevData->GetBookmarks(); + std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIBeg = rBookmarks.begin(); + std::vector< vcl::PDFExtOutDevBookmarkEntry >::iterator aIEnd = rBookmarks.end(); + while ( aIBeg != aIEnd ) { - if ( aIBeg->nLinkId != -1 ) - pPDFExtOutDevData->SetLinkDest( aIBeg->nLinkId, pPDFExtOutDevData->CreateDest( aPageRect, nPage, vcl::PDFWriter::FitRectangle ) ); + sal_Int32 nPage = ImplPDFGetBookmarkPage( aIBeg->aBookmark, *mpDoc ); + if ( nPage != -1 ) + { + if ( aIBeg->nLinkId != -1 ) + pPDFExtOutDevData->SetLinkDest( aIBeg->nLinkId, pPDFExtOutDevData->CreateDest( aPageRect, nPage, vcl::PDFWriter::FitRectangle ) ); + else + pPDFExtOutDevData->DescribeRegisteredDest( aIBeg->nDestId, aPageRect, nPage, vcl::PDFWriter::FitRectangle ); + } else - pPDFExtOutDevData->DescribeRegisteredDest( aIBeg->nDestId, aPageRect, nPage, vcl::PDFWriter::FitRectangle ); + pPDFExtOutDevData->SetLinkURL( aIBeg->nLinkId, aIBeg->aBookmark ); + ++aIBeg; } - else - pPDFExtOutDevData->SetLinkURL( aIBeg->nLinkId, aIBeg->aBookmark ); - ++aIBeg; - } - rBookmarks.clear(); - //---> #i56629, #i40318 - //get the page name, will be used as outline element in PDF bookmark pane - String aPageName = mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1 , PK_STANDARD )->GetName(); - if( aPageName.Len() > 0 ) - { - // insert the bookmark to this page into the NamedDestinations - if( pPDFExtOutDevData->GetIsExportNamedDestinations() ) - pPDFExtOutDevData->CreateNamedDest( aPageName, aPageRect, nPageNumber - 1 ); - // - // add the name to the outline, (almost) same code as in sc/source/ui/unoobj/docuno.cxx - // issue #i40318. - // - if( pPDFExtOutDevData->GetIsExportBookmarks() ) + rBookmarks.clear(); + //---> #i56629, #i40318 + //get the page name, will be used as outline element in PDF bookmark pane + String aPageName = mpDoc->GetSdPage( (sal_uInt16)nPageNumber - 1 , PK_STANDARD )->GetName(); + if( aPageName.Len() > 0 ) { - // Destination Export - const sal_Int32 nDestId = - pPDFExtOutDevData->CreateDest( aPageRect , nPageNumber - 1 ); + // insert the bookmark to this page into the NamedDestinations + if( pPDFExtOutDevData->GetIsExportNamedDestinations() ) + pPDFExtOutDevData->CreateNamedDest( aPageName, aPageRect, nPageNumber - 1 ); + // + // add the name to the outline, (almost) same code as in sc/source/ui/unoobj/docuno.cxx + // issue #i40318. + // + if( pPDFExtOutDevData->GetIsExportBookmarks() ) + { + // Destination Export + const sal_Int32 nDestId = + pPDFExtOutDevData->CreateDest( aPageRect , nPageNumber - 1 ); - // Create a new outline item: - pPDFExtOutDevData->CreateOutlineItem( -1 , aPageName, nDestId ); + // Create a new outline item: + pPDFExtOutDevData->CreateOutlineItem( -1 , aPageName, nDestId ); + } } + //<--- #i56629, #i40318 + } + catch (const uno::Exception&) + { } - //<--- #i56629, #i40318 - } - catch (const uno::Exception&) - { - } + } } - } - else - { - uno::Reference< drawing::XShapes > xShapes; - rSelection >>= xShapes; - - if( xShapes.is() && xShapes->getCount() ) + else { - SdrPageView* pPV = NULL; + uno::Reference< drawing::XShapes > xShapes; + rSelection >>= xShapes; - ImplRenderPaintProc aImplRenderPaintProc( mpDoc->GetLayerAdmin(), - pOldSdView ? pOldSdView->GetSdrPageView() : NULL, pPDFExtOutDevData ); - - for( sal_uInt32 i = 0, nCount = xShapes->getCount(); i < nCount; i++ ) + if( xShapes.is() && xShapes->getCount() ) { - uno::Reference< drawing::XShape > xShape; - xShapes->getByIndex( i ) >>= xShape; + SdrPageView* pPV = NULL; + + ImplRenderPaintProc aImplRenderPaintProc( mpDoc->GetLayerAdmin(), + pOldSdView ? pOldSdView->GetSdrPageView() : NULL, pPDFExtOutDevData ); - if( xShape.is() ) + for( sal_uInt32 i = 0, nCount = xShapes->getCount(); i < nCount; i++ ) { - SvxShape* pShape = SvxShape::getImplementation( xShape ); + uno::Reference< drawing::XShape > xShape; + xShapes->getByIndex( i ) >>= xShape; - if( pShape ) + if( xShape.is() ) { - SdrObject* pObj = pShape->GetSdrObject(); - if( pObj && pObj->GetPage() - && aImplRenderPaintProc.IsVisible( pObj ) - && aImplRenderPaintProc.IsPrintable( pObj ) ) + SvxShape* pShape = SvxShape::getImplementation( xShape ); + + if( pShape ) { - if( !pPV ) - pPV = pView->ShowSdrPage( pObj->GetPage() ); + SdrObject* pObj = pShape->GetSdrObject(); + if( pObj && pObj->GetPage() + && aImplRenderPaintProc.IsVisible( pObj ) + && aImplRenderPaintProc.IsPrintable( pObj ) ) + { + if( !pPV ) + pPV = pView->ShowSdrPage( pObj->GetPage() ); - if( pPV ) - pView->MarkObj( pObj, pPV ); + if( pPV ) + pView->MarkObj( pObj, pPV ); + } } } } + pView->DrawMarkedObj(*pOut); } - pView->DrawMarkedObj(*pOut); } - } - delete pView; + delete pView; + } } } } commit a765ad12591ebd33279f17a02349197953197a57 Author: Pierre-André Jacquod <pjacq...@alumni.ethz.ch> Date: Thu Dec 15 19:29:17 2011 +0100 fdo42286 better solution: extend and shrink end of row if needed diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx index 3d60554..3cc4146 100644 --- a/sc/source/core/tool/dbdata.cxx +++ b/sc/source/core/tool/dbdata.cxx @@ -544,10 +544,8 @@ void ScDBData::UpdateReference(ScDocument* pDoc, UpdateRefMode eUpdateRefMode, void ScDBData::ExtendDataArea(ScDocument* pDoc) { // Extend the DB area to include data rows immediately below. - SCCOL nCol1a = nStartCol, nCol2a = nEndCol; - SCROW nRow1a = nStartRow, nRow2a = nEndRow; - pDoc->GetDataArea(nTable, nCol1a, nRow1a, nCol2a, nRow2a, true, true); - nEndRow = nRow2a; + // or shrink it if all cells are empty + pDoc->GetDataArea(nTable, nStartCol, nStartRow, nEndCol, nEndRow, false, true); } namespace {
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits