diff options
-rw-r--r-- | sc/source/ui/inc/preview.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/preview.cxx | 10 | ||||
-rw-r--r-- | sc/source/ui/view/tabvwsh4.cxx | 5 |
3 files changed, 17 insertions, 0 deletions
diff --git a/sc/source/ui/inc/preview.hxx b/sc/source/ui/inc/preview.hxx index 87d15dcdaf86..41f62c2ce9fc 100644 --- a/sc/source/ui/inc/preview.hxx +++ b/sc/source/ui/inc/preview.hxx @@ -63,6 +63,8 @@ private: ScPreviewLocationData* pLocationData; // stores table layout for accessibility API FmFormView* pDrawView; + SCTAB nCurTab; + // intern: BOOL bInPaint; BOOL bInGetState; diff --git a/sc/source/ui/view/preview.cxx b/sc/source/ui/view/preview.cxx index 83fdab9000e6..3ab6dc140484 100644 --- a/sc/source/ui/view/preview.cxx +++ b/sc/source/ui/view/preview.cxx @@ -109,6 +109,7 @@ ScPreview::ScPreview( Window* pParent, ScDocShell* pDocSh, ScPreviewShell* pView bLocationValid( FALSE ), pLocationData( NULL ), pDrawView( NULL ), + nCurTab ( ScDocShell::GetCurTab() ), bInPaint( FALSE ), bInGetState( FALSE ), pDocShell( pDocSh ), @@ -249,8 +250,17 @@ void ScPreview::CalcPages( SCTAB /*nToWhichTab*/ ) // but always all sheets are used (there is no selected sheet) ScPrintOptions aOptions = SC_MOD()->GetPrintOptions(); + ScMarkData aMarkData; + aMarkData.SelectTable( nCurTab, TRUE ); + for (SCTAB i=nStart; i<nAnz; i++) { + if (!aOptions.GetAllSheets() && !aMarkData.GetTableSelect( i )) { + nPages[i] = 0; + nFirstAttr[i] = 0; + continue; + } + long nAttrPage = i > 0 ? nFirstAttr[i-1] : 1; long nThisStart = nTotalPages; diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index ed09ec85ee8c..55f6e9c2f796 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -1189,8 +1189,13 @@ PrintDialog* __EXPORT ScTabViewShell::CreatePrintDialog( Window *pParent ) // instead of a separate progress for each sheet from ScPrintFunc pDocShell->UpdatePendingRowHeights( MAXTAB, true ); + ScMarkData aMarkData; + aMarkData.SelectTable( GetViewData()->GetTabNo(), TRUE ); + for ( SCTAB i=0; i<nTabCount; i++ ) { + if ( !bAllTabs && !aMarkData.GetTableSelect( i ) ) + continue; ScPrintFunc aPrintFunc( pDocShell, pPrinter, i ); nDocPageMax += aPrintFunc.GetTotalPages(); } |