summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Linke <kain88@mixxx.org>2014-09-12 18:58:30 +0200
committerMax Linke <kain88@mixxx.org>2014-09-12 18:58:30 +0200
commit37fc8aaf1e7dda094d7a693685b9aed09aa89f1b (patch)
tree2775d03f0e4fd2e5008b9d40ba914585fafc644c /src
parent07f3573f506dc9c4a72d4d8c5514c6af384fb2df (diff)
use CoverInfo in every class that uses Covers
This makes it easy now to send additional things around by just updating the CoverInfo struct.
Diffstat (limited to 'src')
-rw-r--r--src/dlgtrackinfo.cpp15
-rw-r--r--src/dlgtrackinfo.h3
-rw-r--r--src/library/library.cpp4
-rw-r--r--src/library/library.h5
-rw-r--r--src/skin/legacyskinparser.cpp4
-rw-r--r--src/widget/wcoverart.cpp31
-rw-r--r--src/widget/wcoverart.h8
-rw-r--r--src/widget/wcoverartmenu.cpp48
-rw-r--r--src/widget/wcoverartmenu.h8
-rw-r--r--src/widget/wlibrarytableview.h4
-rw-r--r--src/widget/wtracktableview.cpp24
11 files changed, 63 insertions, 91 deletions
diff --git a/src/dlgtrackinfo.cpp b/src/dlgtrackinfo.cpp
index acdd125479..e49995986b 100644
--- a/src/dlgtrackinfo.cpp
+++ b/src/dlgtrackinfo.cpp
@@ -199,7 +199,9 @@ void DlgTrackInfo::loadTrack(TrackPointer pTrack,
pixmap = CoverArtCache::instance()->getDefaultCoverArt();
}
setCoverArt(pixmap);
- m_loadedCover = qMakePair(coverLocation, md5);
+ m_loadedCover.trackId = pTrack->getId();
+ m_loadedCover.coverLocation = coverLocation;
+ m_loadedCover.md5Hash = md5;
m_firstCoverLoc = coverLocation;
}
@@ -233,8 +235,8 @@ QPixmap DlgTrackInfo::scaledCoverArt(QPixmap original) {
void DlgTrackInfo::slotCoverLocationUpdated(const QString& newLoc,
const QString& oldLoc,
QPixmap px) {
- if (isVisible() && m_loadedCover.first == oldLoc) {
- m_loadedCover.first = newLoc;
+ if (isVisible() && m_loadedCover.coverLocation == oldLoc) {
+ m_loadedCover.coverLocation = newLoc;
px = scaledCoverArt(px);
coverArt->setPixmap(px);
update();
@@ -247,7 +249,6 @@ void DlgTrackInfo::slotCoverMenu(const QPoint& pos) {
}
m_pCoverMenu->show(coverArt->mapToGlobal(pos),
m_loadedCover,
- m_pLoadedTrack->getId(),
m_pLoadedTrack);
}
@@ -406,7 +407,7 @@ void DlgTrackInfo::saveTrack() {
}
bool res = CoverArtCache::instance()->changeCoverArt(m_pLoadedTrack->getId(),
- m_loadedCover.first);
+ m_loadedCover.coverLocation);
if (!res) {
QMessageBox::warning(this, tr("Change Cover Art"),
@@ -420,7 +421,7 @@ void DlgTrackInfo::unloadTrack(bool save) {
if (save) {
saveTrack();
- } else if (m_firstCoverLoc != m_loadedCover.first){ // revert cover art
+ } else if (m_firstCoverLoc != m_loadedCover.coverLocation){ // revert cover art
CoverArtCache::instance()->changeCoverArt(m_pLoadedTrack->getId(),
m_firstCoverLoc);
}
@@ -428,7 +429,7 @@ void DlgTrackInfo::unloadTrack(bool save) {
clear();
disconnect(this, SLOT(updateTrackMetadata()));
m_pLoadedTrack.clear();
- m_loadedCover = qMakePair(QString(), QString());
+ m_loadedCover = CoverInfo();
m_firstCoverLoc.clear();
}
diff --git a/src/dlgtrackinfo.h b/src/dlgtrackinfo.h
index 5271cdde99..e00de893ef 100644
--- a/src/dlgtrackinfo.h
+++ b/src/dlgtrackinfo.h
@@ -11,6 +11,7 @@
#include "dlgtagfetcher.h"
#include "util/types.h"
#include "widget/wcoverartmenu.h"
+#include "library/coverartcache.h"
const int kFilterLength = 5;
@@ -80,7 +81,7 @@ class DlgTrackInfo : public QDialog, public Ui::DlgTrackInfo {
DlgTagFetcher& m_DlgTagFetcher;
WCoverArtMenu* m_pCoverMenu;
- QPair<QString, QString> m_loadedCover;
+ CoverInfo m_loadedCover;
// Useful to handle cases when the user cancel the changes.
// In this case DlgTrackInfo must revert the cover
diff --git a/src/library/library.cpp b/src/library/library.cpp
index f55688e76f..84568eb336 100644
--- a/src/library/library.cpp
+++ b/src/library/library.cpp
@@ -153,8 +153,8 @@ void Library::bindWidget(WLibrary* pLibraryWidget,
connect(this, SIGNAL(switchToView(const QString&)),
pLibraryWidget, SLOT(switchToView(const QString&)));
- connect(pTrackTableView, SIGNAL(loadCoverArt(const QString&, const QString&, int, bool)),
- this, SIGNAL(loadCoverArt(const QString&, const QString&, int, bool)));
+ connect(pTrackTableView, SIGNAL(loadCoverArt(CoverInfo, bool)),
+ this, SIGNAL(loadCoverArt(CoverInfo, bool)));
m_pLibraryControl->bindWidget(pLibraryWidget, pKeyboard);
diff --git a/src/library/library.h b/src/library/library.h
index 249dfae2e7..0dbf013cfe 100644
--- a/src/library/library.h
+++ b/src/library/library.h
@@ -15,6 +15,7 @@
#include "trackinfoobject.h"
#include "recording/recordingmanager.h"
#include "analysisfeature.h"
+#include "library/coverartcache.h"
class TrackModel;
class TrackCollection;
@@ -87,9 +88,7 @@ public:
void searchStarting();
// emit this signal to enable/disable the cover art widget
void enableCoverArtDisplay(bool);
- void loadCoverArt(const QString& coverLocation,
- const QString& md5Hash,
- int trackId, bool cachedOnly);
+ void loadCoverArt(CoverInfo info, bool cachedOnly);
private:
ConfigObject<ConfigValue>* m_pConfig;
diff --git a/src/skin/legacyskinparser.cpp b/src/skin/legacyskinparser.cpp
index 7ff2e6931d..0d8cb29b25 100644
--- a/src/skin/legacyskinparser.cpp
+++ b/src/skin/legacyskinparser.cpp
@@ -973,8 +973,8 @@ QWidget* LegacySkinParser::parseCoverArt(QDomElement node) {
pCoverArt, SLOT(slotResetWidget()));
connect(m_pLibrary, SIGNAL(enableCoverArtDisplay(bool)),
pCoverArt, SLOT(slotEnableWidget(bool)));
- connect(m_pLibrary, SIGNAL(loadCoverArt(const QString&, const QString&, int, bool)),
- pCoverArt, SLOT(slotLoadCoverArt(const QString&, const QString&, int, bool)));
+ connect(m_pLibrary, SIGNAL(loadCoverArt(CoverInfo, bool)),
+ pCoverArt, SLOT(slotLoadCoverArt(CoverInfo, bool)));
return pCoverArt;
}
diff --git a/src/widget/wcoverart.cpp b/src/widget/wcoverart.cpp
index 67dbc1c42a..7512673c80 100644
--- a/src/widget/wcoverart.cpp
+++ b/src/widget/wcoverart.cpp
@@ -19,7 +19,6 @@ WCoverArt::WCoverArt(QWidget* parent,
m_bCoverIsVisible(false),
m_pMenu(new WCoverArtMenu(this)),
m_loadedCover(CoverArtCache::instance()->getDefaultCoverArt()),
- m_lastRequestedTrackId(-1),
m_trackDAO(pTrackCollection->getTrackDAO()) {
// load icon to hide cover
m_iconHide = QPixmap(":/images/library/ic_library_cover_hide.png");
@@ -52,7 +51,7 @@ void WCoverArt::slotCoverLocationUpdated(const QString& newLoc,
QPixmap px) {
Q_UNUSED(oldLoc);
Q_UNUSED(px);
- bool res = CoverArtCache::instance()->changeCoverArt(m_lastRequestedTrackId,
+ bool res = CoverArtCache::instance()->changeCoverArt(m_lastRequestedCover.trackId,
newLoc);
if (!res) {
QMessageBox::warning(this, tr("Change Cover Art"),
@@ -91,8 +90,7 @@ void WCoverArt::slotEnableWidget(bool enable) {
}
void WCoverArt::slotResetWidget() {
- m_lastRequestedTrackId = -1;
- m_lastRequestedCover = qMakePair(QString(), QString());
+ m_lastRequestedCover = CoverInfo();
m_bCoverIsVisible = false;
m_bCoverIsHovered = false;
m_loadedCover = CoverArtCache::instance()->getDefaultCoverArt();
@@ -105,26 +103,18 @@ void WCoverArt::slotPixmapFound(int trackId, QPixmap pixmap) {
if (!m_bEnableWidget) {
return;
}
- if (m_lastRequestedTrackId == trackId) {
+ if (m_lastRequestedCover.trackId == trackId) {
m_loadedCover = scaledCoverArt(pixmap);
update();
}
}
-void WCoverArt::slotLoadCoverArt(const QString& coverLocation,
- const QString& md5Hash,
- int trackId, bool cachedOnly) {
+void WCoverArt::slotLoadCoverArt(CoverInfo info, bool cachedOnly) {
if (!m_bEnableWidget || !m_bCoverIsVisible) {
return;
}
- m_lastRequestedTrackId = trackId;
- m_lastRequestedCover = qMakePair(coverLocation, md5Hash);
- CoverInfo info;
- info.trackId = trackId;
- info.coverLocation = coverLocation;
- info.md5Hash = md5Hash;
-
+ m_lastRequestedCover = info;
CoverArtCache::instance()->requestPixmap(info, QSize(0,0), cachedOnly);
}
@@ -165,9 +155,7 @@ void WCoverArt::resizeEvent(QResizeEvent*) {
if (m_bCoverIsVisible) {
setMinimumSize(0, parentWidget()->height() / 3);
- slotLoadCoverArt(m_lastRequestedCover.first,
- m_lastRequestedCover.second,
- m_lastRequestedTrackId, true);
+ slotLoadCoverArt(m_lastRequestedCover, true);
} else {
m_loadedCover = CoverArtCache::instance()->getDefaultCoverArt();
setMinimumSize(0, 20);
@@ -192,11 +180,8 @@ void WCoverArt::mousePressEvent(QMouseEvent* event) {
m_bCoverIsVisible = false;
resize(sizeHint());
} else if (event->button() == Qt::RightButton) { // show context-menu
- TrackPointer pTrack = m_trackDAO.getTrack(m_lastRequestedTrackId);
- m_pMenu->show(event->globalPos(),
- m_lastRequestedCover,
- m_lastRequestedTrackId,
- pTrack);
+ TrackPointer pTrack = m_trackDAO.getTrack(m_lastRequestedCover.trackId);
+ m_pMenu->show(event->globalPos(), m_lastRequestedCover, pTrack);
}
}
diff --git a/src/widget/wcoverart.h b/src/widget/wcoverart.h
index adff94be04..84b0f2dfe8 100644
--- a/src/widget/wcoverart.h
+++ b/src/widget/wcoverart.h
@@ -11,6 +11,7 @@
#include "library/trackcollection.h"
#include "widget/wbasewidget.h"
#include "widget/wcoverartmenu.h"
+#include "library/coverartcache.h"
class WCoverArt : public QWidget, public WBaseWidget {
Q_OBJECT
@@ -23,9 +24,7 @@ class WCoverArt : public QWidget, public WBaseWidget {
public slots:
void slotResetWidget();
void slotEnableWidget(bool);
- void slotLoadCoverArt(const QString& coverLocation,
- const QString& md5Hash,
- int trackId, bool cachedOnly);
+ void slotLoadCoverArt(CoverInfo info, bool cachedOnly);
private slots:
void slotPixmapFound(int trackId, QPixmap pixmap);
@@ -54,9 +53,8 @@ class WCoverArt : public QWidget, public WBaseWidget {
QPixmap m_iconHide;
QPixmap m_iconShow;
- int m_lastRequestedTrackId;
TrackDAO& m_trackDAO;
- QPair<QString, QString> m_lastRequestedCover;
+ CoverInfo m_lastRequestedCover;
};
#endif // WCOVERART_H
diff --git a/src/widget/wcoverartmenu.cpp b/src/widget/wcoverartmenu.cpp
index 2464bb968b..2ee4460990 100644
--- a/src/widget/wcoverartmenu.cpp
+++ b/src/widget/wcoverartmenu.cpp
@@ -8,8 +8,7 @@
#include "library/dao/coverartdao.h"
WCoverArtMenu::WCoverArtMenu(QWidget *parent)
- : QMenu(parent),
- m_iTrackId(-1) {
+ : QMenu(parent) {
createActions();
addActions();
}
@@ -46,40 +45,35 @@ void WCoverArtMenu::addActions() {
addAction(m_pReload);
}
-void WCoverArtMenu::show(QPoint pos, QPair<QString, QString> cover,
- int trackId, TrackPointer pTrack) {
- m_iTrackId = trackId;
- m_sCoverLocation = cover.first;
- m_sMd5 = cover.second;
- m_pTrack = pTrack;
-
- if (trackId < 1) {
+void WCoverArtMenu::show(QPoint pos, CoverInfo info, TrackPointer pTrack) {
+ if (info.trackId < 1) {
return;
}
-
+ m_coverInfo = info;
+ m_pTrack = pTrack;
popup(pos);
}
void WCoverArtMenu::slotChange() {
- if (m_iTrackId < 1 || !m_pTrack) {
+ if (m_coverInfo.trackId < 1 || !m_pTrack) {
return;
}
// get initial directory (trackdir or coverdir)
QString initialDir;
QString trackPath = m_pTrack->getDirectory();
- if (m_sCoverLocation.isEmpty() ||
- m_sCoverLocation == CoverArtCache::instance()
- ->getDefaultCoverLocation()) {
+ if (m_coverInfo.coverLocation.isEmpty() ||
+ m_coverInfo.coverLocation == CoverArtCache::instance()
+ ->getDefaultCoverLocation()) {
initialDir = trackPath;
} else {
- initialDir = m_sCoverLocation;
+ initialDir = m_coverInfo.coverLocation;
}
// open file dialog
QString selectedCover = QFileDialog::getOpenFileName(
- this, tr("Change Cover Art"), initialDir,
- tr("Image Files (*.png *.jpg *.jpeg *.bmp)"));
+ this, tr("Change Cover Art"), initialDir,
+ tr("Image Files (*.png *.jpg *.jpeg *.bmp)"));
if (selectedCover.isEmpty()) {
return;
@@ -88,10 +82,10 @@ void WCoverArtMenu::slotChange() {
// if the cover comes from an external dir,
// we copy it to the track directory.
QString newCover;
- QFileInfo coverInfo(selectedCover);
- QString coverPath = coverInfo.absolutePath();
+ QFileInfo FileInfo(selectedCover);
+ QString coverPath = FileInfo.absolutePath();
if (trackPath != coverPath) {
- QString ext = coverInfo.suffix();
+ QString ext = FileInfo.suffix();
QStringList filepaths;
filepaths << trackPath % "/cover." % ext
<< trackPath % "/album." % ext
@@ -116,15 +110,15 @@ void WCoverArtMenu::slotChange() {
}
QPixmap px(newCover);
- emit(coverLocationUpdated(newCover, m_sCoverLocation, px));
+ emit(coverLocationUpdated(newCover, m_coverInfo.coverLocation, px));
}
void WCoverArtMenu::slotReload() {
- if (m_iTrackId < 1) {
+ if (m_coverInfo.trackId < 1) {
return;
}
CoverArtDAO::CoverArtInfo info;
- info.trackId = m_iTrackId;
+ info.trackId = m_pTrack->getId();
info.album = m_pTrack->getAlbum();
info.trackDirectory = m_pTrack->getDirectory();
info.trackLocation = m_pTrack->getLocation();
@@ -133,14 +127,14 @@ void WCoverArtMenu::slotReload() {
CoverArtCache::instance()->searchImage(info, QSize(0,0), false);
QPixmap px;
px.convertFromImage(res.img);
- emit(coverLocationUpdated(res.coverLocation, m_sCoverLocation, px));
+ emit(coverLocationUpdated(res.coverLocation, m_coverInfo.coverLocation, px));
}
void WCoverArtMenu::slotUnset() {
- if (m_iTrackId < 1) {
+ if (m_coverInfo.trackId < 1) {
return;
}
QString newLoc = CoverArtCache::instance()->getDefaultCoverLocation();
QPixmap px = CoverArtCache::instance()->getDefaultCoverArt();
- emit(coverLocationUpdated(newLoc, m_sCoverLocation, px));
+ emit(coverLocationUpdated(newLoc, m_coverInfo.coverLocation, px));
}
diff --git a/src/widget/wcoverartmenu.h b/src/widget/wcoverartmenu.h
index bf3f7e6f1d..f1ad5bc2f4 100644
--- a/src/widget/wcoverartmenu.h
+++ b/src/widget/wcoverartmenu.h
@@ -6,6 +6,7 @@
#include <QWidget>
#include "trackinfoobject.h"
+#include "library/coverartcache.h"
class WCoverArtMenu : public QMenu {
Q_OBJECT
@@ -19,8 +20,7 @@ class WCoverArtMenu : public QMenu {
WCoverArtMenu(QWidget *parent = 0);
virtual ~WCoverArtMenu();
- void show(QPoint pos, QPair<QString, QString> cover,
- int trackId, TrackPointer pTrack);
+ void show(QPoint pos, CoverInfo info, TrackPointer pTrack);
signals:
void coverLocationUpdated(const QString& newLocation,
@@ -40,10 +40,8 @@ class WCoverArtMenu : public QMenu {
QAction* m_pReload;
QAction* m_pUnset;
- int m_iTrackId;
TrackPointer m_pTrack;
- QString m_sCoverLocation;
- QString m_sMd5;
+ CoverInfo m_coverInfo;
};
#endif // WCOVERARTMENU_H
diff --git a/src/widget/wlibrarytableview.h b/src/widget/wlibrarytableview.h
index 7f6da1f9b5..1eef425014 100644
--- a/src/widget/wlibrarytableview.h
+++ b/src/widget/wlibrarytableview.h
@@ -10,6 +10,7 @@
#include "configobject.h"
#include "library/libraryview.h"
#include "trackinfoobject.h"
+#include "library/coverartcache.h"
class WLibraryTableView : public QTableView, public virtual LibraryView {
@@ -26,8 +27,7 @@ class WLibraryTableView : public QTableView, public virtual LibraryView {
void loadTrack(TrackPointer pTrack);
void loadTrackToPlayer(TrackPointer pTrack, QString group,
bool play = false);
- void loadCoverArt(const QString& coverLocation, const QString&,
- int trackId, bool cachedOnly);
+ void loadCoverArt(CoverInfo info, bool cachedOnly);
void onlyCachedCoverArt(bool);
void scrollValueChanged(int);
diff --git a/src/widget/wtracktableview.cpp b/src/widget/wtracktableview.cpp
index fd17d73eff..8390206146 100644
--- a/src/widget/wtracktableview.cpp
+++ b/src/widget/wtracktableview.cpp
@@ -190,23 +190,19 @@ void WTrackTableView::emitLoadCoverArt(bool cachedOnly) {
return;
}
- QString coverLocation;
- QString md5Hash;
- int trackId = 0;
const QModelIndexList indices = selectionModel()->selectedRows();
- if (indices.size() > 0) {
- QModelIndex idx = indices.last();
- if (idx.isValid()) {
- TrackModel* trackModel = getTrackModel();
- if (trackModel) {
- md5Hash = idx.sibling(idx.row(), m_iMd5Column).data().toString();
- trackId = trackModel->getTrackId(idx);
- coverLocation = idx.sibling(idx.row(),
- m_iCoverLocationColumn).data().toString();
- }
+ if (indices.size() > 0 && indices.last().isValid()) {
+ TrackModel* trackModel = getTrackModel();
+ if (trackModel) {
+ QModelIndex idx = indices.last();
+ CoverInfo info;
+ info.md5Hash = idx.sibling(idx.row(), m_iMd5Column).data().toString();
+ info.trackId = trackModel->getTrackId(idx);
+ info.coverLocation = idx.sibling(
+ idx.row(), m_iCoverLocationColumn).data().toString();
+ emit(loadCoverArt(info, cachedOnly));
}
}
- emit(loadCoverArt(coverLocation, md5Hash, trackId, cachedOnly));
}
// slot