diff --git a/src/radio/lastfmservice.cpp b/src/radio/lastfmservice.cpp index 7314d2adf..a384fa97d 100644 --- a/src/radio/lastfmservice.cpp +++ b/src/radio/lastfmservice.cpp @@ -483,6 +483,8 @@ void LastFMService::NowPlaying(const Song &song) { qDebug() << "Scrobbling stream track" << mtrack.title() << "length" << duration_secs; scrobbler_->cache(mtrack); scrobbler_->submit(); + + emit ScrobbledRadioStream(); } } diff --git a/src/radio/lastfmservice.h b/src/radio/lastfmservice.h index 0bdaff804..5af4f0754 100644 --- a/src/radio/lastfmservice.h +++ b/src/radio/lastfmservice.h @@ -122,6 +122,7 @@ class LastFMService : public RadioService { void ScrobbleButtonVisibilityChanged(bool value); void ScrobblerStatus(int value); void UpdatedSubscriberStatus(bool is_subscriber); + void ScrobbledRadioStream(); protected: QModelIndex GetCurrentIndex(); diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 323add88d..0cdf3a18d 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -515,9 +515,11 @@ MainWindow::MainWindow( connect(radio_model_, SIGNAL(OpenSettingsAtPage(SettingsDialog::Page)), SLOT(OpenSettingsDialogAtPage(SettingsDialog::Page))); connect(radio_model_, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*))); #ifdef HAVE_LIBLASTFM - connect(RadioModel::Service(), SIGNAL(ButtonVisibilityChanged(bool)), SLOT(LastFMButtonVisibilityChanged(bool))); - connect(RadioModel::Service(), SIGNAL(ScrobbleButtonVisibilityChanged(bool)), SLOT(ScrobbleButtonVisibilityChanged(bool))); - connect(RadioModel::Service(), SIGNAL(ScrobblingEnabledChanged(bool)), SLOT(ScrobblingEnabledChanged(bool))); + LastFMService* lastfm_service = RadioModel::Service(); + connect(lastfm_service, SIGNAL(ButtonVisibilityChanged(bool)), SLOT(LastFMButtonVisibilityChanged(bool))); + connect(lastfm_service, SIGNAL(ScrobbleButtonVisibilityChanged(bool)), SLOT(ScrobbleButtonVisibilityChanged(bool))); + connect(lastfm_service, SIGNAL(ScrobblingEnabledChanged(bool)), SLOT(ScrobblingEnabledChanged(bool))); + connect(lastfm_service, SIGNAL(ScrobbledRadioStream()), SLOT(ScrobbledRadioStream())); #endif connect(radio_model_->Service(), SIGNAL(DownloadFinished(QStringList)), osd_, SLOT(MagnatuneDownloadFinished(QStringList))); connect(radio_view_->tree(), SIGNAL(AddToPlaylistSignal(QMimeData*)), SLOT(AddToPlaylist(QMimeData*))); @@ -1075,6 +1077,10 @@ void MainWindow::UpdateTrackPosition() { } #ifdef HAVE_LIBLASTFM +void MainWindow::ScrobbledRadioStream() { + ui_->action_love->setEnabled(true); +} + void MainWindow::Love() { RadioModel::Service()->Love(); ui_->action_love->setEnabled(false); diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 38698e1f7..8d8f46851 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -198,6 +198,7 @@ class MainWindow : public QMainWindow, public PlatformInterface { #ifdef HAVE_LIBLASTFM void ScrobblingEnabledChanged(bool value); void Love(); + void ScrobbledRadioStream(); #endif void TaskCountChanged(int count);