diff --git a/src/core/song.cpp b/src/core/song.cpp index 9a851cc30..6afc9459f 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -1049,6 +1049,16 @@ void Song::ToLastFM(lastfm::Track* track, bool prefer_album_artist) const { } #endif // HAVE_LIBLASTFM +QString Song::PrettyRating() const { + float rating = d->rating_; + + if (rating == -1.0f) + return "0"; + + return QString::number(static_cast(rating * 100)); +} + + QString Song::PrettyTitle() const { QString title(d->title_); diff --git a/src/core/song.h b/src/core/song.h index 4e9f5dc9e..240ddfd89 100644 --- a/src/core/song.h +++ b/src/core/song.h @@ -216,6 +216,7 @@ class Song { const QImage& image() const; // Pretty accessors + QString PrettyRating() const; QString PrettyTitle() const; QString PrettyTitleWithArtist() const; QString PrettyLength() const; diff --git a/src/ui/notificationssettingspage.cpp b/src/ui/notificationssettingspage.cpp index 2284124e2..1991a0928 100644 --- a/src/ui/notificationssettingspage.cpp +++ b/src/ui/notificationssettingspage.cpp @@ -55,6 +55,8 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog* dialog) menu->addAction(ui_->action_playcount); menu->addAction(ui_->action_skipcount); menu->addAction(ui_->action_filename); + menu->addAction(ui_->action_rating); + menu->addAction(ui_->action_score); menu->addSeparator(); menu->addAction(ui_->action_newline); ui_->notifications_exp_chooser1->setMenu(menu); diff --git a/src/ui/notificationssettingspage.ui b/src/ui/notificationssettingspage.ui index 55719e17f..5ffec8033 100644 --- a/src/ui/notificationssettingspage.ui +++ b/src/ui/notificationssettingspage.ui @@ -426,6 +426,22 @@ Add song skip count + + + %rating% + + + Add song rating + + + + + %score% + + + Add song auto score + + %newline% diff --git a/src/widgets/osd.cpp b/src/widgets/osd.cpp index 30b161bb6..26586ec13 100644 --- a/src/widgets/osd.cpp +++ b/src/widgets/osd.cpp @@ -320,6 +320,10 @@ QString OSD::ReplaceVariable(const QString& variable, const Song& song) { return return_value.setNum(song.skipcount()); } else if (variable == "%filename%") { return song.basefilename(); + } else if (variable == "%rating%") { + return song.PrettyRating(); + } else if (variable == "%score%") { + return QString::number(song.score()); } else if (variable == "%newline%") { // We need different strings depending on notification type switch (behaviour_) {