Automatically put the bookmarked pages as page pelection in the print dialog.

Implements KPDF wish #117805.

svn path=/trunk/playground/graphics/okular/; revision=603723
remotes/origin/KDE/4.0
Pino Toscano 20 years ago
parent ea831f2214
commit 26ea104ae6
  1. 42
      part.cpp

@ -1215,6 +1215,48 @@ void Part::slotPrint()
}
if (landscape > portrait) printer.setOrientation(KPrinter::Landscape);
// range detecting
QString range;
uint pages = m_document->pages();
int startId = -1;
int endId = -1;
for ( uint i = 0; i < pages; ++i )
{
if ( m_document->page( i )->hasBookmark() )
{
if ( startId < 0 )
startId = i;
if ( endId < 0 )
endId = startId;
else
++endId;
}
else if ( startId >= 0 && endId >= 0 )
{
if ( !range.isEmpty() )
range += ',';
if ( endId - startId > 0 )
range += QString( "%1-%2" ).arg( startId + 1 ).arg( endId + 1 );
else
range += QString::number( startId + 1 );
startId = -1;
endId = -1;
}
}
if ( startId >= 0 && endId >= 0 )
{
if ( !range.isEmpty() )
range += ',';
if ( endId - startId > 0 )
range += QString( "%1-%2" ).arg( startId + 1 ).arg( endId + 1 );
else
range += QString::number( startId + 1 );
}
printer.setOption( "kde-range", range );
if ( m_document->canConfigurePrinter() )
doPrint( printer );
else if (printer.setup(widget())) doPrint( printer );

Loading…
Cancel
Save