From 9694977b34a2a03ec123c1f69e37f5e27010a483 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sun, 16 May 2010 22:41:01 +0000 Subject: [PATCH] Don't pad images in the OSD --- src/core/albumcoverloader.cpp | 14 +++++++++----- src/core/albumcoverloader.h | 2 ++ src/widgets/osd.cpp | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/core/albumcoverloader.cpp b/src/core/albumcoverloader.cpp index 26cb435c4..2a2d91f40 100644 --- a/src/core/albumcoverloader.cpp +++ b/src/core/albumcoverloader.cpp @@ -29,6 +29,7 @@ AlbumCoverLoader::AlbumCoverLoader(QObject* parent) : QObject(parent), stop_requested_(false), height_(120), + padding_(true), next_id_(0), network_(NULL) { @@ -151,16 +152,19 @@ QImage AlbumCoverLoader::ScaleAndPad(const QImage &image) const { QImage copy = image.scaled(QSize(height_, height_), Qt::KeepAspectRatio, Qt::SmoothTransformation); - // Pad the image to height_ x height_ - QImage bigger_image(height_, height_, QImage::Format_ARGB32); - bigger_image.fill(0); + if (!padding_) + return copy; - QPainter p(&bigger_image); + // Pad the image to height_ x height_ + QImage padded_image(height_, height_, QImage::Format_ARGB32); + padded_image.fill(0); + + QPainter p(&padded_image); p.drawImage((height_ - copy.width()) / 2, (height_ - copy.height()) / 2, copy); p.end(); - return bigger_image; + return padded_image; } QPixmap AlbumCoverLoader::TryLoadPixmap(const QString &automatic, const QString &manual) { diff --git a/src/core/albumcoverloader.h b/src/core/albumcoverloader.h index 65a17c710..64ddb88b2 100644 --- a/src/core/albumcoverloader.h +++ b/src/core/albumcoverloader.h @@ -40,6 +40,7 @@ class AlbumCoverLoader : public QObject { static QString ImageCacheDir(); void SetDesiredHeight(int height) { height_ = height; } + void SetPadOutputImage(bool padding) { padding_ = padding; } quint64 LoadImageAsync(const QString& art_automatic, const QString& art_manual); void Clear(); @@ -85,6 +86,7 @@ class AlbumCoverLoader : public QObject { bool stop_requested_; int height_; + bool padding_; QMutex mutex_; QQueue tasks_; diff --git a/src/widgets/osd.cpp b/src/widgets/osd.cpp index 0c800a875..b923b6e68 100644 --- a/src/widgets/osd.cpp +++ b/src/widgets/osd.cpp @@ -50,6 +50,7 @@ OSD::~OSD() { void OSD::CoverLoaderInitialised() { cover_loader_->Worker()->SetNetwork(network_); + cover_loader_->Worker()->SetPadOutputImage(false); connect(cover_loader_->Worker().get(), SIGNAL(ImageLoaded(quint64,QImage)), SLOT(AlbumArtLoaded(quint64,QImage))); }