From 2164c1ce51edc81822d18d1e084de9f33515b52d Mon Sep 17 00:00:00 2001 From: Stefan Derkits Date: Sun, 19 Oct 2014 16:20:54 +0200 Subject: [PATCH] revert to storing QStringList in cache --- .../dynamic/echonest/EchonestControl.cpp | 5 +---- .../dynamic/echonest/EchonestGenerator.cpp | 18 ++++++++++-------- .../dynamic/echonest/EchonestGenerator.h | 9 ++------- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp b/src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp index f1a7f2d78..f77971583 100644 --- a/src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp +++ b/src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp @@ -1148,10 +1148,7 @@ Tomahawk::EchonestControl::insertMoodsStylesAndGenres() } else { - foreach( const Echonest::Genre& genre, EchonestGenerator::genres() ) - { - src.append( genre.name() ); - } + src = EchonestGenerator::genres(); } QComboBox* combo = qobject_cast< QComboBox* >( m_input.data() ); diff --git a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp index 5b9b80737..482300756 100644 --- a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp +++ b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp @@ -39,7 +39,7 @@ using namespace Tomahawk; QStringList EchonestGenerator::s_moods = QStringList(); QStringList EchonestGenerator::s_styles = QStringList(); -Echonest::Genres EchonestGenerator::s_genres = Echonest::Genres(); +QStringList EchonestGenerator::s_genres = QStringList(); QNetworkReply* EchonestGenerator::s_moodsJob = 0; QNetworkReply* EchonestGenerator::s_stylesJob = 0; QNetworkReply* EchonestGenerator::s_genresJob = 0; @@ -705,12 +705,11 @@ EchonestGenerator::loadGenres() { if ( s_genres_lock.tryLockForRead() ) { - qRegisterMetaTypeStreamOperators< Echonest::Genre >( "enGenre" ); QVariant genres = TomahawkUtils::Cache::instance()->getData( "EchonestGenerator", "genres" ); s_genres_lock.unlock(); - if ( genres.isValid() && genres.canConvert< Echonest::Genres >() ) + if ( genres.isValid() && genres.canConvert< QStringList >() ) { - s_genres = genres.value< Echonest::Genres >(); + s_genres = genres.toStringList(); } else { @@ -786,7 +785,7 @@ EchonestGenerator::stylesReceived() emit stylesSaved(); } -Echonest::Genres +QStringList EchonestGenerator::genres() { return s_genres; @@ -801,7 +800,11 @@ EchonestGenerator::genresReceived() try { - s_genres = Echonest::Genre::parseList( r ); + Echonest::Genres genrelist = Echonest::Genre::parseList( r ); + foreach( const Echonest::Genre& genre, genrelist ) + { + s_genres << genre.name(); + } } catch( Echonest::ParseError& e ) { @@ -809,8 +812,7 @@ EchonestGenerator::genresReceived() } s_genresJob = 0; - qRegisterMetaTypeStreamOperators< Echonest::Genre >( "enGenre" ); - TomahawkUtils::Cache::instance()->putData( "EchonestGenerator", 1209600000 /* 2 weeks */, "genres", QVariant::fromValue< Echonest::Genres >( s_genres ) ); + TomahawkUtils::Cache::instance()->putData( "EchonestGenerator", 1209600000 /* 2 weeks */, "genres", QVariant::fromValue< QStringList >( s_genres ) ); s_genres_lock.unlock(); emit genresSaved(); } diff --git a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.h b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.h index 937dd4de8..9bc71bb93 100644 --- a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.h +++ b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.h @@ -90,7 +90,7 @@ public: static QStringList styles(); static QStringList moods(); - static Echonest::Genres genres(); + static QStringList genres(); static QStringList userCatalogs(); static QByteArray catalogId( const QString& collectionId ); @@ -135,7 +135,7 @@ private: static QStringList s_styles; static QStringList s_moods; - static Echonest::Genres s_genres; + static QStringList s_genres; static QNetworkReply* s_stylesJob; static QNetworkReply* s_moodsJob; static QNetworkReply* s_genresJob; @@ -149,10 +149,5 @@ private: }; -//TODO: this code should be move to libechonest -//TODO: (delete this when libechonest 2.4 is out) -QDataStream& operator<<(QDataStream& out, const Echonest::Genre& genre); -QDataStream& operator>>(QDataStream& in, Echonest::Genre& genre); - #endif