diff options
author | Max Linke <kain88@mixxx.org> | 2014-09-12 18:58:30 +0200 |
---|---|---|
committer | Max Linke <kain88@mixxx.org> | 2014-09-12 18:58:30 +0200 |
commit | 37fc8aaf1e7dda094d7a693685b9aed09aa89f1b (patch) | |
tree | 2775d03f0e4fd2e5008b9d40ba914585fafc644c /src/widget | |
parent | 07f3573f506dc9c4a72d4d8c5514c6af384fb2df (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/widget')
-rw-r--r-- | src/widget/wcoverart.cpp | 31 | ||||
-rw-r--r-- | src/widget/wcoverart.h | 8 | ||||
-rw-r--r-- | src/widget/wcoverartmenu.cpp | 48 | ||||
-rw-r--r-- | src/widget/wcoverartmenu.h | 8 | ||||
-rw-r--r-- | src/widget/wlibrarytableview.h | 4 | ||||
-rw-r--r-- | src/widget/wtracktableview.cpp | 24 |
6 files changed, 47 insertions, 76 deletions
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 |