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

Replace trackLoaded and trackUnloaded with a common Track changed signal #4059

Merged
merged 1 commit into from
Jul 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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