blob: 3fe689e12bde1f066ec29c74453f0901db777296 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#include "library/serato/seratoplaylistmodel.h"
SeratoPlaylistModel::SeratoPlaylistModel(QObject* parent,
TrackCollectionManager* trackCollectionManager,
QSharedPointer<BaseTrackCache> 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<int>(TrackModel::SortColumnId::IdMax); ++i) {
m_columnIndexBySortColumnId[i] = -1;
}
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Artist)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ARTIST);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Title)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TITLE);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Album)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ALBUM);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::AlbumArtist)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_ALBUMARTIST);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Year)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_YEAR);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Genre)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_GENRE);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Composer)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COMPOSER);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Grouping)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_GROUPING);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::TrackNumber)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TRACKNUMBER);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::FileType)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_FILETYPE);
m_columnIndexBySortColumnId[static_cast<int>(
TrackModel::SortColumnId::NativeLocation)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_NATIVELOCATION);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Comment)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COMMENT);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Duration)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DURATION);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::BitRate)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BITRATE);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Bpm)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::ReplayGain)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_REPLAYGAIN);
m_columnIndexBySortColumnId[static_cast<int>(
TrackModel::SortColumnId::DateTimeAdded)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DATETIMEADDED);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::TimesPlayed)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TIMESPLAYED);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Rating)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_RATING);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Key)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_KEY);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Preview)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PREVIEW);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::CoverArt)] =
fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COVERART);
m_columnIndexBySortColumnId[static_cast<int>(TrackModel::SortColumnId::Position)] =
fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_POSITION);
m_sortColumnIdByColumnIndex.clear();
for (int i = static_cast<int>(TrackModel::SortColumnId::IdMin);
i < static_cast<int>(TrackModel::SortColumnId::IdMax);
++i) {
TrackModel::SortColumnId sortColumn = static_cast<TrackModel::SortColumnId>(i);
m_sortColumnIdByColumnIndex.insert(
m_columnIndexBySortColumnId[static_cast<int>(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);
}
|