void BaseExternalTrackModel::trackLoaded(QString group, TrackPointer pTrack) { if (group == m_previewDeckGroup) { // If there was a previously loaded track, refresh its rows so the // preview state will update. if (m_previewDeckTrackId.isValid()) { const int numColumns = columnCount(); QLinkedList<int> rows = getTrackRows(m_previewDeckTrackId); m_previewDeckTrackId = TrackId(); // invalidate foreach (int row, rows) { QModelIndex left = index(row, 0); QModelIndex right = index(row, numColumns); emit(dataChanged(left, right)); } } if (pTrack) { // The external table has foreign Track IDs, so we need to compare // by location for (int row = 0; row < rowCount(); ++row) { QString location = index(row, fieldIndex("location")).data().toString(); if (location == pTrack->getLocation()) { m_previewDeckTrackId = TrackId(index(row, 0).data()); //qDebug() << "foreign track id" << m_previewDeckTrackId; break; } } } }
void BaseSqlTableModel::trackLoaded(QString group, TrackPointer pTrack) { if (group == m_previewDeckGroup) { // If there was a previously loaded track, refresh its rows so the // preview state will update. if (m_previewDeckTrackId.isValid()) { const int numColumns = columnCount(); QLinkedList<int> rows = getTrackRows(m_previewDeckTrackId); m_previewDeckTrackId = TrackId(); // invalidate foreach (int row, rows) { QModelIndex left = index(row, 0); QModelIndex right = index(row, numColumns); emit(dataChanged(left, right)); } } m_previewDeckTrackId = pTrack ? pTrack->getId() : TrackId(); }