pagepainter: Use paper color as fill color in buffered flow

remotes/origin/KDE/4.10
Fabio D'Urso 14 years ago
parent f91f55d117
commit 588b183377
  1. 14
      ui/pagepainter.cpp

@ -64,24 +64,26 @@ void PagePainter::paintCroppedPageOnPainter( QPainter * destPainter, const Okula
int croppedWidth = scaledCrop.width(); int croppedWidth = scaledCrop.width();
int croppedHeight = scaledCrop.height(); int croppedHeight = scaledCrop.height();
QColor color = Qt::white; QColor paperColor = Qt::white;
QColor backgroundColor = paperColor;
if ( Okular::Settings::changeColors() ) if ( Okular::Settings::changeColors() )
{ {
switch ( Okular::Settings::renderMode() ) switch ( Okular::Settings::renderMode() )
{ {
case Okular::Settings::EnumRenderMode::Inverted: case Okular::Settings::EnumRenderMode::Inverted:
color = Qt::black; backgroundColor = Qt::black;
break; break;
case Okular::Settings::EnumRenderMode::Paper: case Okular::Settings::EnumRenderMode::Paper:
color = Okular::Settings::paperColor(); paperColor = Okular::Settings::paperColor();
backgroundColor = paperColor;
break; break;
case Okular::Settings::EnumRenderMode::Recolor: case Okular::Settings::EnumRenderMode::Recolor:
color = Okular::Settings::recolorBackground(); backgroundColor = Okular::Settings::recolorBackground();
break; break;
default: ; default: ;
} }
} }
destPainter->fillRect( limits, color ); destPainter->fillRect( limits, backgroundColor );
Okular::TilesManager *tilesManager = page->tilesManager( pixID ); Okular::TilesManager *tilesManager = page->tilesManager( pixID );
const QPixmap *pixmap = 0; const QPixmap *pixmap = 0;
@ -293,7 +295,7 @@ void PagePainter::paintCroppedPageOnPainter( QPainter * destPainter, const Okula
if ( tilesManager ) if ( tilesManager )
{ {
backImage = QImage( limits.width(), limits.height(), QImage::Format_ARGB32_Premultiplied ); backImage = QImage( limits.width(), limits.height(), QImage::Format_ARGB32_Premultiplied );
backImage.fill( 0xffffffff ); backImage.fill( paperColor.rgb() );
QPainter p( &backImage ); QPainter p( &backImage );
const Okular::NormalizedRect normalizedLimits( limits, scaledWidth, scaledHeight ); const Okular::NormalizedRect normalizedLimits( limits, scaledWidth, scaledHeight );
QList<Okular::Tile> tiles = tilesManager->tilesAt( normalizedLimits, false ); QList<Okular::Tile> tiles = tilesManager->tilesAt( normalizedLimits, false );

Loading…
Cancel
Save