Add BPM, mood and initial key support
This commit is contained in:
@@ -391,7 +391,11 @@ QVariant Playlist::data(const QModelIndex &idx, const int role) const {
|
||||
|
||||
case Column::HasCUE: return song.has_cue();
|
||||
|
||||
case Column::Mood:
|
||||
case Column::BPM: return song.bpm();
|
||||
case Column::Mood: return song.mood();
|
||||
case Column::InitialKey: return song.initial_key();
|
||||
|
||||
case Column::Moodbar:
|
||||
case Column::ColumnCount:
|
||||
break;
|
||||
|
||||
@@ -445,7 +449,7 @@ QVariant Playlist::data(const QModelIndex &idx, const int role) const {
|
||||
|
||||
#ifdef HAVE_MOODBAR
|
||||
void Playlist::MoodbarUpdated(const QModelIndex &idx) {
|
||||
Q_EMIT dataChanged(idx.sibling(idx.row(), static_cast<int>(Column::Mood)), idx.sibling(idx.row(), static_cast<int>(Column::Mood)));
|
||||
Q_EMIT dataChanged(idx.sibling(idx.row(), static_cast<int>(Column::Moodbar)), idx.sibling(idx.row(), static_cast<int>(Column::Moodbar)));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1412,7 +1416,11 @@ bool Playlist::CompareItems(const Column column, const Qt::SortOrder order, Play
|
||||
case Column::EBUR128IntegratedLoudness: return CompareVal(ma.ebur128_integrated_loudness_lufs(), mb.ebur128_integrated_loudness_lufs());
|
||||
case Column::EBUR128LoudnessRange: return CompareVal(ma.ebur128_loudness_range_lu(), mb.ebur128_loudness_range_lu());
|
||||
|
||||
case Column::Mood:
|
||||
case Column::BPM: return CompareVal(ma.bpm(), mb.bpm());
|
||||
case Column::Mood: return CompareStr(ma.mood(), mb.mood());
|
||||
case Column::InitialKey: return CompareStr(ma.initial_key(), mb.initial_key());
|
||||
|
||||
case Column::Moodbar:
|
||||
case Column::ColumnCount:
|
||||
break;
|
||||
}
|
||||
@@ -1460,13 +1468,17 @@ QString Playlist::column_name(const Column column) {
|
||||
|
||||
case Column::Comment: return tr("Comment");
|
||||
case Column::Source: return tr("Source");
|
||||
case Column::Mood: return tr("Mood");
|
||||
case Column::Moodbar: return tr("Moodbar");
|
||||
case Column::Rating: return tr("Rating");
|
||||
case Column::HasCUE: return tr("CUE");
|
||||
|
||||
case Column::EBUR128IntegratedLoudness: return tr("Integrated Loudness");
|
||||
case Column::EBUR128LoudnessRange: return tr("Loudness Range");
|
||||
|
||||
case Column::BPM: return tr("BPM");
|
||||
case Column::Mood: return tr("Mood");
|
||||
case Column::InitialKey: return tr("Initial key");
|
||||
|
||||
case Column::ColumnCount:
|
||||
break;
|
||||
}
|
||||
@@ -2266,6 +2278,15 @@ Playlist::Columns Playlist::ChangedColumns(const Song &metadata1, const Song &me
|
||||
if (metadata1.ebur128_loudness_range_lu() != metadata2.ebur128_loudness_range_lu()) {
|
||||
columns << Column::EBUR128LoudnessRange;
|
||||
}
|
||||
if (metadata1.bpm() != metadata2.bpm()) {
|
||||
columns << Column::BPM;
|
||||
}
|
||||
if (metadata1.mood() != metadata2.mood()) {
|
||||
columns << Column::Mood;
|
||||
}
|
||||
if (metadata1.initial_key() != metadata2.initial_key()) {
|
||||
columns << Column::InitialKey;
|
||||
}
|
||||
|
||||
return columns;
|
||||
|
||||
|
||||
@@ -133,11 +133,14 @@ class Playlist : public QAbstractListModel {
|
||||
Comment,
|
||||
Grouping,
|
||||
Source,
|
||||
Mood,
|
||||
Moodbar,
|
||||
Rating,
|
||||
HasCUE,
|
||||
EBUR128IntegratedLoudness,
|
||||
EBUR128LoudnessRange,
|
||||
BPM,
|
||||
Mood,
|
||||
InitialKey,
|
||||
ColumnCount
|
||||
};
|
||||
using Columns = QList<Column>;
|
||||
|
||||
@@ -246,7 +246,7 @@ void PlaylistView::SetItemDelegates() {
|
||||
setItemDelegateForColumn(static_cast<int>(Playlist::Column::Source), new SongSourceDelegate(this));
|
||||
|
||||
#ifdef HAVE_MOODBAR
|
||||
setItemDelegateForColumn(static_cast<int>(Playlist::Column::Mood), new MoodbarItemDelegate(moodbar_loader_, this, this));
|
||||
setItemDelegateForColumn(static_cast<int>(Playlist::Column::Moodbar), new MoodbarItemDelegate(moodbar_loader_, this, this));
|
||||
#endif
|
||||
|
||||
rating_delegate_ = new RatingItemDelegate(this);
|
||||
@@ -254,6 +254,7 @@ void PlaylistView::SetItemDelegates() {
|
||||
|
||||
setItemDelegateForColumn(static_cast<int>(Playlist::Column::EBUR128IntegratedLoudness), new Ebur128LoudnessLUFSItemDelegate(this));
|
||||
setItemDelegateForColumn(static_cast<int>(Playlist::Column::EBUR128LoudnessRange), new Ebur128LoudnessRangeLUItemDelegate(this));
|
||||
|
||||
}
|
||||
|
||||
void PlaylistView::setModel(QAbstractItemModel *m) {
|
||||
@@ -390,11 +391,14 @@ void PlaylistView::RestoreHeaderState() {
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::LastPlayed));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Comment));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Grouping));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Mood));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Moodbar));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Rating));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::HasCUE));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::EBUR128IntegratedLoudness));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::EBUR128LoudnessRange));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::BPM));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::Mood));
|
||||
header_->HideSection(static_cast<int>(Playlist::Column::InitialKey));
|
||||
|
||||
header_->ShowSection(static_cast<int>(Playlist::Column::Track));
|
||||
header_->ShowSection(static_cast<int>(Playlist::Column::Title));
|
||||
@@ -1390,6 +1394,7 @@ ColumnAlignmentMap PlaylistView::DefaultColumnAlignment() {
|
||||
ret[static_cast<int>(Playlist::Column::Filesize)] =
|
||||
ret[static_cast<int>(Playlist::Column::PlayCount)] =
|
||||
ret[static_cast<int>(Playlist::Column::SkipCount)] =
|
||||
ret[static_cast<int>(Playlist::Column::BPM)] =
|
||||
(Qt::AlignRight | Qt::AlignVCenter);
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user