summaryrefslogtreecommitdiff
path: root/libre/clementine
diff options
context:
space:
mode:
Diffstat (limited to 'libre/clementine')
-rw-r--r--libre/clementine/PKGBUILD63
-rw-r--r--libre/clementine/remove-nonfree-artwork-and-spotify.patch571
2 files changed, 270 insertions, 364 deletions
diff --git a/libre/clementine/PKGBUILD b/libre/clementine/PKGBUILD
index 2ac877721..fb7a7f804 100644
--- a/libre/clementine/PKGBUILD
+++ b/libre/clementine/PKGBUILD
@@ -16,9 +16,9 @@
pkgname=clementine
_pkgname=$pkgname-libre
-pkgver=1.3.1
-pkgrel=21
-pkgrel+=.parabola2
+pkgver=1.3.1.r702.3b76fa627
+pkgrel=2
+pkgrel+=.par1
pkgdesc='A modern music player and library organizer'
pkgdesc+=', without nonfree artwork and Spotify support'
url=https://www.clementine-player.org/
@@ -34,24 +34,25 @@ depends=(
gst-plugins-base-libs
gstreamer
libcdio
- libechonest
libgl
libgpod
- liblastfm
+ liblastfm-qt5
libmtp
+ libmygpo-qt5
libpulse
libx11
protobuf
- qjson
- qt4
+ qt5-base
+ qt5-x11extras
sqlite
- taglib
zlib
)
makedepends=(
boost
cmake
+ git
mesa
+ qt5-tools
sparsehash
)
optdepends=(
@@ -63,33 +64,32 @@ optdepends=(
'gvfs: Various devices support'
)
source=(
- clementine-${pkgver}.tar.gz::https://github.com/clementine-player/Clementine/archive/${pkgver}.tar.gz
+ git+https://github.com/clementine-player/Clementine.git#commit=3b76fa62752f25b445ee2a71f02c0c9d7581735a
clementine-gcc6.patch
- clementine-chromaprint1.4.0.patch
- clementine-cryptopp6.patch
- https://github.com/clementine-player/Clementine/commit/8a6cc8b5069265e1e92e22def985e22c5955e503.patch
- https://github.com/clementine-player/Clementine/commit/75f9439843a0e9cdc26cd739d5e1dbd93bd974bc.patch
- https://github.com/clementine-player/Clementine/commit/ddfa5e63f1ef0e243a007efbe576fceb9b2442e8.patch
remove-nonfree-artwork-and-spotify.patch
moognu.png
)
-sha256sums=('f885931a9ab7c88607d07b50c64fcce46fc05f13dd2c0a04188c94eff938f37c'
+sha256sums=('SKIP'
'05bd4dc0138eed084332fa1a688a96858418731f337f54e0d8ab0853123f40ee'
- '4cc9c9df599df4a595c6acf4e129a54296c0a8e537627435e3df14e1e95447b0'
- 'e9c09dca76ed8fae2ecb089571396c9293f546871fb2f27cc37010dd5cba9e46'
- '77e32aae6f035523d5cfb8adb45cb0857ebed751b7fcd1f250a2972c79f6282e'
- 'd4dbd7f09da7a554f86237476b96e3ca097117b7ab2acd706088c72203d8b64f'
- '9c02acd0a2b70ce8d0b6574161df692fc08c9e9c3061a4a7b78be7805b279dc7'
- '8978c44d38e95edd8d7fec00d64debfa78e9906653cfd47caa2b2fb5aaf45d9d'
+ '0680a1efc5f24a2662be42ba5a23d2278ce707c76104c03a3d693f7a890358b8'
'c6918617769152f3617c61f721819e69d03f671b85760b11cfe45abd53955bc4')
+pkgver() {
+ cd Clementine
+
+ git describe --tags | sed 's/-/.r/; s/-g/./'
+}
+
prepare() {
if [[ -d build ]]; then
rm -rf build
fi
mkdir build
- cd Clementine-${pkgver}
+ cd Clementine
+
+ # Fix build with GCC 6
+ patch -p1 -i ../clementine-gcc6.patch
# remove nonfree artwork for the Nyan Cat plugin
# https://labs.parabola.nu/issues/329
@@ -117,29 +117,14 @@ prepare() {
# create a blank file because it's a dependency for Clementine
touch data/schema/schema-30.sql
-
- # Fix build with GCC 6
- patch -p1 -i ../clementine-gcc6.patch
- # https://github.com/clementine-player/Clementine/pull/5630
- patch -Np1 -i ../8a6cc8b5069265e1e92e22def985e22c5955e503.patch
- # Fix build with chromaprint 1.4.0
- patch -p1 -i ../clementine-chromaprint1.4.0.patch
- # Fix build with crypto++ 6.0.0 due to https://github.com/weidai11/cryptopp/issues/442
- # (this is not necessary on parabola, since we remove the patched files)
- # patch -p1 -i ../clementine-cryptopp6.patch
- # FS#58413
- patch -Np1 -i ../75f9439843a0e9cdc26cd739d5e1dbd93bd974bc.patch
- # Fix DI.FM
- patch -Np1 -i ../ddfa5e63f1ef0e243a007efbe576fceb9b2442e8.patch
}
build() {
cd build
- cmake ../Clementine-${pkgver} \
+ cmake ../Clementine \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/usr\
- -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-catch-value"
+ -DCMAKE_INSTALL_PREFIX=/usr
make
}
diff --git a/libre/clementine/remove-nonfree-artwork-and-spotify.patch b/libre/clementine/remove-nonfree-artwork-and-spotify.patch
index 9dc0fdbf6..d2810a93b 100644
--- a/libre/clementine/remove-nonfree-artwork-and-spotify.patch
+++ b/libre/clementine/remove-nonfree-artwork-and-spotify.patch
@@ -1,5 +1,5 @@
diff --git a/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m b/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
-index a349f59..c418e0b 100644
+index a349f5922..c418e0bca 100644
--- a/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
+++ b/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
@@ -98,7 +98,6 @@ static CGEventRef tapEventCallback(CGEventTapProxy proxy, CGEventType type, CGEv
@@ -11,7 +11,7 @@ index a349f59..c418e0b 100644
@"com.apple.QuickTimePlayerX",
@"com.apple.quicktimeplayer",
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 23070d9..f2c8b72 100644
+index 657efdbac..cd2484e47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,6 @@ include(cmake/C++11Compat.cmake)
@@ -22,64 +22,68 @@ index 23070d9..f2c8b72 100644
include(cmake/OptionalSource.cmake)
include(cmake/Format.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
-@@ -74,7 +73,6 @@ pkg_check_modules(LIBMYGPO_QT libmygpo-qt>=1.0.9)
+@@ -72,7 +71,6 @@ pkg_check_modules(LIBMTP libmtp>=1.0)
+ pkg_check_modules(LIBMYGPO_QT5 libmygpo-qt5>=1.0.9)
pkg_check_modules(LIBPULSE libpulse)
pkg_check_modules(LIBXML libxml-2.0)
- pkg_check_modules(QJSON REQUIRED QJson)
--pkg_check_modules(SPOTIFY libspotify>=12.1.45)
- pkg_check_modules(TAGLIB REQUIRED taglib>=1.6)
+-pkg_check_modules(LIBSPOTIFY libspotify>=12.1.45)
+ pkg_check_modules(TAGLIB taglib)
if (WIN32)
-@@ -117,13 +115,6 @@ endif()
+@@ -164,11 +162,6 @@ endif()
+
if (APPLE)
find_library(SPARKLE Sparkle)
+- find_library(LIBSPOTIFY libspotify)
+- if(LIBSPOTIFY_FOUND)
+- set(LIBSPOTIFY_INCLUDE_DIRS ${LIBSPOTIFY})
+- set(LIBSPOTIFY_LIBRARIES ${LIBSPOTIFY})
+- endif(LIBSPOTIFY_FOUND)
-- find_library(SPOTIFY libspotify)
-- if (SPOTIFY)
-- set (SPOTIFY_FOUND ON)
-- set (SPOTIFY_INCLUDE_DIRS ${SPOTIFY})
-- set (SPOTIFY_LIBRARIES ${SPOTIFY})
-- endif (SPOTIFY)
--
add_subdirectory(3rdparty/SPMediaKeyTap)
set(SPMEDIAKEYTAP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SPMediaKeyTap)
- set(SPMEDIAKEYTAP_LIBRARIES SPMediaKeyTap)
-@@ -254,11 +245,6 @@ optional_component(DEVICEKIT ON "Devices: DeviceKit backend"
- DEPENDS "D-Bus support" HAVE_DBUS
+@@ -292,20 +285,6 @@ optional_component(UDISKS2 ON "Devices: UDisks2 backend"
+ DEPENDS "D-Bus support" Qt5DBus_FOUND
)
+-if (CRYPTOPP_FOUND OR HAVE_SPOTIFY_BLOB)
+- set(CRYPTOPP_OR_HAVE_SPOTIFY_BLOB ON)
+-endif()
+-
+-optional_component(SPOTIFY ON "Spotify support"
+- DEPENDS "cryptopp or spotify blob" CRYPTOPP_OR_HAVE_SPOTIFY_BLOB
+-)
+-
-optional_component(SPOTIFY_BLOB ON "Spotify support: non-GPL binary helper"
+- DEPENDS "spotify support" HAVE_SPOTIFY
- DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE
-- DEPENDS "libspotify" SPOTIFY_FOUND
+- DEPENDS "libspotify" LIBSPOTIFY_FOUND
-)
-
optional_component(MOODBAR ON "Moodbar support"
DEPENDS "fftw3" FFTW3_FOUND
)
-@@ -274,14 +260,6 @@ optional_component(LIBPULSE ON "Pulse audio integration"
+@@ -339,9 +318,6 @@ endif()
- optional_component(VISUALISATIONS ON "Visualisations")
+ if(CRYPTOPP_FOUND)
+ set(HAVE_CRYPTOPP ON)
+- if(HAVE_SPOTIFY)
+- set(HAVE_SPOTIFY_DOWNLOADER ON)
+- endif(HAVE_SPOTIFY)
+ endif(CRYPTOPP_FOUND)
--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(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)
-@@ -422,7 +400,6 @@ add_subdirectory(ext/libclementine-common)
+ # Remove GLU and GL from the link line - they're not really required
+@@ -451,9 +427,6 @@ add_subdirectory(ext/libclementine-common)
add_subdirectory(ext/libclementine-tagreader)
add_subdirectory(ext/clementine-tagreader)
add_subdirectory(ext/libclementine-remote)
--add_subdirectory(ext/libclementine-spotifyblob)
+-if(HAVE_SPOTIFY)
+- add_subdirectory(ext/libclementine-spotifyblob)
+-endif(HAVE_SPOTIFY)
option(WITH_DEBIAN OFF)
if(WITH_DEBIAN)
-@@ -433,10 +410,6 @@ if(HAVE_BREAKPAD)
+@@ -464,10 +437,6 @@ if(HAVE_BREAKPAD)
add_subdirectory(3rdparty/google-breakpad)
endif(HAVE_BREAKPAD)
@@ -91,7 +95,7 @@ index 23070d9..f2c8b72 100644
add_subdirectory(gst/moodbar)
endif()
diff --git a/data/data.qrc b/data/data.qrc
-index 694eaad..caecc30 100644
+index f7fff7c07..36b0c0927 100644
--- a/data/data.qrc
+++ b/data/data.qrc
@@ -3,7 +3,6 @@
@@ -102,20 +106,17 @@ index 694eaad..caecc30 100644
<file>currenttrack_bar_left.png</file>
<file>currenttrack_bar_mid.png</file>
<file>currenttrack_bar_right.png</file>
-@@ -280,10 +279,10 @@
- <file>lumberjacksong.txt</file>
- <file>lyrics/ultimate_providers.xml</file>
- <file>mainwindow.css</file>
-+ <file>moognu.png</file>
+@@ -283,7 +282,7 @@
<file>nocover.png</file>
<file>nomusic.png</file>
<file>now_playing_tooltip.txt</file>
- <file>nyancat.png</file>
++ <file>moognu.png</file>
<file>oauthsuccess.html</file>
<file>osd_background.png</file>
<file>osd_shadow_corner.png</file>
@@ -350,7 +349,6 @@
- <file>providers/22x22/somafm.png</file>
+ <file>providers/22x22/intergalacticfm.png</file>
<file>providers/22x22/songkick.png</file>
<file>providers/22x22/soundcloud.png</file>
- <file>providers/22x22/spotify.png</file>
@@ -123,7 +124,7 @@ index 694eaad..caecc30 100644
<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/intergalacticfm.png</file>
<file>providers/32x32/songkick.png</file>
<file>providers/32x32/soundcloud.png</file>
- <file>providers/32x32/spotify.png</file>
@@ -131,14 +132,14 @@ index 694eaad..caecc30 100644
<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/intergalacticfm.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 @@
+@@ -479,7 +475,6 @@
<file>songinfo.css</file>
<file>soundcloud-ca.pem</file>
<file>spinner.gif</file>
@@ -147,7 +148,7 @@ index 694eaad..caecc30 100644
<file>star-on.png</file>
<file>tiny-pause.png</file>
diff --git a/dist/codesign.py b/dist/codesign.py
-index 7c111fd..fee7345 100755
+index 5a682c5af..348ed6640 100755
--- a/dist/codesign.py
+++ b/dist/codesign.py
@@ -33,7 +33,7 @@ def main():
@@ -160,10 +161,10 @@ index 7c111fd..fee7345 100755
SignPath(app_bundle, developer_id, deep=False)
diff --git a/dist/macdeploy.py b/dist/macdeploy.py
-index 5d83c2e..f4d7d33 100755
+index 08fa5ca7e..a9cf2b923 100755
--- a/dist/macdeploy.py
+++ b/dist/macdeploy.py
-@@ -435,10 +435,7 @@ def main():
+@@ -472,10 +472,7 @@ def main():
FixPlugin(FindGioModule('libgiolibproxy.so'), 'gio-modules')
try:
@@ -175,7 +176,7 @@ index 5d83c2e..f4d7d33 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 10ba0ff..2e1eba6 100644
+index d46eb43dd..56448c3de 100644
--- a/dist/windows/clementine.nsi.in
+++ b/dist/windows/clementine.nsi.in
@@ -187,9 +187,6 @@ Section "Delete old files" oldfiles
@@ -188,7 +189,7 @@ index 10ba0ff..2e1eba6 100644
; 1.0
Delete "$INSTDIR\libofa.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstofa.dll"
-@@ -260,7 +257,6 @@ Section "Clementine" Clementine
+@@ -268,7 +265,6 @@ Section "Clementine" Clementine
File "clementine.exe"
File "clementine-tagreader.exe"
@@ -196,15 +197,15 @@ index 10ba0ff..2e1eba6 100644
File "clementine.ico"
File "glew32.dll"
File "libcdio-16.dll"
-@@ -314,7 +310,6 @@ Section "Clementine" Clementine
- File "libprotobuf-8.dll"
+@@ -324,7 +320,6 @@ Section "Clementine" Clementine
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"
-@@ -1073,7 +1068,6 @@ Section "Uninstall"
+@@ -1083,7 +1078,6 @@ Section "Uninstall"
Delete "$INSTDIR\clementine.ico"
Delete "$INSTDIR\clementine.exe"
Delete "$INSTDIR\clementine-tagreader.exe"
@@ -212,16 +213,16 @@ index 10ba0ff..2e1eba6 100644
Delete "$INSTDIR\glew32.dll"
Delete "$INSTDIR\libcdio-16.dll"
Delete "$INSTDIR\libchromaprint.dll"
-@@ -1126,7 +1120,6 @@ Section "Uninstall"
- Delete "$INSTDIR\libprotobuf-8.dll"
+@@ -1139,7 +1133,6 @@ Section "Uninstall"
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-6.dll"
diff --git a/ext/libclementine-common/core/logging.cpp b/ext/libclementine-common/core/logging.cpp
-index ec8faa2..f76f034 100644
+index 9aa131935..0ec43d709 100644
--- a/ext/libclementine-common/core/logging.cpp
+++ b/ext/libclementine-common/core/logging.cpp
@@ -14,10 +14,6 @@
@@ -236,7 +237,7 @@ index ec8faa2..f76f034 100644
#include <cxxabi.h>
diff --git a/ext/libclementine-common/core/logging.h b/ext/libclementine-common/core/logging.h
-index 21eebdf..68232ca 100644
+index 0433da5aa..8f6efe561 100644
--- a/ext/libclementine-common/core/logging.h
+++ b/ext/libclementine-common/core/logging.h
@@ -14,10 +14,6 @@
@@ -251,7 +252,7 @@ index 21eebdf..68232ca 100644
#define LOGGING_H
diff --git a/ext/libclementine-common/core/messagehandler.cpp b/ext/libclementine-common/core/messagehandler.cpp
-index 1ea6492..5c4e79a 100644
+index 065964d5f..8a8381b46 100644
--- a/ext/libclementine-common/core/messagehandler.cpp
+++ b/ext/libclementine-common/core/messagehandler.cpp
@@ -14,10 +14,6 @@
@@ -266,7 +267,7 @@ index 1ea6492..5c4e79a 100644
#include "core/logging.h"
diff --git a/ext/libclementine-common/core/messagehandler.h b/ext/libclementine-common/core/messagehandler.h
-index 5a7f8f2..7df58df 100644
+index 5a7f8f2c8..7df58df05 100644
--- a/ext/libclementine-common/core/messagehandler.h
+++ b/ext/libclementine-common/core/messagehandler.h
@@ -14,10 +14,6 @@
@@ -281,7 +282,7 @@ index 5a7f8f2..7df58df 100644
#define MESSAGEHANDLER_H
diff --git a/ext/libclementine-common/core/override.h b/ext/libclementine-common/core/override.h
-index 98c2764..ca37137 100644
+index 98c2764d5..ca3713700 100644
--- a/ext/libclementine-common/core/override.h
+++ b/ext/libclementine-common/core/override.h
@@ -14,10 +14,6 @@
@@ -296,90 +297,78 @@ index 98c2764..ca37137 100644
#define OVERRIDE_H
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index afe58b9..125dd75 100644
+index d635aee7c..56e01c09d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
-@@ -56,8 +56,6 @@ include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-tagreader)
+@@ -47,10 +47,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)
--include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-spotifyblob)
--include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-spotifyblob)
+-if(HAVE_SPOTIFY)
+- include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-spotifyblob)
+- include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-spotifyblob)
+-endif(HAVE_SPOTIFY)
cmake_policy(SET CMP0011 NEW)
include(../cmake/ParseArguments.cmake)
-@@ -154,7 +152,6 @@ set(SOURCES
- globalsearch/simplesearchprovider.cpp
- globalsearch/somafmsearchprovider.cpp
- globalsearch/soundcloudsearchprovider.cpp
-- globalsearch/spotifysearchprovider.cpp
- globalsearch/suggestionwidget.cpp
- globalsearch/urlsearchprovider.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
- globalsearch/soundcloudsearchprovider.h
-- globalsearch/spotifysearchprovider.h
- globalsearch/suggestionwidget.h
-
- internet/core/cloudfileservice.h
-@@ -494,9 +487,6 @@ set(HEADERS
- 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
-@@ -839,15 +828,6 @@ optional_source(HAVE_LIBLASTFM
+@@ -303,7 +299,6 @@ set(SOURCES
+ songinfo/songkickconcerts.cpp
+ songinfo/songkickconcertwidget.cpp
+ songinfo/songplaystats.cpp
+- songinfo/spotifyimages.cpp
+ songinfo/streamdiscoverer.cpp
+ songinfo/taglyricsinfoprovider.cpp
+ songinfo/ultimatelyricslyric.cpp
+@@ -593,7 +588,6 @@ set(HEADERS
+ songinfo/songkickconcerts.h
+ songinfo/songkickconcertwidget.h
+ songinfo/songplaystats.h
+- songinfo/spotifyimages.h
+ songinfo/streamdiscoverer.h
+ songinfo/taglyricsinfoprovider.h
+ songinfo/ultimatelyricslyric.h
+@@ -837,33 +831,6 @@ optional_source(HAVE_LIBLASTFM
+ internet/lastfm/lastfmsettingspage.ui
)
-
--optional_source(HAVE_SPOTIFY_DOWNLOADER
+-# Spotify support
+-optional_source(HAVE_SPOTIFY
- SOURCES
-- internet/spotify/spotifyblobdownloader.cpp
+- internet/spotify/spotifyserver.cpp
+- internet/spotify/spotifyservice.cpp
+- internet/spotify/spotifysettingspage.cpp
+- globalsearch/spotifysearchprovider.cpp
- HEADERS
-- internet/spotify/spotifyblobdownloader.h
-- INCLUDE_DIRECTORIES
-- ${CRYPTOPP_INCLUDE_DIRS}
+- globalsearch/spotifysearchprovider.h
+- internet/spotify/spotifyserver.h
+- internet/spotify/spotifyservice.h
+- internet/spotify/spotifysettingspage.h
+- UI
+- internet/spotify/spotifysettingspage.ui
-)
-
+-if(HAVE_SPOTIFY)
+- optional_source(HAVE_SPOTIFY_DOWNLOADER
+- SOURCES
+- internet/spotify/spotifyblobdownloader.cpp
+- HEADERS
+- internet/spotify/spotifyblobdownloader.h
+- INCLUDE_DIRECTORIES
+- ${CRYPTOPP_INCLUDE_DIRS}
+- )
+-endif(HAVE_SPOTIFY)
+-
# Platform specific - OS X
optional_source(APPLE
INCLUDE_DIRECTORIES
-@@ -1233,7 +1213,6 @@ add_dependencies(clementine_lib pot)
-
-
- target_link_libraries(clementine_lib
-- clementine-spotifyblob-messages
- libclementine-common
- libclementine-tagreader
- libclementine-remote
-@@ -1303,13 +1282,6 @@ if(HAVE_BREAKPAD)
+@@ -1306,17 +1273,6 @@ if(HAVE_BREAKPAD)
endif (LINUX)
endif(HAVE_BREAKPAD)
+-if(HAVE_SPOTIFY)
+- target_link_libraries(clementine_lib clementine-spotifyblob-messages)
+-endif(HAVE_SPOTIFY)
+-
-if(HAVE_SPOTIFY_DOWNLOADER)
- target_link_libraries(clementine_lib
- ${CRYPTOPP_LIBRARIES}
@@ -390,7 +379,7 @@ index afe58b9..125dd75 100644
if(HAVE_LIBPULSE)
target_link_libraries(clementine_lib ${LIBPULSE_LIBRARIES})
endif()
-@@ -1394,16 +1366,6 @@ target_link_libraries(clementine
+@@ -1404,10 +1360,6 @@ target_link_libraries(clementine
clementine_lib
)
@@ -398,29 +387,23 @@ index afe58b9..125dd75 100644
-if(HAVE_SPOTIFY_BLOB)
- add_dependencies(clementine clementine-spotifyblob)
-endif(HAVE_SPOTIFY_BLOB)
--add_dependencies(clementine clementine-tagreader)
--
--set_target_properties(clementine PROPERTIES
-- MACOSX_BUNDLE_INFO_PLIST "../dist/Info.plist"
--)
--
- if (APPLE)
- install(FILES ../dist/clementine.icns
- DESTINATION "${CMAKE_BINARY_DIR}/clementine.app/Contents/Resources")
+ add_dependencies(clementine clementine-tagreader)
+
+ set_target_properties(clementine PROPERTIES
diff --git a/src/analyzers/rainbowanalyzer.cpp b/src/analyzers/rainbowanalyzer.cpp
-index c8aa0cf..e8eec8b 100644
+index 7cb0b44c2..25bfb843d 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 };
+@@ -42,7 +42,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
+@@ -59,7 +59,7 @@ Rainbow::RainbowAnalyzer::RainbowAnalyzer(const RainbowType& rbtype,
x_offset_(0),
background_brush_(QColor(0x0f, 0x43, 0x73)) {
rainbowtype = rbtype;
@@ -429,7 +412,7 @@ index c8aa0cf..e8eec8b 100644
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,
+@@ -193,8 +193,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);
@@ -439,21 +422,26 @@ index c8aa0cf..e8eec8b 100644
+ // Moo moo moo moo dash dash dash dash.
if (!is_playing_) {
// Ssshhh!
- p.drawPixmap(SleepingDestRect(rainbowtype), cat_dash_[rainbowtype],
+ p.drawPixmap(SleepingDestRect(rainbowtype), cat_dash_[rainbowtype],
diff --git a/src/config.h.in b/src/config.h.in
-index f22fe9b..92124f5 100644
+index 20427754b..4dbd44405 100644
--- a/src/config.h.in
+++ b/src/config.h.in
-@@ -40,7 +40,6 @@
+@@ -42,12 +42,10 @@
#cmakedefine HAVE_SEAFILE
#cmakedefine HAVE_SKYDRIVE
#cmakedefine HAVE_SPARKLE
-#cmakedefine HAVE_SPOTIFY_DOWNLOADER
- #cmakedefine HAVE_VK
+ #cmakedefine HAVE_UDISKS2
#cmakedefine HAVE_WIIMOTEDEV
+ #cmakedefine HAVE_OPENGL
+ #cmakedefine HAVE_TRANSLATIONS
+-#cmakedefine HAVE_SPOTIFY
#cmakedefine TAGLIB_HAS_OPUS
+ #cmakedefine USE_INSTALL_PREFIX
+ #cmakedefine USE_SYSTEM_PROJECTM
diff --git a/src/core/backgroundstreams.cpp b/src/core/backgroundstreams.cpp
-index 2e6ac60..e62504c 100644
+index 2e6ac60e2..e62504c70 100644
--- a/src/core/backgroundstreams.cpp
+++ b/src/core/backgroundstreams.cpp
@@ -28,8 +28,6 @@
@@ -474,7 +462,7 @@ index 2e6ac60..e62504c 100644
if (version < kVersion) {
diff --git a/src/core/timeconstants.h b/src/core/timeconstants.h
-index 67d0227..49020d8 100644
+index 67d022794..49020d809 100644
--- a/src/core/timeconstants.h
+++ b/src/core/timeconstants.h
@@ -16,10 +16,6 @@
@@ -489,10 +477,10 @@ index 67d0227..49020d8 100644
#define CORE_TIMECONSTANTS_H_
diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
-index 739cadb..a022a47 100644
+index fe106e2b7..54defd7fd 100644
--- a/src/core/utilities.cpp
+++ b/src/core/utilities.cpp
-@@ -368,9 +368,6 @@ QString GetConfigPath(ConfigPath config) {
+@@ -393,9 +393,6 @@ QString GetConfigPath(ConfigPath config) {
return QDir::homePath();
#endif
@@ -503,10 +491,10 @@ index 739cadb..a022a47 100644
qFatal("%s", Q_FUNC_INFO);
return QString::null;
diff --git a/src/core/utilities.h b/src/core/utilities.h
-index 5fd8fc1..36ddefe 100644
+index 021ded6cf..841ec4061 100644
--- a/src/core/utilities.h
+++ b/src/core/utilities.h
-@@ -129,7 +129,6 @@ enum ConfigPath {
+@@ -130,7 +130,6 @@ enum ConfigPath {
Path_NetworkCache,
Path_GstreamerRegistry,
Path_DefaultMusicLibrary,
@@ -515,14 +503,16 @@ index 5fd8fc1..36ddefe 100644
Path_CacheRoot,
};
diff --git a/src/covers/albumcoverloader.cpp b/src/covers/albumcoverloader.cpp
-index 8ebf51c..c01a16e 100644
+index a04cd923a..c982fd8f4 100644
--- a/src/covers/albumcoverloader.cpp
+++ b/src/covers/albumcoverloader.cpp
-@@ -34,14 +34,12 @@
+@@ -34,16 +34,12 @@
#include "core/tagreaderclient.h"
#include "core/utilities.h"
#include "internet/core/internetmodel.h"
+-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifyservice.h"
+-#endif
AlbumCoverLoader::AlbumCoverLoader(QObject* parent)
: QObject(parent),
@@ -534,11 +524,12 @@ index 8ebf51c..c01a16e 100644
QString AlbumCoverLoader::ImageCacheDir() {
return Utilities::GetConfigPath(Utilities::Path_AlbumCovers);
-@@ -176,26 +174,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(
-
+@@ -179,29 +175,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(
remote_tasks_.insert(reply, task);
return TryLoadResult(true, false, QImage());
-- } else if (filename.toLower().startsWith("spotify://image/")) {
+ }
+-#ifdef HAVE_SPOTIFY
+- else if (filename.toLower().startsWith("spotify://image/")) {
- // HACK: we should add generic image URL handlers
- SpotifyService* spotify = InternetModel::Service<SpotifyService>();
-
@@ -558,13 +549,16 @@ index 8ebf51c..c01a16e 100644
- QMetaObject::invokeMethod(spotify, "LoadImage", Qt::QueuedConnection,
- Q_ARG(QString, id));
- return TryLoadResult(true, false, QImage());
- }
-
- QImage image(filename);
-@@ -204,16 +182,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(
+- }
+-#endif
+ else if (filename.isEmpty()) {
+ // Avoid "QFSFileEngine::open: No file name specified" messages if we know that the filename is empty
+ return TryLoadResult(false, false, task.options.default_output_image_);
+@@ -213,18 +186,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(
image.isNull() ? task.options.default_output_image_ : image);
}
+-#ifdef HAVE_SPOTIFY
-void AlbumCoverLoader::SpotifyImageLoaded(const QString& id,
- const QImage& image) {
- if (!remote_spotify_tasks_.contains(id)) return;
@@ -574,23 +568,26 @@ index 8ebf51c..c01a16e 100644
- emit ImageLoaded(task.id, scaled);
- emit ImageLoaded(task.id, scaled, image);
-}
+-#endif
-
void AlbumCoverLoader::RemoteFetchFinished(QNetworkReply* reply) {
reply->deleteLater();
diff --git a/src/covers/albumcoverloader.h b/src/covers/albumcoverloader.h
-index 4d3e4d5..5de0663 100644
+index c5fae6b4c..ff68c6cf1 100644
--- a/src/covers/albumcoverloader.h
+++ b/src/covers/albumcoverloader.h
-@@ -66,7 +66,6 @@ class AlbumCoverLoader : public QObject {
+@@ -67,9 +67,6 @@ class AlbumCoverLoader : public QObject {
protected slots:
void ProcessTasks();
void RemoteFetchFinished(QNetworkReply* reply);
+-#ifdef HAVE_SPOTIFY
- void SpotifyImageLoaded(const QString& url, const QImage& image);
+-#endif
protected:
enum State { State_TryingManual, State_TryingAuto, };
-@@ -103,13 +102,10 @@ class AlbumCoverLoader : public QObject {
+@@ -106,13 +103,10 @@ class AlbumCoverLoader : public QObject {
QMutex mutex_;
QQueue<Task> tasks_;
QMap<QNetworkReply*, Task> remote_tasks_;
@@ -603,31 +600,35 @@ index 4d3e4d5..5de0663 100644
-
static const int kMaxRedirects = 3;
};
-
+
diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp
-index c3fde67..a1188be 100644
+index f6094c41f..c838ab6dc 100644
--- a/src/engines/gstenginepipeline.cpp
+++ b/src/engines/gstenginepipeline.cpp
-@@ -34,8 +34,6 @@
+@@ -35,10 +35,6 @@
#include "core/signalchecker.h"
#include "core/utilities.h"
#include "internet/core/internetmodel.h"
--#include "internet/spotify/spotifyserver.h"
--#include "internet/spotify/spotifyservice.h"
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotify/spotifyserver.h"
+-# include "internet/spotify/spotifyservice.h"
+-#endif
const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000;
const int GstEnginePipeline::kFaderFudgeMsec = 2000;
-@@ -152,44 +150,14 @@ bool GstEnginePipeline::ReplaceDecodeBin(GstElement* new_bin) {
+@@ -155,38 +151,6 @@ bool GstEnginePipeline::ReplaceDecodeBin(GstElement* new_bin) {
bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) {
GstElement* new_bin = nullptr;
+-#ifdef HAVE_SPOTIFY
- if (url.scheme() == "spotify") {
- new_bin = gst_bin_new("spotify_bin");
-
- // Create elements
- GstElement* src = engine_->CreateElement("tcpserversrc", new_bin);
+- if (!src) return false;
- GstElement* gdp = engine_->CreateElement("gdpdepay", new_bin);
-- if (!src || !gdp) return false;
+- if (!gdp) return false;
-
- // Pick a port number
- const int port = Utilities::PickUnusedPort();
@@ -643,38 +644,31 @@ index c3fde67..a1188be 100644
- gst_object_unref(GST_OBJECT(pad));
-
- // Tell spotify to start sending data to us.
-- SpotifyServer* spotify_server = InternetModel::Service<SpotifyService>()->server();
+- 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));
+- 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(),
-- 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);
+-#endif
+ QByteArray uri;
+ if (url.scheme() == "cdda") {
+ QString str = url.toString();
+@@ -203,9 +167,6 @@ bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) {
+ CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this);
+ CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback,
+ this);
+-#ifdef HAVE_SPOTIFY
- }
-+ 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);
+-#endif
return ReplaceDecodeBin(new_bin);
}
-@@ -923,16 +891,8 @@ GstPadProbeReturn GstEnginePipeline::EventHandoffCallback(GstPad*,
- void GstEnginePipeline::SourceDrainedCallback(GstURIDecodeBin* bin,
+@@ -959,14 +920,7 @@ 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
@@ -683,16 +677,15 @@ index c3fde67..a1188be 100644
- // NextItem will be called.
- !(instance->url_.scheme() != "spotify" &&
- instance->next_url_.scheme() == "spotify")) {
-- instance->TransitionToNext();
+ if (instance->has_next_valid_url()) {
-+ instance->TransitionToNext();
+ instance->TransitionToNext();
}
}
-
-@@ -1032,24 +992,6 @@ GstState GstEnginePipeline::state() const {
+@@ -1058,26 +1012,6 @@ GstState GstEnginePipeline::state() const {
}
QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(GstState state) {
+-#ifdef HAVE_SPOTIFY
- if (url_.scheme() == "spotify" && !buffering_) {
- const GstState current_state = this->state();
-
@@ -711,34 +704,39 @@ index c3fde67..a1188be 100644
- Q_ARG(bool, false));
- }
- }
+-#endif
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
+index 756d48073..ab3f8e4fe 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"
+@@ -59,9 +59,6 @@
+ #ifdef HAVE_SEAFILE
+ #include "internet/seafile/seafileservice.h"
+ #endif
+-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifyservice.h"
- #include "internet/subsonic/subsonicservice.h"
- #include "core/closure.h"
- #include "core/logging.h"
-@@ -97,7 +96,6 @@ InternetModel::InternetModel(Application* app, QObject* parent)
+-#endif
+
+ using smart_playlists::Generator;
+ using smart_playlists::GeneratorMimeData;
+@@ -94,9 +91,6 @@ InternetModel::InternetModel(Application* app, QObject* parent)
AddService(new RadioTunesService(app, this));
AddService(new SomaFMService(app, this));
- AddService(new SoundCloudService(app, this));
+ AddService(new IntergalacticFMService(app, this));
+-#ifdef HAVE_SPOTIFY
- AddService(new SpotifyService(app, this));
+-#endif
AddService(new SubsonicService(app, this));
#ifdef HAVE_BOX
AddService(new BoxService(app, this));
diff --git a/src/main.cpp b/src/main.cpp
-index 1a961c8..87c1f34 100644
+index ecf47b9d4..8b8143f4a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
-@@ -159,8 +159,6 @@ void SetEnv(const char* key, const QString& value) {
+@@ -145,8 +145,6 @@ void SetEnv(const char* key, const QString& value) {
#endif
}
@@ -748,7 +746,7 @@ index 1a961c8..87c1f34 100644
QString scanner_path;
QString plugin_path;
diff --git a/src/playlist/playlistbackend.h b/src/playlist/playlistbackend.h
-index f9d347c..320c0fb 100644
+index f9d347c4e..320c0fb9b 100644
--- a/src/playlist/playlistbackend.h
+++ b/src/playlist/playlistbackend.h
@@ -47,8 +47,6 @@ class PlaylistBackend : public QObject {
@@ -761,10 +759,10 @@ index f9d347c..320c0fb 100644
};
typedef QList<Playlist> PlaylistList;
diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp
-index 11ffa42..649976a 100644
+index daf896e73..d74b74a56 100644
--- a/src/playlist/playlistdelegates.cpp
+++ b/src/playlist/playlistdelegates.cpp
-@@ -458,9 +458,7 @@ QPixmap SongSourceDelegate::LookupPixmap(const QUrl& url,
+@@ -456,9 +456,7 @@ QPixmap SongSourceDelegate::LookupPixmap(const QUrl& url,
if (handler) {
icon = handler->icon();
} else {
@@ -775,110 +773,27 @@ index 11ffa42..649976a 100644
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();
- }
+diff --git a/src/songinfo/artistinfoview.cpp b/src/songinfo/artistinfoview.cpp
+index af1f5d0c4..eda16d44b 100644
+--- a/src/songinfo/artistinfoview.cpp
++++ b/src/songinfo/artistinfoview.cpp
+@@ -21,11 +21,9 @@
+ #include "songinfo/songinfofetcher.h"
+ #include "songinfo/songkickconcerts.h"
+ #include "widgets/prettyimageview.h"
+-#include "songinfo/spotifyimages.h"
+
+ ArtistInfoView::ArtistInfoView(QWidget* parent) : SongInfoBase(parent) {
+ fetcher_->AddProvider(new SongkickConcerts);
+- fetcher_->AddProvider(new SpotifyImages);
+ fetcher_->AddProvider(new ArtistBiography);
}
--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 77a05d1..a43ae4f 100644
+index 0314a380f..f3d9c6944 100644
--- a/src/ui/about.cpp
+++ b/src/ui/about.cpp
-@@ -83,7 +83,6 @@ QString About::MakeHtml() const {
+@@ -88,7 +88,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:"));
@@ -886,7 +801,7 @@ index 77a05d1..a43ae4f 100644
ret += QString(
"<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott "
"Smitelli</a>");
-@@ -91,11 +90,6 @@ QString About::MakeHtml() const {
+@@ -96,11 +95,6 @@ QString About::MakeHtml() const {
"<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie "
"Brosh</a></p>");
@@ -899,27 +814,33 @@ index 77a05d1..a43ae4f 100644
}
diff --git a/src/ui/settingsdialog.cpp b/src/ui/settingsdialog.cpp
-index 2cb7e1b..8cb60e7 100644
+index 354187ade..80f2820e7 100644
--- a/src/ui/settingsdialog.cpp
+++ b/src/ui/settingsdialog.cpp
-@@ -39,7 +39,6 @@
- #include "internet/core/internetshowsettingspage.h"
- #include "internet/magnatune/magnatunesettingspage.h"
- #include "internet/soundcloud/soundcloudsettingspage.h"
+@@ -77,10 +77,6 @@
+ #include "internet/seafile/seafilesettingspage.h"
+ #endif
+
+-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifysettingspage.h"
- #include "internet/subsonic/subsonicsettingspage.h"
- #include "library/librarysettingspage.h"
- #include "playlist/playlistview.h"
-@@ -184,7 +183,6 @@ SettingsDialog::SettingsDialog(Application* app, BackgroundStreams* streams,
+-#endif
+-
+ #include <QAbstractButton>
+ #include <QDesktopWidget>
+ #include <QPainter>
+@@ -177,10 +173,6 @@ SettingsDialog::SettingsDialog(Application* app, BackgroundStreams* streams,
+ AddPage(Page_Skydrive, new SkydriveSettingsPage(this), providers);
#endif
- AddPage(Page_SoundCloud, new SoundCloudSettingsPage(this), providers);
+-#ifdef HAVE_SPOTIFY
- AddPage(Page_Spotify, new SpotifySettingsPage(this), providers);
-
- #ifdef HAVE_VK
- AddPage(Page_Vk, new VkSettingsPage(this), providers);
+-#endif
+-
+ #ifdef HAVE_SEAFILE
+ AddPage(Page_Seafile, new SeafileSettingsPage(this), providers);
+ #endif
diff --git a/src/ui/settingsdialog.h b/src/ui/settingsdialog.h
-index 14bb976..b543cc9 100644
+index f45f72983..dc4eeb6c4 100644
--- a/src/ui/settingsdialog.h
+++ b/src/ui/settingsdialog.h
@@ -69,7 +69,6 @@ class SettingsDialog : public QDialog {