Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cover art support #278

Merged
merged 86 commits into from
Nov 5, 2014
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
92247eb
Move CoverArtCache::extractEmbeddedCover to a utility class.
rryan Oct 21, 2014
34d48aa
Minor test cleanups.
rryan Oct 21, 2014
af707e4
Prevent deep-copy of QImage while checksumming it and move calculateHash
rryan Oct 21, 2014
f987621
Move CoverArtCache::cropImage to CoverArtUtils.
rryan Oct 21, 2014
5d2fa92
Move CoverArtCache::rescaleBigImage to CoverArtUtils.
rryan Oct 21, 2014
eb265df
Some NULL-safety changes.
rryan Oct 21, 2014
0f3f844
Remove 'widget' from method / var names.
rryan Oct 23, 2014
8cf9b8a
Move CoverArtCache::searchInTrackDirectory to CoverArtUtils.
rryan Oct 23, 2014
1af2430
Misc. fixes.
rryan Oct 26, 2014
f3eff5c
Remove default cover handling from CoverArtCache.
rryan Oct 26, 2014
32d9da9
More misc.
rryan Oct 26, 2014
08edc49
Avoid doing file I/O in the main thread.
rryan Oct 26, 2014
1ecde90
Move CoverInfo to coverart.h. Add CoverArt struct.
rryan Oct 26, 2014
7bbb903
Refactor to use the common structures in coverart.h.
rryan Oct 26, 2014
7c199cb
Cache-key improvements.
rryan Oct 26, 2014
107f9f9
Hash the full-sized image, not the cropped or size-capped image.
rryan Oct 26, 2014
807f621
Only check QPixmapCache if we have a non-empty cover hash.
rryan Oct 26, 2014
679f786
Add a debugging flag to CoverArtCache.
rryan Oct 26, 2014
b1b0f5e
Pull file extension regex generator into a utility file.
rryan Oct 27, 2014
2057607
Add source and type fields to CoverInfo and equality operators.
rryan Oct 27, 2014
cdf1a03
Add CoverArt property to TrackInfoObject.
rryan Oct 27, 2014
8183dc0
Add CoverArt widget to Deere.
rryan Oct 27, 2014
672111c
Add loadCover and selectCoverArtForTrack helper methods to CoverArtUt…
rryan Oct 27, 2014
42c8155
Massive cover art refactor.
rryan Oct 27, 2014
a5f2fc5
Avoid hard-coding size policies.
rryan Oct 27, 2014
5ef00f4
Rework WCoverArt <-> WTrackTableView signal flow.
rryan Oct 27, 2014
0477ae7
Remove hard-coded layout and sizes from WCoverArt.
rryan Oct 27, 2014
7000a9b
Add deck cover art to Deere.
rryan Oct 27, 2014
8572aa4
Remove unused BaseTrackCache update signals/slots.
rryan Oct 27, 2014
59ee4e5
Support drag and drop to/from WCoverArt.
rryan Oct 27, 2014
ae905d5
Use util/time.h instead of GuiTick for user action timing.
rryan Oct 27, 2014
cd4b3c8
Rename issueRepaint to signalWhenDone and remove update of WTrackTabl…
rryan Oct 27, 2014
9c0c1bb
Delete CoverAndAlbumInfo since album info is unused now.
rryan Oct 27, 2014
587ee29
Remove CoverArtCache use from WCoverArtMenu.
rryan Oct 27, 2014
946cb34
Remove unused member variable from TrackCollection.
rryan Oct 27, 2014
356d48c
Get supported cover extensions from CoverArtUtils.
rryan Oct 27, 2014
afdeb96
Add qDebug helpers for CoverArt and CoverInfo.
rryan Oct 28, 2014
0855f56
Early exit in CoverArtCache::requestCover if CoverInfo type is NONE.
rryan Oct 28, 2014
60c5853
Add CoverArtUtils::guessCoverArt helper method.
rryan Oct 28, 2014
e9aa413
No need to manually update() DlgTrackInfo.
rryan Oct 28, 2014
9bbbea5
Improve connection between WCoverArtMenu, WCoverArtLabel, WCoverArt, …
rryan Oct 28, 2014
31991b8
Disconnect TIO changed signals while applying track info edits.
rryan Oct 28, 2014
fb7570e
Don't crop cached pixmaps anymore.
rryan Oct 28, 2014
8e11ac5
Add coverArtUpdated signal to TrackInfoObject.
rryan Oct 28, 2014
da949ae
Fix test.
rryan Oct 28, 2014
8b77640
Allow segregation of multiple users of CoverArtCache.
rryan Oct 28, 2014
359dade
Move cover art to the Deere track text row.
rryan Oct 28, 2014
139a05a
Make a CoverArtUtils::selectCoverArtForTrack variant that doesn't
rryan Oct 28, 2014
c0cd784
Load the player's loaded track into WCoverArt upon creation.
rryan Oct 28, 2014
abf7eca
Use QStylePainter in WCoverArt so we can style the widget with CSS.
rryan Oct 28, 2014
a4132de
Default coverart_source and coverart_type to 0 instead of NULL.
rryan Oct 28, 2014
b90c5c6
Add first pass at cover art scan for UNKNOWN tracks.
rryan Oct 28, 2014
ea87686
Slight phrase tweaking.
rryan Oct 28, 2014
33509d1
Add warning about user data.
rryan Oct 28, 2014
29777ea
Merge remote-tracking branch 'cardinot/coverArtSupport' into
rryan Oct 28, 2014
49fee52
Fix issue where files on disk aren't picked up during existing-tracks…
rryan Oct 29, 2014
43cde9e
Fix QSet<int> signal queueing errors.
rryan Oct 29, 2014
d081ff7
Remove trackId from CoverInfo.
rryan Oct 29, 2014
1d4105c
When a library row's cover art is ready explictly refresh that row.
rryan Oct 29, 2014
dc82b07
Use foreach instead of C++-style iterator.
rryan Oct 29, 2014
94e511e
Address review comments.
rryan Oct 29, 2014
06b1952
Remove unnecessary use of CoverArt.
rryan Oct 29, 2014
0c48c06
Fix UTF-8 test.
rryan Oct 29, 2014
320a803
Change CoverInfo hash to an integer.
rryan Oct 29, 2014
dbe9811
Use cover hash as request reference in CoverArtDelegate.
rryan Oct 29, 2014
f9e9148
Support sorting by cover art.
rryan Oct 30, 2014
343f7c0
Delay trackSelected signal until the user interaction timeout.
rryan Oct 30, 2014
07fd51f
Only repaint cells that were cache misses when we hit the user
rryan Oct 30, 2014
0425bc4
Double-check that we are not overwriting USER_SELECTED covers.
rryan Oct 30, 2014
3d0f864
Delete unused method.
rryan Oct 30, 2014
fa683d8
Switch CoverArt use to CoverInfo.
rryan Oct 30, 2014
3468571
Revert DlgTrackInfo parentage change.
rryan Oct 30, 2014
8dea56a
Call activateWindow on DlgCoverArtFullSize.
rryan Oct 30, 2014
e394457
Compare potential cover filenames case-insensitively.
rryan Oct 31, 2014
dddeb3b
Handle COVER_NONE covers in WCoverArtMenu::slotChange.
rryan Oct 31, 2014
0980b6b
Support multiple-selection for cover art menu in WTrackTableView.
rryan Oct 31, 2014
cf7c539
Show cover art progress on the library scanner dialog.
rryan Oct 31, 2014
a7329e9
Update BaseTrackCache once cover art processing is done.
rryan Oct 31, 2014
4ad6b5d
Only pick non-matching cover files if there is only one option.
rryan Oct 31, 2014
f3e2c5c
Create a security token for files chosen via WCoverArtMenu.
rryan Oct 31, 2014
24874c5
Acquire sandbox tokens in various places for cover art.
rryan Oct 31, 2014
b95c452
Only save images in TIO if it is not NULL
Nov 5, 2014
09b16a3
Reduce code duplication in finding possible Covers
Nov 5, 2014
46fbd24
Move CoverArtUtil tests to own class
Nov 5, 2014
82085f3
Codying style clean up coverartcache
Nov 5, 2014
76113d0
Use COSlave instead of COThread
Nov 5, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove default cover handling from CoverArtCache.
Add <DefaultCover> configuration option to WCoverArt to let skin authors
pick a default cover.
  • Loading branch information
rryan committed Oct 26, 2014
commit f3eff5c2df9eb61823dca01788dfee7837b871d7
3 changes: 2 additions & 1 deletion src/dlgcoverartfullsize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ void DlgCoverArtFullSize::init(CoverInfo info) {
info.coverLocation = cache->trackInDBHash(info.trackId);
}

if (info.coverLocation == cache->getDefaultCoverLocation()) {
// If it's still empty, we don't have a cover.
if (info.coverLocation.isEmpty()) {
return;
}

Expand Down
15 changes: 1 addition & 14 deletions src/library/coverartcache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ const int kMaxCoverSize = 300;

CoverArtCache::CoverArtCache()
: m_pCoverArtDAO(NULL),
m_pTrackDAO(NULL),
m_sDefaultCoverLocation(":/images/library/default_cover.png"),
m_imgDefaultCover(m_sDefaultCoverLocation),
m_pxDefaultCover(m_sDefaultCoverLocation) {
m_pTrackDAO(NULL) {
// The initial QPixmapCache limit is 10MB.
// But it is not used just by the coverArt stuff,
// it is also used by Qt to handle other things behind the scenes.
Expand Down Expand Up @@ -208,11 +205,6 @@ void CoverArtCache::imageLoaded() {
QPixmapCache::insert(cacheKey, pixmap);
}

// The widgets expects a signal response.
if (pixmap.isNull()) {
pixmap = m_pxDefaultCover;
}

if (res.issueRepaint) {
emit(requestRepaint());
} else {
Expand Down Expand Up @@ -249,11 +241,6 @@ CoverArtCache::FutureResult CoverArtCache::searchImage(
kMaxCoverSize);
}

if (res.img.isNull()) {
res.coverLocation = m_sDefaultCoverLocation;
res.img = m_imgDefaultCover;
}

res.hash = CoverArtUtils::calculateHash(res.img);

// adjusting the cover size according to the final purpose
Expand Down
8 changes: 1 addition & 7 deletions src/library/coverartcache.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ struct CoverInfo {
QString hash;
};

class CoverArtCache : public QObject, public Singleton<CoverArtCache>
{
class CoverArtCache : public QObject, public Singleton<CoverArtCache> {
Q_OBJECT
public:
/* This method is used to request a cover art pixmap.
Expand All @@ -46,8 +45,6 @@ class CoverArtCache : public QObject, public Singleton<CoverArtCache>
void setCoverArtDAO(CoverArtDAO* coverdao);
void setTrackDAO(TrackDAO* trackdao);

QString getDefaultCoverLocation() { return m_sDefaultCoverLocation; }
QPixmap getDefaultCoverArt() { return m_pxDefaultCover; }
// This is for widgets that try to get the covers directly from the cache
// instead of waiting for the signal with the cover. Because we update the
// database in large batches it can happen that a widget looks up a track
Expand Down Expand Up @@ -93,9 +90,6 @@ class CoverArtCache : public QObject, public Singleton<CoverArtCache>
private:
CoverArtDAO* m_pCoverArtDAO;
TrackDAO* m_pTrackDAO;
const QString m_sDefaultCoverLocation;
const QImage m_imgDefaultCover;
const QPixmap m_pxDefaultCover;
QSet<int> m_runningIds;
QHash<int, QPair<QString, QString> > m_queueOfUpdates;
};
Expand Down
16 changes: 3 additions & 13 deletions src/library/coverartdelegate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ CoverArtDelegate::CoverArtDelegate(QObject *parent)
m_iCoverHashColumn(-1),
m_iTrackLocationColumn(-1),
m_iIdColumn(-1) {
CoverArtCache* pCache = CoverArtCache::instance();
if (pCache != NULL) {
m_sDefaultCover = pCache->getDefaultCoverLocation();
}

// This assumes that the parent is wtracktableview
connect(parent, SIGNAL(onlyCachedCoverArt(bool)),
this, SLOT(slotOnlyCachedCoverArt(bool)));
Expand Down Expand Up @@ -71,9 +66,8 @@ void CoverArtDelegate::paint(QPainter *painter,
return;
}

// drawing only an existing cover_art,
// otherwise leave it blank...
if (coverLocation != m_sDefaultCover) {
// drawing only an existing cover_art, otherwise leave it blank...
if (!coverLocation.isEmpty()) {
CoverInfo info;
info.trackId = trackId;
info.coverLocation = coverLocation;
Expand All @@ -86,11 +80,7 @@ void CoverArtDelegate::paint(QPainter *painter,
QPixmap pixmap = pCache->requestPixmap(info, coverSize,
m_bOnlyCachedCover, true);

if (info.coverLocation.isEmpty()) {
info.coverLocation = pCache->trackInDBHash(info.trackId);
}

if (!pixmap.isNull() && info.coverLocation != m_sDefaultCover) {
if (!pixmap.isNull()) {
int width = pixmap.width();
if (option.rect.width() < width) {
width = option.rect.width();
Expand Down
1 change: 0 additions & 1 deletion src/library/coverartdelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class CoverArtDelegate : public QStyledItemDelegate {

private:
bool m_bOnlyCachedCover;
QString m_sDefaultCover;
int m_iCoverLocationColumn;
int m_iCoverHashColumn;
int m_iTrackLocationColumn;
Expand Down
4 changes: 4 additions & 0 deletions src/library/coverartutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@

class CoverArtUtils {
public:
static QString defaultCoverLocation() {
return QString(":/images/library/default_cover.png");
}

// Extracts the first cover art image embedded within the file at
// trackLocation.
static QImage extractEmbeddedCover(const QString& trackLocation) {
Expand Down
5 changes: 2 additions & 3 deletions src/test/coverartcache_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class CoverArtCacheTest : public MixxxTest, public CoverArtCache {
TrackCollection* m_pTrackCollection;
};

const QString& kCoverLocationTest("res/images/library/default_cover.png");
const QString kCoverLocationTest("res/images/library/default_cover.png");
const QString kTrackLocationTest(QDir::currentPath() %
"/src/test/id3-test-data/cover-test.mp3");

Expand Down Expand Up @@ -142,8 +142,7 @@ TEST_F(CoverArtCacheTest, searchImage) {
// looking for cover in an empty directory
CoverArtCache::FutureResult res;
res = CoverArtCache::searchImage(cInfo, QSize(0,0), false);
EXPECT_QSTRING_EQ(res.coverLocation,
getDefaultCoverLocation());
EXPECT_TRUE(res.coverLocation.isEmpty());

// looking for a track with embedded cover
cInfo.trackLocation = kTrackLocationTest;
Expand Down
49 changes: 30 additions & 19 deletions src/widget/wcoverart.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "widget/wcoverart.h"
#include "widget/wskincolor.h"
#include "library/coverartcache.h"
#include "library/coverartutils.h"

WCoverArt::WCoverArt(QWidget* parent,
TrackCollection* pTrackCollection)
Expand All @@ -23,8 +24,6 @@ WCoverArt::WCoverArt(QWidget* parent,
if (pCache != NULL) {
connect(pCache, SIGNAL(pixmapFound(int, QPixmap)),
this, SLOT(slotPixmapFound(int, QPixmap)));
m_loadedCover = pCache->getDefaultCoverArt();
m_loadedCoverScaled = scaledCoverArt(m_loadedCover);
}
connect(m_pMenu,
SIGNAL(coverLocationUpdated(const QString&, const QString&, QPixmap)),
Expand Down Expand Up @@ -59,13 +58,24 @@ void WCoverArt::setup(QDomNode node, const SkinContext& context) {
m_fgc = QColor(255 - bgc.red(), 255 - bgc.green(), 255 - bgc.blue());
pal.setBrush(foregroundRole(), m_fgc);
setPalette(pal);

if (context.hasNode(node, "DefaultCover")) {
m_defaultCover = QPixmap(context.selectString(node, "DefaultCover"));
}

// If no default cover is specified or we failed to load it, fall back on
// the resource bundle default cover.
if (m_defaultCover.isNull()) {
m_defaultCover = QPixmap(CoverArtUtils::defaultCoverLocation());
}
m_defaultCoverScaled = scaledCoverArt(m_defaultCover);
}

void WCoverArt::slotCoverLocationUpdated(const QString& newLoc,
const QString& oldLoc,
QPixmap px) {
QPixmap newCover) {
Q_UNUSED(oldLoc);
Q_UNUSED(px);
Q_UNUSED(newCover);
CoverArtCache* pCache = CoverArtCache::instance();
if (pCache != NULL && !pCache->changeCoverArt(
m_lastRequestedCover.trackId, newLoc)) {
Expand All @@ -86,11 +96,8 @@ void WCoverArt::slotEnable(bool enable) {

void WCoverArt::slotReset() {
m_lastRequestedCover = CoverInfo();
CoverArtCache* pCache = CoverArtCache::instance();
if (pCache != NULL) {
m_loadedCover = pCache->getDefaultCoverArt();
m_loadedCoverScaled = scaledCoverArt(m_loadedCover);
}
m_loadedCover = QPixmap();
m_loadedCoverScaled = QPixmap();
update();
}

Expand Down Expand Up @@ -134,13 +141,22 @@ void WCoverArt::paintEvent(QPaintEvent* pEvent) {
}

QPainter painter(this);
int x = 3 + width() / 2 - m_loadedCoverScaled.width() / 2;
int y = 8;
painter.drawPixmap(x, y, m_loadedCoverScaled);

QPixmap toDraw = m_loadedCoverScaled;
if (toDraw.isNull()) {
toDraw = m_defaultCoverScaled;
}

if (!toDraw.isNull()) {
int x = 3 + width() / 2 - toDraw.width() / 2;
int y = 8;
painter.drawPixmap(x, y, toDraw);
}

QPen pen = painter.pen();
pen.setColor(QColor("#656565"));
painter.setPen(pen);
painter.drawRoundedRect(5, 5, width()-7, height()-10, 0, 0);
painter.drawRoundedRect(5, 5, width() - 7, height() - 10, 0, 0);
}

void WCoverArt::resizeEvent(QResizeEvent*) {
Expand All @@ -149,13 +165,8 @@ void WCoverArt::resizeEvent(QResizeEvent*) {
setMinimumHeight(h);
setMaximumHeight(h);
}
if (m_lastRequestedCover.trackId < 1) {
CoverArtCache* pCache = CoverArtCache::instance();
if (pCache != NULL) {
m_loadedCover = pCache->getDefaultCoverArt();
}
}
m_loadedCoverScaled = scaledCoverArt(m_loadedCover);
m_defaultCoverScaled = scaledCoverArt(m_defaultCover);
}

void WCoverArt::mousePressEvent(QMouseEvent* event) {
Expand Down
2 changes: 2 additions & 0 deletions src/widget/wcoverart.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ class WCoverArt : public QWidget, public WBaseWidget {
WCoverArtMenu* m_pMenu;
QPixmap m_loadedCover;
QPixmap m_loadedCoverScaled;
QPixmap m_defaultCover;
QPixmap m_defaultCoverScaled;
TrackDAO& m_trackDAO;
CoverInfo m_lastRequestedCover;
DlgCoverArtFullSize* m_pDlgFullSize;
Expand Down
20 changes: 18 additions & 2 deletions src/widget/wcoverartlabel.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
#include "widget/wcoverartlabel.h"

#include "library/coverartutils.h"

static const QSize s_labelDisplaySize = QSize(100, 100);

WCoverArtLabel::WCoverArtLabel(QWidget* parent)
: QLabel(parent),
m_pTrack(TrackPointer()),
m_coverInfo(CoverInfo()),
m_pCoverMenu(new WCoverArtMenu(this)),
m_pDlgFullSize(new DlgCoverArtFullSize()) {
m_pDlgFullSize(new DlgCoverArtFullSize()),
m_defaultCover(CoverArtUtils::defaultCoverLocation()) {
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
setFrameShape(QFrame::Box);
setAlignment(Qt::AlignCenter);
Expand All @@ -16,6 +21,11 @@ WCoverArtLabel::WCoverArtLabel(QWidget* parent)
SIGNAL(coverLocationUpdated(const QString&, const QString&, QPixmap)),
this,
SIGNAL(coverLocationUpdated(const QString&, const QString&, QPixmap)));

m_defaultCover = m_defaultCover.scaled(s_labelDisplaySize,
Qt::KeepAspectRatio,
Qt::SmoothTransformation);
setPixmap(m_defaultCover);
}

WCoverArtLabel::~WCoverArtLabel() {
Expand All @@ -26,7 +36,13 @@ WCoverArtLabel::~WCoverArtLabel() {
void WCoverArtLabel::setCoverArt(TrackPointer track, CoverInfo info, QPixmap px) {
m_pTrack = track;
m_coverInfo = info;
setPixmap(px.scaled(100, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation));

if (px.isNull()) {
setPixmap(m_defaultCover);
} else {
setPixmap(px.scaled(s_labelDisplaySize, Qt::KeepAspectRatio,
Qt::SmoothTransformation));
}

QSize frameSize = pixmap()->size();
frameSize += QSize(2,2); // margin
Expand Down
6 changes: 5 additions & 1 deletion src/widget/wcoverartlabel.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <QLabel>
#include <QMouseEvent>
#include <QWidget>
#include <QPixmap>

#include "dlgcoverartfullsize.h"
#include "widget/wcoverartmenu.h"
Expand All @@ -17,7 +18,9 @@ class WCoverArtLabel : public QLabel {
void setCoverArt(TrackPointer track, CoverInfo info, QPixmap px);

signals:
void coverLocationUpdated(const QString&, const QString&, QPixmap);
void coverLocationUpdated(const QString& newLocation,
const QString& oldLocation,
QPixmap newCover);

protected:
void leaveEvent(QEvent*);
Expand All @@ -31,6 +34,7 @@ class WCoverArtLabel : public QLabel {
CoverInfo m_coverInfo;
WCoverArtMenu* m_pCoverMenu;
DlgCoverArtFullSize* m_pDlgFullSize;
QPixmap m_defaultCover;
};

#endif // WCOVERARTLABEL_H
8 changes: 3 additions & 5 deletions src/widget/wcoverartmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ void WCoverArtMenu::slotChange() {
// get initial directory (trackdir or coverdir)
QString initialDir;
QString trackPath = m_pTrack->getDirectory();
if (m_coverInfo.coverLocation.isEmpty() ||
m_coverInfo.coverLocation == pCache->getDefaultCoverLocation()) {
if (m_coverInfo.coverLocation.isEmpty()) {
initialDir = trackPath;
} else {
initialDir = m_coverInfo.coverLocation;
Expand Down Expand Up @@ -141,7 +140,6 @@ void WCoverArtMenu::slotUnset() {
if (pCache == NULL) {
return;
}
QString newLoc = pCache->getDefaultCoverLocation();
QPixmap px = pCache->getDefaultCoverArt();
emit(coverLocationUpdated(newLoc, m_coverInfo.coverLocation, px));
QPixmap px;
emit(coverLocationUpdated(QString(), m_coverInfo.coverLocation, QPixmap()));
}
2 changes: 1 addition & 1 deletion src/widget/wcoverartmenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class WCoverArtMenu : public QMenu {
signals:
void coverLocationUpdated(const QString& newLocation,
const QString& oldLocation,
QPixmap px);
QPixmap newCover);

private slots:
void slotChange();
Expand Down