File Add-a-setting-for-disabling-moodbar-generation.patch of Package clementine

From c4c7265e7a7cb8dd825e6e9ca358e59626ebd02a Mon Sep 17 00:00:00 2001
From: John Maguire <john.maguire@gmail.com>
Date: Mon, 19 Nov 2012 14:32:39 +0100
Subject: Add a setting for disabling moodbar generation. Fixes issue #3161
References: bnc#818127

---
 src/moodbar/moodbarloader.cpp     |   12 ++++++++----
 src/moodbar/moodbarloader.h       |    1 +
 src/ui/appearancesettingspage.cpp |    2 ++
 src/ui/appearancesettingspage.h   |    1 +
 src/ui/appearancesettingspage.ui  |   15 +++++++++++----
 5 files changed, 23 insertions(+), 8 deletions(-)

--- a/src/moodbar/moodbarloader.cpp
+++ b/src/moodbar/moodbarloader.cpp
@@ -37,7 +37,8 @@ MoodbarLoader::MoodbarLoader(Application
     cache_(new QNetworkDiskCache(this)),
     thread_(new QThread(this)),
     kMaxActiveRequests(qMax(1, QThread::idealThreadCount() / 2)),
-    save_alongside_originals_(false)
+    save_alongside_originals_(false),
+    disable_moodbar_calculation_(false)
 {
   cache_->setCacheDirectory(Utilities::GetConfigPath(Utilities::Path_MoodbarCache));
   cache_->setMaximumCacheSize(60 * 1024 * 1024); // 60MB - enough for 20,000 moodbars
@@ -55,6 +56,9 @@ void MoodbarLoader::ReloadSettings() {
   QSettings s;
   s.beginGroup("Moodbar");
   save_alongside_originals_ = s.value("save_alongside_originals", false).toBool();
+
+  disable_moodbar_calculation_ = !s.value("calculate", true).toBool();
+  MaybeTakeNextRequest();
 }
 
 QStringList MoodbarLoader::MoodFilenames(const QString& song_filename) {
@@ -111,8 +115,8 @@ MoodbarLoader::Result MoodbarLoader::Loa
   MoodbarPipeline* pipeline = new MoodbarPipeline(url);
   pipeline->moveToThread(thread_);
   NewClosure(pipeline, SIGNAL(Finished(bool)),
-             this, SLOT(RequestFinished(MoodbarPipeline*,QUrl)),
-             pipeline, url);
+     this, SLOT(RequestFinished(MoodbarPipeline*,QUrl)),
+     pipeline, url);
 
   requests_[url] = pipeline;
   queued_requests_ << url;
@@ -127,7 +131,7 @@ void MoodbarLoader::MaybeTakeNextRequest
   Q_ASSERT(QThread::currentThread() == qApp->thread());
 
   if (active_requests_.count() >= kMaxActiveRequests ||
-      queued_requests_.isEmpty()) {
+      queued_requests_.isEmpty() || disable_moodbar_calculation_) {
     return;
   }
 
--- a/src/moodbar/moodbarloader.h
+++ b/src/moodbar/moodbarloader.h
@@ -70,6 +70,7 @@ private:
   QSet<QUrl> active_requests_;
 
   bool save_alongside_originals_;
+  bool disable_moodbar_calculation_;
 };
 
 #endif // MOODBARLOADER_H
--- a/src/ui/appearancesettingspage.cpp
+++ b/src/ui/appearancesettingspage.cpp
@@ -120,6 +120,7 @@ void AppearanceSettingsPage::Load() {
   s.beginGroup("Moodbar");
   ui_->moodbar_show->setChecked(s.value("show", true).toBool());
   ui_->moodbar_style->setCurrentIndex(s.value("style", 0).toInt());
+  ui_->moodbar_calculate->setChecked(!s.value("calculate", true).toBool());
   ui_->moodbar_save->setChecked(s.value("save_alongside_originals", false).toBool());
   s.endGroup();
 
@@ -159,6 +160,7 @@ void AppearanceSettingsPage::Save() {
 
   // Moodbar settings
   s.beginGroup("Moodbar");
+  s.setValue("calculate", !ui_->moodbar_calculate->isChecked());
   s.setValue("show", ui_->moodbar_show->isChecked());
   s.setValue("style", ui_->moodbar_style->currentIndex());
   s.setValue("save_alongside_originals", ui_->moodbar_save->isChecked());
--- a/src/ui/appearancesettingspage.h
+++ b/src/ui/appearancesettingspage.h
@@ -64,6 +64,7 @@ private:
   QString playlist_view_background_image_filename_;
 
   bool initialised_moodbar_previews_;
+  bool dont_calculate_moodbar_;
 };
 
 #endif // APPEARANCESETTINGSPAGE_H
--- a/src/ui/appearancesettingspage.ui
+++ b/src/ui/appearancesettingspage.ui
@@ -164,30 +164,37 @@
       <string>Moodbars</string>
      </property>
      <layout class="QFormLayout" name="formLayout">
-      <item row="0" column="0" colspan="2">
+      <item row="1" column="0" colspan="2">
        <widget class="QCheckBox" name="moodbar_show">
         <property name="text">
          <string>Show a moodbar in the track progress bar</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
+      <item row="2" column="0">
        <widget class="QLabel" name="label">
         <property name="text">
          <string>Moodbar style</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
+      <item row="2" column="1">
        <widget class="QComboBox" name="moodbar_style"/>
       </item>
-      <item row="2" column="0" colspan="2">
+      <item row="3" column="0" colspan="2">
        <widget class="QCheckBox" name="moodbar_save">
         <property name="text">
          <string>Save .mood files in your music library</string>
         </property>
        </widget>
       </item>
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="moodbar_calculate">
+        <property name="text">
+         <string>Disable moodbar generation</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
openSUSE Build Service is sponsored by