vlc | branch: master | Ilkka Ollakka <il...@videolan.org> | Thu Dec 9 17:47:20 2010 +0200| [06b557b9507363e34c28b9eac0d4f0344fa523b1] | committer: Ilkka Ollakka
Qt4: pictureflow, draw album artists/title on flowimage > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=06b557b9507363e34c28b9eac0d4f0344fa523b1 --- modules/gui/qt4/util/pictureflow.cpp | 29 +++++++++-------------------- 1 files changed, 9 insertions(+), 20 deletions(-) diff --git a/modules/gui/qt4/util/pictureflow.cpp b/modules/gui/qt4/util/pictureflow.cpp index 17484fe..7d4976c 100644 --- a/modules/gui/qt4/util/pictureflow.cpp +++ b/modules/gui/qt4/util/pictureflow.cpp @@ -441,24 +441,6 @@ void PictureFlowSoftwareRenderer::paint() QModelIndex index = state->model->index( state->centerIndex, 0, state->model->currentIndex().parent() ); - if( index.isValid() ) - { - QString title = PLModel::getMeta( index, COLUMN_TITLE ); - QString artist = PLModel::getMeta( index, COLUMN_ARTIST ); - QFont font( index.data( Qt::FontRole ).value<QFont>() ); - painter.setFont( font ); - painter.setBrush( QBrush( Qt::lightGray ) ); - painter.setPen( QColor( Qt::lightGray ) ); - QFontMetrics fm = painter.fontMetrics(); - - QPoint textstart( buffer.width() / 2 - state->slideWidth/2 , buffer.height() / 2 + state->slideWidth/2 + 5 ); - QPoint artiststart( 0, fm.xHeight() * 2 ); - - painter.drawText( textstart, title ); - - textstart += artiststart; - painter.drawText( textstart, artist); - } } void PictureFlowSoftwareRenderer::init() @@ -498,7 +480,7 @@ static QRgb blendColor(QRgb c1, QRgb c2, int blend) static QImage* prepareSurface(const QImage* slideImage, int w, int h, QRgb bgcolor, - PictureFlow::ReflectionEffect reflectionEffect) + PictureFlow::ReflectionEffect reflectionEffect, QModelIndex index) { Qt::TransformationMode mode = Qt::SmoothTransformation; QImage img = slideImage->scaled(w, h, Qt::IgnoreAspectRatio, mode); @@ -509,8 +491,10 @@ static QImage* prepareSurface(const QImage* slideImage, int w, int h, QRgb bgcol // offscreen buffer: black is sweet QImage* result = new QImage(hs, w, QImage::Format_RGB32); + QFont font( index.data( Qt::FontRole ).value<QFont>() ); QPainter imagePainter( result ); QTransform rotation; + imagePainter.setFont( font ); rotation.rotate(90); rotation.scale(1,-1); rotation.translate( 0, hofs ); @@ -605,6 +589,11 @@ static QImage* prepareSurface(const QImage* slideImage, int w, int h, QRgb bgcol // overdraw to leave only the reflection blurred (but not the actual image) imagePainter.setTransform( rotation ); imagePainter.drawImage( 0, 0, img ); + imagePainter.setBrush( QBrush( Qt::lightGray ) ); + imagePainter.setPen( QColor( Qt::lightGray ) ); + QFontMetrics fm = imagePainter.fontMetrics(); + imagePainter.drawText( 0, img.height()+ 13, PLModel::getMeta( index, COLUMN_TITLE ) ); + imagePainter.drawText( 0, img.height()+ 13 + fm.xHeight()*2, PLModel::getMeta( index, COLUMN_ARTIST ) ); /* for (int x = 0; x < w; x++) for (int y = 0; y < h; y++) @@ -628,7 +617,7 @@ QImage* PictureFlowSoftwareRenderer::surface(int slideIndex) QImage* img = new QImage(PLModel::getArtPixmap( state->model->index( slideIndex, 0, state->model->currentIndex().parent() ), QSize( state->slideWidth, state->slideHeight ) ).toImage()); - QImage* sr = prepareSurface(img, state->slideWidth, state->slideHeight, bgcolor, state->reflectionEffect); + QImage* sr = prepareSurface(img, state->slideWidth, state->slideHeight, bgcolor, state->reflectionEffect, state->model->index( slideIndex, 0, state->model->currentIndex().parent() ) ); delete img; return sr; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org http://mailman.videolan.org/listinfo/vlc-commits