#include "library/serato/seratoplaylistmodel.h" SeratoPlaylistModel::SeratoPlaylistModel(QObject* parent, TrackCollectionManager* trackCollectionManager, QSharedPointer trackSource) : BaseExternalPlaylistModel( parent, trackCollectionManager, "mixxx.db.model.serato.playlistmodel", "serato_playlists", "serato_playlist_tracks", trackSource) { } void SeratoPlaylistModel::initSortColumnMapping() { // Add a bijective mapping between the SortColumnIds and column indices for (int i = 0; i < static_cast(TrackModel::SortColumnId::IdMax); ++i) { m_columnIndexBySortColumnId[i] = -1; } m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Artist)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ARTIST); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Title)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TITLE); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Album)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ALBUM); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::AlbumArtist)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ALBUMARTIST); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Year)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_YEAR); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Genre)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_GENRE); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Composer)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COMPOSER); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Grouping)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_GROUPING); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::TrackNumber)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TRACKNUMBER); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::FileType)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_FILETYPE); m_columnIndexBySortColumnId[static_cast( TrackModel::SortColumnId::NativeLocation)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_NATIVELOCATION); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Comment)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COMMENT); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Duration)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DURATION); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::BitRate)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BITRATE); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Bpm)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::ReplayGain)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_REPLAYGAIN); m_columnIndexBySortColumnId[static_cast( TrackModel::SortColumnId::DateTimeAdded)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DATETIMEADDED); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::TimesPlayed)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TIMESPLAYED); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Rating)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_RATING); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Key)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_KEY); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Preview)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PREVIEW); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::CoverArt)] = fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COVERART); m_columnIndexBySortColumnId[static_cast(TrackModel::SortColumnId::Position)] = fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_POSITION); m_sortColumnIdByColumnIndex.clear(); for (int i = static_cast(TrackModel::SortColumnId::IdMin); i < static_cast(TrackModel::SortColumnId::IdMax); ++i) { TrackModel::SortColumnId sortColumn = static_cast(i); m_sortColumnIdByColumnIndex.insert( m_columnIndexBySortColumnId[static_cast(sortColumn)], sortColumn); } } TrackPointer SeratoPlaylistModel::getTrack(const QModelIndex& index) const { qDebug() << "SeratoTrackModel::getTrack"; TrackPointer track = BaseExternalPlaylistModel::getTrack(index); return track; } bool SeratoPlaylistModel::isColumnHiddenByDefault(int column) { if ( column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BITRATE) || column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM_LOCK) || column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ID)) { return true; } return BaseSqlTableModel::isColumnHiddenByDefault(column); }