on xenial help sign in
Check gsettings for remote-content-search.
a93fb70Pawel Stolowski
plugins/Utils/CMakeLists.txt+5
@@ -1,10 +1,13 @@
1# Dependencies
1# Dependencies
2include(FindPkgConfig)
2include(FindPkgConfig)
3
3
4+pkg_search_module(GLIB REQUIRED glib-2.0)
5+
4include_directories(
6include_directories(
5 ${CMAKE_CURRENT_SOURCE_DIR}
7 ${CMAKE_CURRENT_SOURCE_DIR}
6 ${CMAKE_CURRENT_BINARY_DIR}
8 ${CMAKE_CURRENT_BINARY_DIR}
7 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
9 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
10+ ${GLIB_INCLUDE_DIRS}
8)
11)
9
12
10set(QMLPLUGIN_SRC
13set(QMLPLUGIN_SRC
@@ -22,6 +25,8 @@ add_library(Utils-qml SHARED
22 ${QMLPLUGIN_SRC}
25 ${QMLPLUGIN_SRC}
23 )
26 )
24
27
28+target_link_libraries(Utils-qml ${GLIB_LDFLAGS})
29+
25# Because this is an internal support library, we want
30# Because this is an internal support library, we want
26# to expose all symbols in it. Consider changing this
31# to expose all symbols in it. Consider changing this
27# either to a static library or just using the
32# either to a static library or just using the
plugins/Utils/albumartprovider.cpp+18
@@ -39,6 +39,18 @@ using namespace std;
39
39
40const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png";
40const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png";
41
41
42+AlbumArtProvider::AlbumArtProvider()
43+ : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading)
44+{
45+ m_settings = g_settings_new ("com.canonical.Unity.Lenses");
46+}
47+
48+AlbumArtProvider::~AlbumArtProvider()
49+{
50+ if (m_settings)
51+ g_object_unref(m_settings);
52+}
53+
42std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
54std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
43 QString artist = QString::fromStdString(ai.artist);
55 QString artist = QString::fromStdString(ai.artist);
44 QString album = QString::fromStdString(ai.album);
56 QString album = QString::fromStdString(ai.album);
@@ -130,6 +142,12 @@ std::string AlbumArtProvider::get_image(const std::string &artist, const std::st
130 // It might expire before we return. C'est la vie.
142 // It might expire before we return. C'est la vie.
131 return cache.get_art_file(info.artist, info.album);
143 return cache.get_art_file(info.artist, info.album);
132 }
144 }
145+
146+ if (m_settings != nullptr && g_settings_get_boolean(m_settings, "remote-content-search") == false) {
147+ qDebug() << "Remote content disabled";
148+ return "";
149+ }
150+
133 std::string image_url = get_lastfm_url(info);
151 std::string image_url = get_lastfm_url(info);
134 if(image_url.empty()) {
152 if(image_url.empty()) {
135 return DEFAULT_ALBUM_ART;
153 return DEFAULT_ALBUM_ART;
plugins/Utils/albumartprovider.h+4−1
@@ -22,6 +22,7 @@
22#include <string>
22#include <string>
23#include <stdexcept>
23#include <stdexcept>
24#include <QQuickImageProvider>
24#include <QQuickImageProvider>
25+#include <gio/gio.h>
25
26
26#include "mediaartcache.h"
27#include "mediaartcache.h"
27
28
@@ -33,7 +34,8 @@ struct albuminfo {
33class AlbumArtProvider : public QQuickImageProvider
34class AlbumArtProvider : public QQuickImageProvider
34{
35{
35public:
36public:
36− AlbumArtProvider() : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading) {}
37+ AlbumArtProvider();
38+ ~AlbumArtProvider();
37 QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize);
39 QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize);
38
40
39 std::string get_image(const std::string &artist, const std::string &album);
41 std::string get_image(const std::string &artist, const std::string &album);
@@ -41,6 +43,7 @@ public:
41 const static std::string DEFAULT_ALBUM_ART;
43 const static std::string DEFAULT_ALBUM_ART;
42private:
44private:
43 MediaArtCache cache;
45 MediaArtCache cache;
46+ GSettings *m_settings;
44
47
45 void fix_format(const std::string &fname);
48 void fix_format(const std::string &fname);
46
49