diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-04-17 15:27:04 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-04-17 15:54:47 -0300 |
commit | 364e28c52afd90b1a4c618040680ce002ce520a6 (patch) | |
tree | 1827fc1718a25e5b1be9476430ad580993769e58 /libre/clementine/remove-nonfree-artwork-and-spotify.patch | |
parent | a56439c69533fb2c7a803f998326ac146ed7499a (diff) |
clementine-1.3-1.parabola1: updating version
Diffstat (limited to 'libre/clementine/remove-nonfree-artwork-and-spotify.patch')
-rw-r--r-- | libre/clementine/remove-nonfree-artwork-and-spotify.patch | 757 |
1 files changed, 519 insertions, 238 deletions
diff --git a/libre/clementine/remove-nonfree-artwork-and-spotify.patch b/libre/clementine/remove-nonfree-artwork-and-spotify.patch index 8c1b9aafd..76b875e11 100644 --- a/libre/clementine/remove-nonfree-artwork-and-spotify.patch +++ b/libre/clementine/remove-nonfree-artwork-and-spotify.patch @@ -11,27 +11,27 @@ index a349f59..c418e0b 100644 @"com.apple.QuickTimePlayerX", @"com.apple.quicktimeplayer", diff --git a/CMakeLists.txt b/CMakeLists.txt -index 47f1693..986351b 100644 +index 23070d9..f2c8b72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -7,7 +7,6 @@ include(cmake/Summary.cmake) +@@ -7,7 +7,6 @@ include(cmake/C++11Compat.cmake) + include(cmake/Summary.cmake) include(cmake/Version.cmake) include(cmake/Deb.cmake) - include(cmake/Rpm.cmake) -include(cmake/SpotifyVersion.cmake) include(cmake/OptionalSource.cmake) + include(cmake/Format.cmake) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) - -@@ -78,7 +77,6 @@ pkg_check_modules(LIBMYGPO_QT libmygpo-qt>=1.0.7) +@@ -74,7 +73,6 @@ pkg_check_modules(LIBMYGPO_QT libmygpo-qt>=1.0.9) + pkg_check_modules(LIBPULSE libpulse) pkg_check_modules(LIBXML libxml-2.0) - pkg_check_modules(QCA qca2) pkg_check_modules(QJSON REQUIRED QJson) -pkg_check_modules(SPOTIFY libspotify>=12.1.45) pkg_check_modules(TAGLIB REQUIRED taglib>=1.6) if (WIN32) -@@ -124,13 +122,6 @@ if (APPLE) - find_library(GROWL Growl) +@@ -117,13 +115,6 @@ endif() + if (APPLE) find_library(SPARKLE Sparkle) - find_library(SPOTIFY libspotify) @@ -44,30 +44,34 @@ index 47f1693..986351b 100644 add_subdirectory(3rdparty/SPMediaKeyTap) set(SPMEDIAKEYTAP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SPMediaKeyTap) set(SPMEDIAKEYTAP_LIBRARIES SPMediaKeyTap) -@@ -254,7 +245,7 @@ optional_component(DEVICEKIT ON "Devices: DeviceKit backend" +@@ -254,11 +245,6 @@ optional_component(DEVICEKIT ON "Devices: DeviceKit backend" DEPENDS "D-Bus support" HAVE_DBUS ) -optional_component(SPOTIFY_BLOB ON "Spotify support: non-GPL binary helper" -+optional_component(SPOTIFY_BLOB OFF "Spotify support: non-GPL binary helper" - DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE - DEPENDS "libspotify" SPOTIFY_FOUND +- DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE +- DEPENDS "libspotify" SPOTIFY_FOUND +-) +- + optional_component(MOODBAR ON "Moodbar support" + DEPENDS "fftw3" FFTW3_FOUND ) -@@ -270,13 +261,6 @@ optional_component(SPARKLE ON "Sparkle integration" +@@ -274,14 +260,6 @@ optional_component(LIBPULSE ON "Pulse audio integration" optional_component(VISUALISATIONS ON "Visualisations") --if(NOT HAVE_SPOTIFY_BLOB AND NOT QCA_FOUND) -- message(FATAL_ERROR "Either QCA must be available or the non-GPL Spotify " +-if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND) +- message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify " - "code must be compiled in") --elseif(QCA_FOUND) +-elseif(CRYPTOPP_FOUND) +- set(HAVE_CRYPTOPP ON) - set(HAVE_SPOTIFY_DOWNLOADER ON) -endif() - # Find DBus if it's enabled if (HAVE_DBUS) find_package(Qt4 REQUIRED QtDbus) -@@ -440,7 +424,6 @@ add_subdirectory(ext/libclementine-common) +@@ -422,7 +400,6 @@ add_subdirectory(ext/libclementine-common) add_subdirectory(ext/libclementine-tagreader) add_subdirectory(ext/clementine-tagreader) add_subdirectory(ext/libclementine-remote) @@ -75,7 +79,7 @@ index 47f1693..986351b 100644 option(WITH_DEBIAN OFF) if(WITH_DEBIAN) -@@ -451,10 +434,6 @@ if(HAVE_BREAKPAD) +@@ -433,10 +410,6 @@ if(HAVE_BREAKPAD) add_subdirectory(3rdparty/google-breakpad) endif(HAVE_BREAKPAD) @@ -87,42 +91,18 @@ index 47f1693..986351b 100644 add_subdirectory(gst/moodbar) endif() diff --git a/data/data.qrc b/data/data.qrc -index 4c5473f..bd5fe2d 100644 +index 694eaad..caecc30 100644 --- a/data/data.qrc +++ b/data/data.qrc -@@ -2,7 +2,6 @@ - <qresource prefix="/"> +@@ -3,7 +3,6 @@ + <file>Equifax_Secure_Certificate_Authority.pem</file> <file>blank.ttf</file> <file>clementine_remote_qr.png</file> - <file>clementine-spotify-public.pem</file> <file>currenttrack_bar_left.png</file> <file>currenttrack_bar_mid.png</file> <file>currenttrack_bar_right.png</file> -@@ -77,7 +76,6 @@ - <file>icons/22x22/phone-nokia-n900.png</file> - <file>icons/22x22/phone-palm-pre.png</file> - <file>icons/22x22/phone.png</file> -- <file>icons/22x22/spotify.png</file> - <file>icons/22x22/user-away.png</file> - <file>icons/22x22/view-choose.png</file> - <file>icons/22x22/view-fullscreen.png</file> -@@ -154,7 +152,6 @@ - <file>icons/32x32/phone-palm-pre.png</file> - <file>icons/32x32/phone.png</file> - <file>icons/32x32/search.png</file> -- <file>icons/32x32/spotify.png</file> - <file>icons/32x32/tools-wizard.png</file> - <file>icons/32x32/view-choose.png</file> - <file>icons/32x32/view-fullscreen.png</file> -@@ -230,7 +227,6 @@ - <file>icons/48x48/phone-nokia-n900.png</file> - <file>icons/48x48/phone-palm-pre.png</file> - <file>icons/48x48/phone.png</file> -- <file>icons/48x48/spotify.png</file> - <file>icons/48x48/view-choose.png</file> - <file>icons/48x48/view-fullscreen.png</file> - <file>icons/48x48/view-media-equalizer.png</file> -@@ -262,10 +258,10 @@ +@@ -280,10 +279,10 @@ <file>lumberjacksong.txt</file> <file>lyrics/ultimate_providers.xml</file> <file>mainwindow.css</file> @@ -134,19 +114,56 @@ index 4c5473f..bd5fe2d 100644 <file>oauthsuccess.html</file> <file>osd_background.png</file> <file>osd_shadow_corner.png</file> -@@ -391,7 +387,6 @@ - <file>smartplaylistsearchterm.css</file> +@@ -350,7 +349,6 @@ + <file>providers/22x22/somafm.png</file> + <file>providers/22x22/songkick.png</file> + <file>providers/22x22/soundcloud.png</file> +- <file>providers/22x22/spotify.png</file> + <file>providers/22x22/subsonic.png</file> + <file>providers/22x22/vk.png</file> + <file>providers/22x22/wikipedia.png</file> +@@ -382,7 +380,6 @@ + <file>providers/32x32/somafm.png</file> + <file>providers/32x32/songkick.png</file> + <file>providers/32x32/soundcloud.png</file> +- <file>providers/32x32/spotify.png</file> + <file>providers/32x32/subsonic.png</file> + <file>providers/32x32/vk.png</file> + <file>providers/32x32/wikipedia.png</file> +@@ -414,7 +411,6 @@ + <file>providers/48x48/somafm.png</file> + <file>providers/48x48/songkick.png</file> + <file>providers/48x48/soundcloud.png</file> +- <file>providers/48x48/spotify.png</file> + <file>providers/48x48/subsonic.png</file> + <file>providers/48x48/vk.png</file> + <file>providers/48x48/wikipedia.png</file> +@@ -478,7 +474,6 @@ <file>songinfo.css</file> + <file>soundcloud-ca.pem</file> <file>spinner.gif</file> - <file>spotify-attribution.png</file> <file>star-off.png</file> <file>star-on.png</file> <file>tiny-pause.png</file> +diff --git a/dist/codesign.py b/dist/codesign.py +index 7c111fd..fee7345 100755 +--- a/dist/codesign.py ++++ b/dist/codesign.py +@@ -33,7 +33,7 @@ def main(): + for file in files: + if re.search(r'\.(dylib|so)$', file): + SignPath(os.path.join(root, file), developer_id) +- elif re.match(r'(clementine-spotifyblob|clementine-tagreader|gst-plugin-scanner)', file): ++ elif re.match(r'(clementine-tagreader|gst-plugin-scanner)', file): + SignPath(os.path.join(root, file), developer_id) + + SignPath(app_bundle, developer_id, deep=False) diff --git a/dist/macdeploy.py b/dist/macdeploy.py -index e054619..3568a6f 100755 +index 5d83c2e..f4d7d33 100755 --- a/dist/macdeploy.py +++ b/dist/macdeploy.py -@@ -398,10 +398,7 @@ def main(): +@@ -435,10 +435,7 @@ def main(): FixPlugin(FindGioModule('libgiolibproxy.so'), 'gio-modules') try: @@ -158,10 +175,10 @@ index e054619..3568a6f 100755 for plugin in QT_PLUGINS: FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin)) diff --git a/dist/windows/clementine.nsi.in b/dist/windows/clementine.nsi.in -index 750b332..6bf47ff 100644 +index 10ba0ff..2e1eba6 100644 --- a/dist/windows/clementine.nsi.in +++ b/dist/windows/clementine.nsi.in -@@ -97,9 +97,6 @@ Section "Delete old files" oldfiles +@@ -187,9 +187,6 @@ Section "Delete old files" oldfiles Delete "$INSTDIR\gstreamer-plugins\libgstqueue2.dll" Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll" @@ -171,40 +188,40 @@ index 750b332..6bf47ff 100644 ; 1.0 Delete "$INSTDIR\libofa.dll" Delete "$INSTDIR\gstreamer-plugins\libgstofa.dll" -@@ -128,7 +125,6 @@ Section "Clementine" Clementine - File "avutil-51.dll" +@@ -260,7 +257,6 @@ Section "Clementine" Clementine + File "clementine.exe" File "clementine-tagreader.exe" - File "clementine-spotifyblob.exe" File "clementine.ico" File "glew32.dll" - File "intl.dll" -@@ -181,7 +177,6 @@ Section "Clementine" Clementine + File "libcdio-16.dll" +@@ -314,7 +310,6 @@ Section "Clementine" Clementine + File "libprotobuf-8.dll" File "libqjson.dll" - File "libsoup-2.4-1.dll" File "libspeex-1.dll" - File "libspotify.dll" + File "libsqlite3-0.dll" File "libstdc++-6.dll" File "libtag.dll" - File "libtasn1-3.dll" -@@ -939,7 +934,6 @@ Section "Uninstall" +@@ -1073,7 +1068,6 @@ Section "Uninstall" Delete "$INSTDIR\clementine.ico" Delete "$INSTDIR\clementine.exe" Delete "$INSTDIR\clementine-tagreader.exe" - Delete "$INSTDIR\clementine-spotifyblob.exe" Delete "$INSTDIR\glew32.dll" - Delete "$INSTDIR\intl.dll" - Delete "$INSTDIR\libcdio-14.dll" -@@ -992,7 +986,6 @@ Section "Uninstall" + Delete "$INSTDIR\libcdio-16.dll" + Delete "$INSTDIR\libchromaprint.dll" +@@ -1126,7 +1120,6 @@ Section "Uninstall" + Delete "$INSTDIR\libprotobuf-8.dll" Delete "$INSTDIR\libqjson.dll" - Delete "$INSTDIR\libsoup-2.4-1.dll" Delete "$INSTDIR\libspeex-1.dll" - Delete "$INSTDIR\libspotify.dll" Delete "$INSTDIR\libstdc++-6.dll" Delete "$INSTDIR\libtag.dll" - Delete "$INSTDIR\libtasn1-3.dll" + Delete "$INSTDIR\libtasn1-6.dll" diff --git a/ext/libclementine-common/core/logging.cpp b/ext/libclementine-common/core/logging.cpp -index 3c53d7a..49dd8cf 100644 +index ec8faa2..f76f034 100644 --- a/ext/libclementine-common/core/logging.cpp +++ b/ext/libclementine-common/core/logging.cpp @@ -14,10 +14,6 @@ @@ -219,10 +236,10 @@ index 3c53d7a..49dd8cf 100644 #include <cxxabi.h> diff --git a/ext/libclementine-common/core/logging.h b/ext/libclementine-common/core/logging.h -index 3c582cf..4a3cea8 100644 +index 21eebdf..68232ca 100644 --- a/ext/libclementine-common/core/logging.h +++ b/ext/libclementine-common/core/logging.h -@@ -14,11 +14,6 @@ +@@ -14,10 +14,6 @@ limitations under the License. */ @@ -230,15 +247,59 @@ index 3c582cf..4a3cea8 100644 -// it is used by the Spotify blob which links against libspotify and is not GPL -// compatible. - -- #ifndef LOGGING_H #define LOGGING_H +diff --git a/ext/libclementine-common/core/messagehandler.cpp b/ext/libclementine-common/core/messagehandler.cpp +index 1ea6492..5c4e79a 100644 +--- a/ext/libclementine-common/core/messagehandler.cpp ++++ b/ext/libclementine-common/core/messagehandler.cpp +@@ -14,10 +14,6 @@ + limitations under the License. + */ + +-// Note: this file is licensed under the Apache License instead of GPL because +-// it is used by the Spotify blob which links against libspotify and is not GPL +-// compatible. +- + #include "messagehandler.h" + #include "core/logging.h" + +diff --git a/ext/libclementine-common/core/messagehandler.h b/ext/libclementine-common/core/messagehandler.h +index 5a7f8f2..7df58df 100644 +--- a/ext/libclementine-common/core/messagehandler.h ++++ b/ext/libclementine-common/core/messagehandler.h +@@ -14,10 +14,6 @@ + limitations under the License. + */ + +-// Note: this file is licensed under the Apache License instead of GPL because +-// it is used by the Spotify blob which links against libspotify and is not GPL +-// compatible. +- + #ifndef MESSAGEHANDLER_H + #define MESSAGEHANDLER_H + +diff --git a/ext/libclementine-common/core/override.h b/ext/libclementine-common/core/override.h +index 98c2764..ca37137 100644 +--- a/ext/libclementine-common/core/override.h ++++ b/ext/libclementine-common/core/override.h +@@ -14,10 +14,6 @@ + limitations under the License. + */ + +-// Note: this file is licensed under the Apache License instead of GPL because +-// it is used by the Spotify blob which links against libspotify and is not GPL +-// compatible. +- + #ifndef OVERRIDE_H + #define OVERRIDE_H + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 1104542..e7a8032 100644 +index afe58b9..125dd75 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -60,8 +60,6 @@ include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-tagreader) +@@ -56,8 +56,6 @@ include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-tagreader) include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-tagreader) include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-remote) include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-remote) @@ -247,7 +308,7 @@ index 1104542..e7a8032 100644 cmake_policy(SET CMP0011 NEW) include(../cmake/ParseArguments.cmake) -@@ -157,7 +155,6 @@ set(SOURCES +@@ -154,7 +152,6 @@ set(SOURCES globalsearch/simplesearchprovider.cpp globalsearch/somafmsearchprovider.cpp globalsearch/soundcloudsearchprovider.cpp @@ -255,16 +316,16 @@ index 1104542..e7a8032 100644 globalsearch/suggestionwidget.cpp globalsearch/urlsearchprovider.cpp -@@ -195,9 +192,6 @@ set(SOURCES - internet/somafmservice.cpp - internet/somafmurlhandler.cpp - internet/soundcloudservice.cpp -- internet/spotifyserver.cpp -- internet/spotifyservice.cpp -- internet/spotifysettingspage.cpp - internet/subsonicservice.cpp - internet/subsonicsettingspage.cpp - internet/subsonicurlhandler.cpp +@@ -191,9 +188,6 @@ set(SOURCES + internet/somafm/somafmurlhandler.cpp + internet/soundcloud/soundcloudservice.cpp + internet/soundcloud/soundcloudsettingspage.cpp +- internet/spotify/spotifyserver.cpp +- internet/spotify/spotifyservice.cpp +- internet/spotify/spotifysettingspage.cpp + internet/subsonic/subsonicservice.cpp + internet/subsonic/subsonicsettingspage.cpp + internet/subsonic/subsonicurlhandler.cpp @@ -461,7 +455,6 @@ set(HEADERS globalsearch/searchprovider.h globalsearch/simplesearchprovider.h @@ -272,42 +333,42 @@ index 1104542..e7a8032 100644 - globalsearch/spotifysearchprovider.h globalsearch/suggestionwidget.h - internet/cloudfileservice.h + internet/core/cloudfileservice.h @@ -494,9 +487,6 @@ set(HEADERS - internet/somafmservice.h - internet/somafmurlhandler.h - internet/soundcloudservice.h -- internet/spotifyserver.h -- internet/spotifyservice.h -- internet/spotifysettingspage.h - internet/subsonicservice.h - internet/subsonicsettingspage.h - internet/subsonicurlhandler.h -@@ -685,7 +675,6 @@ set(UI - internet/magnatunedownloaddialog.ui - internet/magnatunesettingspage.ui - internet/searchboxwidget.ui -- internet/spotifysettingspage.ui - internet/subsonicsettingspage.ui + internet/somafm/somafmurlhandler.h + internet/soundcloud/soundcloudservice.h + internet/soundcloud/soundcloudsettingspage.h +- internet/spotify/spotifyserver.h +- internet/spotify/spotifyservice.h +- internet/spotify/spotifysettingspage.h + internet/subsonic/subsonicservice.h + internet/subsonic/subsonicsettingspage.h + internet/subsonic/subsonicurlhandler.h +@@ -692,7 +682,6 @@ set(UI + internet/magnatune/magnatunesettingspage.ui + internet/core/searchboxwidget.ui + internet/soundcloud/soundcloudsettingspage.ui +- internet/spotify/spotifysettingspage.ui + internet/subsonic/subsonicsettingspage.ui library/groupbydialog.ui -@@ -836,15 +825,6 @@ optional_source(HAVE_LIBLASTFM +@@ -839,15 +828,6 @@ optional_source(HAVE_LIBLASTFM ) -optional_source(HAVE_SPOTIFY_DOWNLOADER - SOURCES -- internet/spotifyblobdownloader.cpp +- internet/spotify/spotifyblobdownloader.cpp - HEADERS -- internet/spotifyblobdownloader.h +- internet/spotify/spotifyblobdownloader.h - INCLUDE_DIRECTORIES -- ${QCA_INCLUDE_DIRS} +- ${CRYPTOPP_INCLUDE_DIRS} -) - # Platform specific - OS X optional_source(APPLE INCLUDE_DIRECTORIES -@@ -1171,7 +1151,6 @@ add_dependencies(clementine_lib pot) +@@ -1233,7 +1213,6 @@ add_dependencies(clementine_lib pot) target_link_libraries(clementine_lib @@ -315,21 +376,21 @@ index 1104542..e7a8032 100644 libclementine-common libclementine-tagreader libclementine-remote -@@ -1240,13 +1219,6 @@ if(HAVE_BREAKPAD) +@@ -1303,13 +1282,6 @@ if(HAVE_BREAKPAD) endif (LINUX) endif(HAVE_BREAKPAD) -if(HAVE_SPOTIFY_DOWNLOADER) - target_link_libraries(clementine_lib -- ${QCA_LIBRARIES} +- ${CRYPTOPP_LIBRARIES} - ) -- link_directories(${QCA_LIBRARY_DIRS}) +- link_directories(${CRYPTOPP_LIBRARY_DIRS}) -endif(HAVE_SPOTIFY_DOWNLOADER) - - if (APPLE) - target_link_libraries(clementine_lib - ${GROWL} -@@ -1328,16 +1300,6 @@ target_link_libraries(clementine + if(HAVE_LIBPULSE) + target_link_libraries(clementine_lib ${LIBPULSE_LIBRARIES}) + endif() +@@ -1394,16 +1366,6 @@ target_link_libraries(clementine clementine_lib ) @@ -346,51 +407,65 @@ index 1104542..e7a8032 100644 if (APPLE) install(FILES ../dist/clementine.icns DESTINATION "${CMAKE_BINARY_DIR}/clementine.app/Contents/Resources") -diff --git a/src/analyzers/nyancatanalyzer.cpp b/src/analyzers/nyancatanalyzer.cpp -index 39ea101..ab19341 100644 ---- a/src/analyzers/nyancatanalyzer.cpp -+++ b/src/analyzers/nyancatanalyzer.cpp -@@ -23,13 +23,13 @@ - #include <QTimerEvent> - #include <QBrush> - --const char* NyanCatAnalyzer::kName = "Nyanalyzer cat"; -+const char* NyanCatAnalyzer::kName = "MooGNU"; - const float NyanCatAnalyzer::kPixelScale = 0.02f; - - - NyanCatAnalyzer::NyanCatAnalyzer(QWidget* parent) - : Analyzer::Base(parent, 9), -- cat_(":/nyancat.png"), -+ cat_(":/moognu.png"), - timer_id_(startTimer(kFrameIntervalMs)), - frame_(0), - current_buffer_(0), +diff --git a/src/analyzers/rainbowanalyzer.cpp b/src/analyzers/rainbowanalyzer.cpp +index c8aa0cf..e8eec8b 100644 +--- a/src/analyzers/rainbowanalyzer.cpp ++++ b/src/analyzers/rainbowanalyzer.cpp +@@ -40,7 +40,7 @@ const int Rainbow::RainbowAnalyzer::kRainbowHeight[] = { 21, 16 }; + const int Rainbow::RainbowAnalyzer::kRainbowOverlap[] = { 13, 15 }; + const int Rainbow::RainbowAnalyzer::kSleepingHeight[] = { 24, 33 }; + +-const char* Rainbow::NyanCatAnalyzer::kName = "Nyanalyzer Cat"; ++const char* Rainbow::NyanCatAnalyzer::kName = "MooGNU"; + const char* Rainbow::RainbowDashAnalyzer::kName = "Rainbow Dash"; + const float Rainbow::RainbowAnalyzer::kPixelScale = 0.02f; + +@@ -56,7 +56,7 @@ Rainbow::RainbowAnalyzer::RainbowAnalyzer(const RainbowType& rbtype, QWidget* pa + x_offset_(0), + background_brush_(QColor(0x0f, 0x43, 0x73)) { + rainbowtype = rbtype; +- cat_dash_[0] = QPixmap(":/nyancat.png"); ++ cat_dash_[0] = QPixmap(":/moognu.png"); + cat_dash_[1] = QPixmap(":/rainbowdash.png"); + memset(history_, 0, sizeof(history_)); + +@@ -192,8 +192,8 @@ void Rainbow::RainbowAnalyzer::analyze(QPainter& p, const Analyzer::Scope& s, + // Draw the buffer on to the widget + p.drawPixmap(0, 0, buffer_[current_buffer_], x_offset_, 0, 0, 0); + +- // Draw rainbow analyzer (nyan cat or rainbowdash) +- // Nyan nyan nyan nyan dash dash dash dash. ++ // Draw rainbow analyzer (moo gnu or rainbowdash) ++ // Moo moo moo moo dash dash dash dash. + if (!is_playing_) { + // Ssshhh! + p.drawPixmap(SleepingDestRect(rainbowtype), cat_dash_[rainbowtype], diff --git a/src/config.h.in b/src/config.h.in -index 6cac97e..90e4ee2 100644 +index f22fe9b..92124f5 100644 --- a/src/config.h.in +++ b/src/config.h.in -@@ -39,7 +39,6 @@ - #cmakedefine HAVE_QCA +@@ -40,7 +40,6 @@ + #cmakedefine HAVE_SEAFILE #cmakedefine HAVE_SKYDRIVE #cmakedefine HAVE_SPARKLE -#cmakedefine HAVE_SPOTIFY_DOWNLOADER - #cmakedefine HAVE_STATIC_SQLITE - #cmakedefine HAVE_UBUNTU_ONE + #cmakedefine HAVE_VK #cmakedefine HAVE_WIIMOTEDEV + #cmakedefine TAGLIB_HAS_OPUS diff --git a/src/core/backgroundstreams.cpp b/src/core/backgroundstreams.cpp -index 347b959..b00cb87 100644 +index 2e6ac60..e62504c 100644 --- a/src/core/backgroundstreams.cpp +++ b/src/core/backgroundstreams.cpp -@@ -9,7 +9,6 @@ +@@ -28,8 +28,6 @@ const char* BackgroundStreams::kSettingsGroup = "BackgroundStreams"; const char* BackgroundStreams::kHypnotoadUrl = "hypnotoad:///"; --const char* BackgroundStreams::kRainUrl = "http://data.clementine-player.org/rainymood"; +-const char* BackgroundStreams::kRainUrl = +- "http://data.clementine-player.org/rainymood"; const char* BackgroundStreams::kEnterpriseUrl = "enterprise:///"; BackgroundStreams::BackgroundStreams(EngineBase* engine, QObject* parent) -@@ -28,7 +27,6 @@ void BackgroundStreams::LoadStreams() { +@@ -44,7 +42,6 @@ void BackgroundStreams::LoadStreams() { int version = s.value("version", 0).toInt(); if (version < 1) { AddStream(QT_TR_NOOP("Hypnotoad"), QUrl(kHypnotoadUrl)); @@ -399,10 +474,10 @@ index 347b959..b00cb87 100644 if (version < kVersion) { diff --git a/src/core/timeconstants.h b/src/core/timeconstants.h -index 96242d6..69196bd 100644 +index 67d0227..49020d8 100644 --- a/src/core/timeconstants.h +++ b/src/core/timeconstants.h -@@ -14,10 +14,6 @@ +@@ -16,10 +16,6 @@ limitations under the License. */ @@ -410,16 +485,16 @@ index 96242d6..69196bd 100644 -// it is used by the Spotify blob which links against libspotify and is not GPL -// compatible. - - #ifndef TIMECONSTANTS_H - #define TIMECONSTANTS_H + #ifndef CORE_TIMECONSTANTS_H_ + #define CORE_TIMECONSTANTS_H_ diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp -index 3fdc6be..e6a109f 100644 +index 739cadb..a022a47 100644 --- a/src/core/utilities.cpp +++ b/src/core/utilities.cpp -@@ -340,9 +340,6 @@ QString GetConfigPath(ConfigPath config) { - return QDir::homePath(); - #endif +@@ -368,9 +368,6 @@ QString GetConfigPath(ConfigPath config) { + return QDir::homePath(); + #endif - case Path_LocalSpotifyBlob: - return GetConfigPath(Path_Root) + "/spotifyblob"; @@ -428,40 +503,38 @@ index 3fdc6be..e6a109f 100644 qFatal("%s", Q_FUNC_INFO); return QString::null; diff --git a/src/core/utilities.h b/src/core/utilities.h -index edaa545..ad2138c 100644 +index 5fd8fc1..36ddefe 100644 --- a/src/core/utilities.h +++ b/src/core/utilities.h -@@ -111,7 +111,6 @@ namespace Utilities { - Path_NetworkCache, - Path_GstreamerRegistry, - Path_DefaultMusicLibrary, -- Path_LocalSpotifyBlob, - Path_MoodbarCache, - Path_CacheRoot, - }; +@@ -129,7 +129,6 @@ enum ConfigPath { + Path_NetworkCache, + Path_GstreamerRegistry, + Path_DefaultMusicLibrary, +- Path_LocalSpotifyBlob, + Path_MoodbarCache, + Path_CacheRoot, + }; diff --git a/src/covers/albumcoverloader.cpp b/src/covers/albumcoverloader.cpp -index a4c4241..39dd101 100644 +index 8ebf51c..b4d646b 100644 --- a/src/covers/albumcoverloader.cpp +++ b/src/covers/albumcoverloader.cpp -@@ -30,7 +30,6 @@ +@@ -34,14 +34,12 @@ #include "core/tagreaderclient.h" #include "core/utilities.h" - #include "internet/internetmodel.h" --#include "internet/spotifyservice.h" + #include "internet/core/internetmodel.h" +-#include "internet/spotify/spotifyservice.h" + AlbumCoverLoader::AlbumCoverLoader(QObject* parent) + : QObject(parent), + stop_requested_(false), + next_id_(1), +- network_(new NetworkAccessManager(this)), +- connected_spotify_(false) {} ++ network_(new NetworkAccessManager(this)) - -@@ -38,8 +37,7 @@ AlbumCoverLoader::AlbumCoverLoader(QObject* parent) - : QObject(parent), - stop_requested_(false), - next_id_(1), -- network_(new NetworkAccessManager(this)), -- connected_spotify_(false) -+ network_(new NetworkAccessManager(this)) - { - } - -@@ -169,26 +167,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage( + QString AlbumCoverLoader::ImageCacheDir() { + return Utilities::GetConfigPath(Utilities::Path_AlbumCovers); +@@ -176,26 +174,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage( remote_tasks_.insert(reply, task); return TryLoadResult(true, false, QImage()); @@ -470,8 +543,8 @@ index a4c4241..39dd101 100644 - SpotifyService* spotify = InternetModel::Service<SpotifyService>(); - - if (!connected_spotify_) { -- connect(spotify, SIGNAL(ImageLoaded(QString,QImage)), -- SLOT(SpotifyImageLoaded(QString,QImage))); +- connect(spotify, SIGNAL(ImageLoaded(QString, QImage)), +- SLOT(SpotifyImageLoaded(QString, QImage))); - connected_spotify_ = true; - } - @@ -488,13 +561,13 @@ index a4c4241..39dd101 100644 } QImage image(filename); -@@ -196,16 +174,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage( - image.isNull() ? task.options.default_output_image_: image); +@@ -204,16 +182,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage( + image.isNull() ? task.options.default_output_image_ : image); } --void AlbumCoverLoader::SpotifyImageLoaded(const QString& id, const QImage& image) { -- if (!remote_spotify_tasks_.contains(id)) -- return; +-void AlbumCoverLoader::SpotifyImageLoaded(const QString& id, +- const QImage& image) { +- if (!remote_spotify_tasks_.contains(id)) return; - - Task task = remote_spotify_tasks_.take(id); - QImage scaled = ScaleAndPad(task.options, image); @@ -506,18 +579,18 @@ index a4c4241..39dd101 100644 reply->deleteLater(); diff --git a/src/covers/albumcoverloader.h b/src/covers/albumcoverloader.h -index 987be66..5214e14 100644 +index 4d3e4d5..5de0663 100644 --- a/src/covers/albumcoverloader.h +++ b/src/covers/albumcoverloader.h -@@ -62,7 +62,6 @@ class AlbumCoverLoader : public QObject { +@@ -66,7 +66,6 @@ class AlbumCoverLoader : public QObject { protected slots: void ProcessTasks(); void RemoteFetchFinished(QNetworkReply* reply); - void SpotifyImageLoaded(const QString& url, const QImage& image); protected: - enum State { -@@ -102,13 +101,10 @@ class AlbumCoverLoader : public QObject { + enum State { State_TryingManual, State_TryingAuto, }; +@@ -103,13 +102,10 @@ class AlbumCoverLoader : public QObject { QMutex mutex_; QQueue<Task> tasks_; QMap<QNetworkReply*, Task> remote_tasks_; @@ -532,21 +605,21 @@ index 987be66..5214e14 100644 }; diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp -index 94f77a3..37c1cdf 100644 +index c3fde67..cae00d4 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp -@@ -29,8 +29,6 @@ +@@ -34,8 +34,6 @@ #include "core/signalchecker.h" #include "core/utilities.h" - #include "internet/internetmodel.h" --#include "internet/spotifyserver.h" --#include "internet/spotifyservice.h" - + #include "internet/core/internetmodel.h" +-#include "internet/spotify/spotifyserver.h" +-#include "internet/spotify/spotifyservice.h" const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000; -@@ -141,37 +139,11 @@ bool GstEnginePipeline::ReplaceDecodeBin(GstElement* new_bin) { + const int GstEnginePipeline::kFaderFudgeMsec = 2000; +@@ -152,44 +150,14 @@ bool GstEnginePipeline::ReplaceDecodeBin(GstElement* new_bin) { bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) { - GstElement* new_bin = NULL; + GstElement* new_bin = nullptr; - if (url.scheme() == "spotify") { - new_bin = gst_bin_new("spotify_bin"); @@ -554,13 +627,12 @@ index 94f77a3..37c1cdf 100644 - // Create elements - GstElement* src = engine_->CreateElement("tcpserversrc", new_bin); - GstElement* gdp = engine_->CreateElement("gdpdepay", new_bin); -- if (!src || !gdp) -- return false; +- if (!src || !gdp) return false; - - // Pick a port number - const int port = Utilities::PickUnusedPort(); -- g_object_set(G_OBJECT(src), "host", "127.0.0.1", NULL); -- g_object_set(G_OBJECT(src), "port", port, NULL); +- g_object_set(G_OBJECT(src), "host", "127.0.0.1", nullptr); +- g_object_set(G_OBJECT(src), "port", port, nullptr); - - // Link the elements - gst_element_link(src, gdp); @@ -571,84 +643,293 @@ index 94f77a3..37c1cdf 100644 - gst_object_unref(GST_OBJECT(pad)); - - // Tell spotify to start sending data to us. -- InternetModel::Service<SpotifyService>()->server()->StartPlaybackLater(url.toString(), port); +- SpotifyServer* spotify_server = InternetModel::Service<SpotifyService>()->server(); +- // Need to schedule this in the spotify server's thread +- QMetaObject::invokeMethod(spotify_server, "StartPlayback", +- Qt::QueuedConnection, +- Q_ARG(QString, url.toString()), +- Q_ARG(quint16, port)); - } else { - new_bin = engine_->CreateElement("uridecodebin"); - g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), NULL); - CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback, this); - CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this); - CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback, this); +- new_bin = engine_->CreateElement("uridecodebin"); +- g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), +- nullptr); +- CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback, +- this); +- CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this); +- CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback, +- this); - } ++ new_bin = engine_->CreateElement("uridecodebin"); ++ g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), ++ nullptr); ++ CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback, ++ this); ++ CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this); ++ CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback, ++ this); return ReplaceDecodeBin(new_bin); } -diff --git a/src/internet/internetmodel.cpp b/src/internet/internetmodel.cpp -index 289f591..ac9e3e0 100644 ---- a/src/internet/internetmodel.cpp -+++ b/src/internet/internetmodel.cpp -@@ -30,7 +30,6 @@ - #include "savedradio.h" - #include "somafmservice.h" - #include "soundcloudservice.h" --#include "spotifyservice.h" - #include "subsonicservice.h" +@@ -923,17 +891,6 @@ GstPadProbeReturn GstEnginePipeline::EventHandoffCallback(GstPad*, + void GstEnginePipeline::SourceDrainedCallback(GstURIDecodeBin* bin, + gpointer self) { + GstEnginePipeline* instance = reinterpret_cast<GstEnginePipeline*>(self); +- +- if (instance->has_next_valid_url() && +- // I'm not sure why, but calling this when previous track is a local song +- // and the next track is a Spotify song is buggy: the Spotify song will +- // not start or with some offset. So just do nothing here: when the song +- // finished, EndOfStreamReached/TrackEnded will be emitted anyway so +- // NextItem will be called. +- !(instance->url_.scheme() != "spotify" && +- instance->next_url_.scheme() == "spotify")) { +- instance->TransitionToNext(); +- } + } + + void GstEnginePipeline::SourceSetupCallback(GstURIDecodeBin* bin, +@@ -1032,24 +989,6 @@ GstState GstEnginePipeline::state() const { + } + + QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(GstState state) { +- if (url_.scheme() == "spotify" && !buffering_) { +- const GstState current_state = this->state(); +- +- if (state == GST_STATE_PAUSED && current_state == GST_STATE_PLAYING) { +- SpotifyService* spotify = InternetModel::Service<SpotifyService>(); +- +- // Need to schedule this in the spotify service's thread +- QMetaObject::invokeMethod(spotify, "SetPaused", Qt::QueuedConnection, +- Q_ARG(bool, true)); +- } else if (state == GST_STATE_PLAYING && +- current_state == GST_STATE_PAUSED) { +- SpotifyService* spotify = InternetModel::Service<SpotifyService>(); +- +- // Need to schedule this in the spotify service's thread +- QMetaObject::invokeMethod(spotify, "SetPaused", Qt::QueuedConnection, +- Q_ARG(bool, false)); +- } +- } + return ConcurrentRun::Run<GstStateChangeReturn, GstElement*, GstState>( + &set_state_threadpool_, &gst_element_set_state, pipeline_, state); + } +diff --git a/src/internet/core/internetmodel.cpp b/src/internet/core/internetmodel.cpp +index 597d904..a769489 100644 +--- a/src/internet/core/internetmodel.cpp ++++ b/src/internet/core/internetmodel.cpp +@@ -37,7 +37,6 @@ + #include "internet/internetradio/savedradio.h" + #include "internet/somafm/somafmservice.h" + #include "internet/soundcloud/soundcloudservice.h" +-#include "internet/spotify/spotifyservice.h" + #include "internet/subsonic/subsonicservice.h" #include "core/closure.h" #include "core/logging.h" -@@ -94,7 +93,6 @@ InternetModel::InternetModel(Application* app, QObject* parent) - AddService(new SkyFmService(app, this)); +@@ -97,7 +96,6 @@ InternetModel::InternetModel(Application* app, QObject* parent) + AddService(new RadioTunesService(app, this)); AddService(new SomaFMService(app, this)); AddService(new SoundCloudService(app, this)); - AddService(new SpotifyService(app, this)); AddService(new SubsonicService(app, this)); - #ifdef HAVE_UBUNTU_ONE - AddService(new UbuntuOneService(app, this)); + #ifdef HAVE_BOX + AddService(new BoxService(app, this)); +diff --git a/src/main.cpp b/src/main.cpp +index 1a961c8..515630e 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -159,13 +159,6 @@ void SetEnv(const char* key, const QString& value) { + #endif + } + +-// This must be done early so that the spotify blob process also picks up +-// these environment variables. +-void SetGstreamerEnvironment() { +- QString scanner_path; +- QString plugin_path; +- QString registry_filename; +- + // On windows and mac we bundle the gstreamer plugins with clementine + #if defined(Q_OS_DARWIN) + scanner_path = +diff --git a/src/playlist/playlistbackend.h b/src/playlist/playlistbackend.h +index f9d347c..320c0fb 100644 +--- a/src/playlist/playlistbackend.h ++++ b/src/playlist/playlistbackend.h +@@ -47,8 +47,6 @@ class PlaylistBackend : public QObject { + QString dynamic_backend; + QByteArray dynamic_data; + +- // Special playlists have different behaviour, eg. the "spotify-search" +- // type has a spotify search box at the top, replacing the ordinary filter. + QString special_type; + }; + typedef QList<Playlist> PlaylistList; +diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp +index 11ffa42..649976a 100644 +--- a/src/playlist/playlistdelegates.cpp ++++ b/src/playlist/playlistdelegates.cpp +@@ -458,9 +458,7 @@ QPixmap SongSourceDelegate::LookupPixmap(const QUrl& url, + if (handler) { + icon = handler->icon(); + } else { +- if (url.scheme() == "spotify") { +- icon = IconLoader::Load("spotify", IconLoader::Provider); +- } else if (url.scheme() == "file") { ++ if (url.scheme() == "file") { + icon = IconLoader::Load("folder-sound", IconLoader::Base); + } else if (url.host() == "api.jamendo.com") { + icon = IconLoader::Load("jamendo", IconLoader::Provider); +diff --git a/src/songinfo/echonestimages.cpp b/src/songinfo/echonestimages.cpp +index ce13645..c3e7e0e 100644 +--- a/src/songinfo/echonestimages.cpp ++++ b/src/songinfo/echonestimages.cpp +@@ -27,11 +27,6 @@ + #include "core/logging.h" + #include "core/network.h" + +-namespace { +-static const char* kSpotifyBucket = "spotify"; +-static const char* kSpotifyArtistUrl = "https://api.spotify.com/v1/artists/%1"; +-} +- + EchoNestImages::EchoNestImages() : network_(new NetworkAccessManager) {} + + EchoNestImages::~EchoNestImages() {} +@@ -48,19 +43,6 @@ void EchoNestImages::FetchInfo(int id, const Song& metadata) { + NewClosure(reply, SIGNAL(finished()), this, + SLOT(RequestFinished(QNetworkReply*, int, Echonest::Artist)), + reply, id, artist); +- +- // Also look up the artist id for the spotify API so we can directly request +- // images from there too. +- Echonest::Artist::SearchParams params; +- params.push_back( +- qMakePair(Echonest::Artist::Name, QVariant(metadata.artist()))); +- QNetworkReply* rosetta_reply = Echonest::Artist::search( +- params, +- Echonest::ArtistInformation(Echonest::ArtistInformation::NoInformation, +- QStringList() << kSpotifyBucket)); +- RegisterReply(rosetta_reply, id); +- NewClosure(rosetta_reply, SIGNAL(finished()), this, +- SLOT(IdsFound(QNetworkReply*, int)), rosetta_reply, id); + } + + void EchoNestImages::RequestFinished(QNetworkReply* reply, int id, +@@ -88,49 +70,12 @@ void EchoNestImages::IdsFound(QNetworkReply* reply, int request_id) { + if (artists.isEmpty()) { + return; + } +- const Echonest::ForeignIds& foreign_ids = artists.first().foreignIds(); +- for (const Echonest::ForeignId& id : foreign_ids) { +- if (id.catalog.contains("spotify")) { +- DoSpotifyImageRequest(id.foreign_id, request_id); +- } +- } + } catch (Echonest::ParseError e) { + qLog(Warning) << "Error parsing echonest reply:" << e.errorType() + << e.what(); + } + } + +-void EchoNestImages::DoSpotifyImageRequest(const QString& id, int request_id) { +- QString artist_id = id.split(":").last(); +- QUrl url(QString(kSpotifyArtistUrl).arg(artist_id)); +- QNetworkReply* reply = network_->get(QNetworkRequest(url)); +- RegisterReply(reply, request_id); +- NewClosure(reply, SIGNAL(finished()), [this, reply, request_id]() { +- reply->deleteLater(); +- QJson::Parser parser; +- QVariantMap result = parser.parse(reply).toMap(); +- QVariantList images = result["images"].toList(); +- QList<QPair<QUrl, QSize>> image_urls; +- for (const QVariant& image : images) { +- QVariantMap image_result = image.toMap(); +- image_urls.append(qMakePair(image_result["url"].toUrl(), +- QSize(image_result["width"].toInt(), +- image_result["height"].toInt()))); +- } +- // All the images are the same just different sizes; just pick the largest. +- std::sort(image_urls.begin(), image_urls.end(), +- [](const QPair<QUrl, QSize>& a, +- const QPair<QUrl, QSize>& b) { +- // Sorted by area ascending. +- return (a.second.height() * a.second.width()) < +- (b.second.height() * b.second.width()); +- }); +- if (!image_urls.isEmpty()) { +- emit ImageReady(request_id, image_urls.last().first); +- } +- }); +-} +- + // Keeps track of replies and emits Finished() when all replies associated with + // a request are finished with. + void EchoNestImages::RegisterReply(QNetworkReply* reply, int id) { +diff --git a/src/songinfo/echonestimages.h b/src/songinfo/echonestimages.h +index 6e67e87..8cd71e4 100644 +--- a/src/songinfo/echonestimages.h ++++ b/src/songinfo/echonestimages.h +@@ -42,8 +42,6 @@ class EchoNestImages : public SongInfoProvider { + void IdsFound(QNetworkReply* reply, int id); + + private: +- void DoSpotifyImageRequest(const QString& id, int request_id); +- + void RegisterReply(QNetworkReply* reply, int id); + QMultiMap<int, QNetworkReply*> replies_; + std::unique_ptr<NetworkAccessManager> network_; diff --git a/src/ui/about.cpp b/src/ui/about.cpp -index 53e42bd..49e7714 100644 +index 77a05d1..a43ae4f 100644 --- a/src/ui/about.cpp +++ b/src/ui/about.cpp -@@ -76,14 +76,9 @@ QString About::MakeHtml() const { +@@ -83,7 +83,6 @@ QString About::MakeHtml() const { ret += QString("<br />%1</p>").arg(tr("...and all the Amarok contributors")); ret += QString("<p><b>%1</b>").arg(tr("And:")); - ret += QString("<br /><a href=\"http://rainymood.com\">Rainy Mood</a>"); - ret += QString("<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott Smitelli</a>"); - ret += QString("<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie Brosh</a></p>"); - -- ret += "<p>This product uses Music by Spotify but is not endorsed, certified " -- "or otherwise approved in any way by Spotify. Spotify is the registered " -- "trade mark of the Spotify Group.</p>"; + ret += QString( + "<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott " + "Smitelli</a>"); +@@ -91,11 +90,6 @@ QString About::MakeHtml() const { + "<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie " + "Brosh</a></p>"); + +- ret += +- "<p>This product uses Music by Spotify but is not endorsed, certified " +- "or otherwise approved in any way by Spotify. Spotify is the registered " +- "trade mark of the Spotify Group.</p>"; - return ret; } diff --git a/src/ui/settingsdialog.cpp b/src/ui/settingsdialog.cpp -index dc0d84f..4a9335d 100644 +index 2cb7e1b..8cb60e7 100644 --- a/src/ui/settingsdialog.cpp +++ b/src/ui/settingsdialog.cpp -@@ -38,7 +38,6 @@ - #include "internet/digitallyimportedsettingspage.h" - #include "internet/groovesharksettingspage.h" - #include "internet/magnatunesettingspage.h" --#include "internet/spotifysettingspage.h" - #include "internet/subsonicsettingspage.h" - #include "internet/ubuntuonesettingspage.h" +@@ -39,7 +39,6 @@ + #include "internet/core/internetshowsettingspage.h" + #include "internet/magnatune/magnatunesettingspage.h" + #include "internet/soundcloud/soundcloudsettingspage.h" +-#include "internet/spotify/spotifysettingspage.h" + #include "internet/subsonic/subsonicsettingspage.h" #include "library/librarysettingspage.h" -@@ -174,7 +173,6 @@ SettingsDialog::SettingsDialog(Application* app, BackgroundStreams* streams, QWi - AddPage(Page_Box, new BoxSettingsPage(this), providers); + #include "playlist/playlistview.h" +@@ -184,7 +183,6 @@ SettingsDialog::SettingsDialog(Application* app, BackgroundStreams* streams, #endif + AddPage(Page_SoundCloud, new SoundCloudSettingsPage(this), providers); - AddPage(Page_Spotify, new SpotifySettingsPage(this), providers); - AddPage(Page_Magnatune, new MagnatuneSettingsPage(this), providers); - AddPage(Page_DigitallyImported, new DigitallyImportedSettingsPage(this), providers); - AddPage(Page_BackgroundStreams, new BackgroundStreamsSettingsPage(this), providers); + + #ifdef HAVE_VK + AddPage(Page_Vk, new VkSettingsPage(this), providers); diff --git a/src/ui/settingsdialog.h b/src/ui/settingsdialog.h -index e9e709a..5485a37 100644 +index 14bb976..b543cc9 100644 --- a/src/ui/settingsdialog.h +++ b/src/ui/settingsdialog.h -@@ -69,7 +69,6 @@ public: +@@ -69,7 +69,6 @@ class SettingsDialog : public QDialog { Page_Library, Page_Lastfm, - Page_Grooveshark, + Page_SoundCloud, - Page_Spotify, Page_Magnatune, Page_DigitallyImported, |