diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index fcf0944a3..ff61aaa63 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -1109,6 +1109,7 @@ void MainWindow::ReloadAllSettings() { app_->ReloadSettings(); app_->collection()->ReloadSettings(); app_->player()->ReloadSettings(); + app_->moodbar_controller()->ReloadSettings(); collection_view_->ReloadSettings(); ui_->playlist->view()->ReloadSettings(); app_->playlist_manager()->playlist_container()->ReloadSettings(); diff --git a/src/moodbar/moodbarcontroller.cpp b/src/moodbar/moodbarcontroller.cpp index bba16d688..45e3a0823 100644 --- a/src/moodbar/moodbarcontroller.cpp +++ b/src/moodbar/moodbarcontroller.cpp @@ -26,8 +26,8 @@ #include "core/player.h" #include "core/song.h" #include "engine/engine_fwd.h" +#include "settings/moodbarsettingspage.h" #include "playlist/playlistmanager.h" -#include "playlist/playlistitem.h" #include "moodbarcontroller.h" #include "moodbarloader.h" @@ -35,14 +35,28 @@ MoodbarController::MoodbarController(Application* app, QObject* parent) : QObject(parent), - app_(app) { + app_(app), + enabled_(false) { connect(app_->playlist_manager(), SIGNAL(CurrentSongChanged(Song)), SLOT(CurrentSongChanged(Song))); connect(app_->player(), SIGNAL(Stopped()), SLOT(PlaybackStopped())); + ReloadSettings(); + } -void MoodbarController::CurrentSongChanged(const Song& song) { +void MoodbarController::ReloadSettings() { + + QSettings s; + s.beginGroup(MoodbarSettingsPage::kSettingsGroup); + enabled_ = s.value("enabled", false).toBool(); + s.endGroup(); + +} + +void MoodbarController::CurrentSongChanged(const Song &song) { + + if (!enabled_) return; QByteArray data; MoodbarPipeline* pipeline = nullptr; @@ -69,7 +83,9 @@ void MoodbarController::CurrentSongChanged(const Song& song) { } void MoodbarController::PlaybackStopped() { - emit CurrentMoodbarDataChanged(QByteArray()); + if (enabled_) { + emit CurrentMoodbarDataChanged(QByteArray()); + } } void MoodbarController::AsyncLoadComplete(MoodbarPipeline* pipeline, const QUrl& url) { diff --git a/src/moodbar/moodbarcontroller.h b/src/moodbar/moodbarcontroller.h index 445e02df3..d0c0f7afc 100644 --- a/src/moodbar/moodbarcontroller.h +++ b/src/moodbar/moodbarcontroller.h @@ -33,6 +33,8 @@ class MoodbarController : public QObject { public: explicit MoodbarController(Application* app, QObject* parent = nullptr); + void ReloadSettings(); + signals: void CurrentMoodbarDataChanged(const QByteArray& data); @@ -43,6 +45,7 @@ class MoodbarController : public QObject { private: Application* app_; + bool enabled_; }; #endif // MOODBARCONTROLLER_H diff --git a/src/moodbar/moodbarloader.cpp b/src/moodbar/moodbarloader.cpp index 9592b2215..20dc81bb8 100644 --- a/src/moodbar/moodbarloader.cpp +++ b/src/moodbar/moodbarloader.cpp @@ -75,7 +75,6 @@ void MoodbarLoader::ReloadSettings() { QSettings s; s.beginGroup(MoodbarSettingsPage::kSettingsGroup); - enabled_ = s.value("enabled", false).toBool(); save_ = s.value("save", false).toBool(); s.endGroup(); @@ -148,7 +147,7 @@ void MoodbarLoader::MaybeTakeNextRequest() { Q_ASSERT(QThread::currentThread() == qApp->thread()); - if (active_requests_.count() >= kMaxActiveRequests || queued_requests_.isEmpty() || !enabled_) { + if (active_requests_.count() >= kMaxActiveRequests || queued_requests_.isEmpty()) { return; }