Skip to content

Commit

Permalink
Merge pull request #4059 from daschuer/lp1933991_2
Browse files Browse the repository at this point in the history
Replace trackLoaded and trackUnloaded with a common Track changed signal
  • Loading branch information
uklotzde authored Jul 5, 2021
2 parents 0a6f108 + 80f762b commit 57670a4
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 31 deletions.
12 changes: 7 additions & 5 deletions src/library/basetracktablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,9 @@ BaseTrackTableModel::BaseTrackTableModel(
this,
&BaseTrackTableModel::slotRefreshAllRows);
connect(&PlayerInfo::instance(),
&PlayerInfo::trackLoaded,
&PlayerInfo::trackChanged,
this,
&BaseTrackTableModel::slotTrackLoaded);
&BaseTrackTableModel::slotTrackChanged);
}

void BaseTrackTableModel::initTableColumnsAndHeaderProperties(
Expand Down Expand Up @@ -912,9 +912,11 @@ QMimeData* BaseTrackTableModel::mimeData(
}
}

void BaseTrackTableModel::slotTrackLoaded(
void BaseTrackTableModel::slotTrackChanged(
const QString& group,
TrackPointer pTrack) {
TrackPointer pNewTrack,
TrackPointer pOldTrack) {
Q_UNUSED(pOldTrack);
if (group == m_previewDeckGroup) {
// If there was a previously loaded track, refresh its rows so the
// preview state will update.
Expand All @@ -928,7 +930,7 @@ void BaseTrackTableModel::slotTrackLoaded(
emit dataChanged(topLeft, bottomRight);
}
}
m_previewDeckTrackId = doGetTrackId(pTrack);
m_previewDeckTrackId = doGetTrackId(pNewTrack);
}
}

Expand Down
5 changes: 3 additions & 2 deletions src/library/basetracktablemodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,9 +220,10 @@ class BaseTrackTableModel : public QAbstractTableModel, public TrackModel {
}

private slots:
void slotTrackLoaded(
void slotTrackChanged(
const QString& group,
TrackPointer pTrack);
TrackPointer pNewTrack,
TrackPointer pOldTrack);

void slotRefreshCoverRows(
const QList<int>& rows);
Expand Down
16 changes: 10 additions & 6 deletions src/library/browse/browsetablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,12 @@ BrowseTableModel::BrowseTableModel(QObject* parent,
Qt::QueuedConnection);

connect(&PlayerInfo::instance(),
&PlayerInfo::trackLoaded,
&PlayerInfo::trackChanged,
this,
&BrowseTableModel::trackLoaded);
trackLoaded(m_previewDeckGroup, PlayerInfo::instance().getTrackInfo(m_previewDeckGroup));
&BrowseTableModel::trackChanged);
trackChanged(m_previewDeckGroup,
PlayerInfo::instance().getTrackInfo(m_previewDeckGroup),
TrackPointer());
}

BrowseTableModel::~BrowseTableModel() {
Expand Down Expand Up @@ -437,7 +439,9 @@ bool BrowseTableModel::setData(
return true;
}

void BrowseTableModel::trackLoaded(const QString& group, TrackPointer pTrack) {
void BrowseTableModel::trackChanged(
const QString& group, TrackPointer pNewTrack, TrackPointer pOldTrack) {
Q_UNUSED(pOldTrack);
if (group == m_previewDeckGroup) {
for (int row = 0; row < rowCount(); ++row) {
QModelIndex i = index(row, COLUMN_PREVIEW);
Expand All @@ -446,8 +450,8 @@ void BrowseTableModel::trackLoaded(const QString& group, TrackPointer pTrack) {
item->setText("0");
}
}
if (pTrack) {
QString trackLocation = pTrack->getLocation();
if (pNewTrack) {
QString trackLocation = pNewTrack->getLocation();
for (int row = 0; row < rowCount(); ++row) {
QModelIndex i = index(row, COLUMN_PREVIEW);
QString location = getTrackLocation(i);
Expand Down
2 changes: 1 addition & 1 deletion src/library/browse/browsetablemodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class BrowseTableModel final : public QStandardItemModel, public virtual TrackMo
public slots:
void slotClear(BrowseTableModel*);
void slotInsert(const QList< QList<QStandardItem*> >&, BrowseTableModel*);
void trackLoaded(const QString& group, TrackPointer pTrack);
void trackChanged(const QString& group, TrackPointer pNewTrack, TrackPointer pOldTrack);

private:
void addSearchColumn(int index);
Expand Down
18 changes: 10 additions & 8 deletions src/library/dao/autodjcratesdao.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,13 +263,9 @@ void AutoDJCratesDAO::createAndConnectAutoDjCratesDatabase() {
// These count as auto-DJ references, i.e. prevent the track from being
// selected randomly.
connect(&PlayerInfo::instance(),
&PlayerInfo::trackLoaded,
&PlayerInfo::trackChanged,
this,
&AutoDJCratesDAO::slotPlayerInfoTrackLoaded);
connect(&PlayerInfo::instance(),
&PlayerInfo::trackUnloaded,
this,
&AutoDJCratesDAO::slotPlayerInfoTrackUnloaded);
&AutoDJCratesDAO::slotPlayerInfoTrackChanged);

// Remember that the auto-DJ-crates database has been created.
m_bAutoDjCratesDbCreated = true;
Expand Down Expand Up @@ -1074,8 +1070,14 @@ void AutoDJCratesDAO::slotPlaylistTrackRemoved(int playlistId,
}
}

void AutoDJCratesDAO::slotPlayerInfoTrackChanged(
const QString& group, TrackPointer pNewTrack, TrackPointer pOldTrack) {
playerInfoTrackUnloaded(group, pOldTrack);
playerInfoTrackLoaded(group, pNewTrack);
}

// Signaled by the PlayerInfo singleton when a track is loaded to a deck.
void AutoDJCratesDAO::slotPlayerInfoTrackLoaded(const QString& a_strGroup,
void AutoDJCratesDAO::playerInfoTrackLoaded(const QString& a_strGroup,
TrackPointer a_pTrack) {
// This gets called with a null track during an unload. Filter that out.
if (a_pTrack == nullptr) {
Expand Down Expand Up @@ -1106,7 +1108,7 @@ void AutoDJCratesDAO::slotPlayerInfoTrackLoaded(const QString& a_strGroup,
}

// Signaled by the PlayerInfo singleton when a track is unloaded from a deck.
void AutoDJCratesDAO::slotPlayerInfoTrackUnloaded(const QString& group,
void AutoDJCratesDAO::playerInfoTrackUnloaded(const QString& group,
TrackPointer pTrack) {
// This counts as an auto-DJ reference. The idea is to prevent tracks that
// are loaded into a deck from being randomly chosen.
Expand Down
7 changes: 5 additions & 2 deletions src/library/dao/autodjcratesdao.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,13 @@ class AutoDJCratesDAO : public QObject {

// Signaled by the PlayerInfo singleton when a track is loaded to, or
// unloaded from, a deck.
void slotPlayerInfoTrackLoaded(const QString& group, TrackPointer pTrack);
void slotPlayerInfoTrackUnloaded(const QString& group, TrackPointer pTrack);
void slotPlayerInfoTrackChanged(const QString& group,
TrackPointer pNewTrack,
TrackPointer pOldTrack);

private:
void playerInfoTrackLoaded(const QString& group, TrackPointer pTrack);
void playerInfoTrackUnloaded(const QString& group, TrackPointer pTrack);
void updateAutoDjCrate(CrateId crateId);
void deleteAutoDjCrate(CrateId crateId);

Expand Down
7 changes: 2 additions & 5 deletions src/mixer/playerinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,9 @@ void PlayerInfo::setTrackInfo(const QString& group, const TrackPointer& pTrack)
pOld = m_loadedTrackMap.value(group);
m_loadedTrackMap.insert(group, pTrack);
}
if (pOld) {
emit trackUnloaded(group, pOld);
}
if (pTrack) {
emit trackLoaded(group, pTrack);
emit trackChanged(group, pTrack, pOld);

if (pTrack) {
updateCurrentPlayingDeck();

int playingDeck = m_currentlyPlayingDeck;
Expand Down
3 changes: 1 addition & 2 deletions src/mixer/playerinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ class PlayerInfo : public QObject {
signals:
void currentPlayingDeckChanged(int deck);
void currentPlayingTrackChanged(TrackPointer pTrack);
void trackLoaded(const QString& group, TrackPointer pTrack);
void trackUnloaded(const QString& group, TrackPointer pTrack);
void trackChanged(const QString& group, TrackPointer pNewTrack, TrackPointer pOldTrack);

private:
class DeckControls {
Expand Down

0 comments on commit 57670a4

Please sign in to comment.