From 942e5f892b57a5f2221beb3a0fff2ff2bb8df15a Mon Sep 17 00:00:00 2001 From: Leo Franchi <lfranchi@kde.org> Date: Sat, 7 May 2011 18:49:38 -0400 Subject: [PATCH 1/2] autodetect and populate resovlers named foo_tomahawkresolver* in the binary dir of tomahawk --- src/resolversmodel.cpp | 28 ++++++++++++++++++++++++++++ src/resolversmodel.h | 2 ++ src/tomahawkapp.cpp | 4 ++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/resolversmodel.cpp b/src/resolversmodel.cpp index 07e7c8aca..f3664cef9 100644 --- a/src/resolversmodel.cpp +++ b/src/resolversmodel.cpp @@ -39,6 +39,7 @@ ResolversModel::ResolversModel( const QStringList& allResolvers, const QStringLi if( changed ) TomahawkSettings::instance()->setEnabledScriptResolvers( m_enabledResolvers ); + addInstalledResolvers(); } @@ -152,3 +153,30 @@ ResolversModel::enabledResolvers() const return m_enabledResolvers; } +void +ResolversModel::addInstalledResolvers() +{ + QList< QDir > pluginDirs; + + QDir appDir( qApp->applicationDirPath() ); + QDir libDir( CMAKE_INSTALL_PREFIX "/lib" ); + + QDir lib64Dir( appDir ); + lib64Dir.cdUp(); + lib64Dir.cd( "lib64" ); + + pluginDirs << appDir << libDir << lib64Dir << QDir( qApp->applicationDirPath() ); + foreach ( const QDir& pluginDir, pluginDirs ) + { + qDebug() << "Checking directory for resolvers:" << pluginDir; + foreach ( QString fileName, pluginDir.entryList( QStringList() << "*_tomahawkresolver*", QDir::Files ) ){ + if ( fileName.contains( "_tomahawkresolver" ) ) { + const QString path = pluginDir.absoluteFilePath( fileName ); + if( !m_allResolvers.contains( path ) ) { + m_allResolvers.append( path ); + } + } + } + } +} + diff --git a/src/resolversmodel.h b/src/resolversmodel.h index c6cf8fa73..e7890fabf 100644 --- a/src/resolversmodel.h +++ b/src/resolversmodel.h @@ -48,6 +48,8 @@ public: QStringList allResolvers() const; QStringList enabledResolvers() const; private: + void addInstalledResolvers(); + QStringList m_allResolvers; QStringList m_enabledResolvers; }; diff --git a/src/tomahawkapp.cpp b/src/tomahawkapp.cpp index 8059306c2..e3e614b34 100644 --- a/src/tomahawkapp.cpp +++ b/src/tomahawkapp.cpp @@ -182,7 +182,7 @@ TomahawkApp::init() registerMetaTypes(); new TomahawkSettings( this ); - + #ifdef LIBLASTFM_FOUND qDebug() << "Setting NAM."; TomahawkUtils::setNam( lastfm::nam() ); @@ -204,7 +204,7 @@ TomahawkApp::init() } else TomahawkUtils::setProxy( new QNetworkProxy( QNetworkProxy::NoProxy ) ); - + Echonest::Config::instance()->setAPIKey( "JRIHWEP6GPOER2QQ6" ); m_audioEngine = new AudioEngine; From 1987b4c378a7a2fa7648d59c028b0372d3161564 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser <muesli@gmail.com> Date: Sun, 8 May 2011 02:27:56 +0200 Subject: [PATCH 2/2] * Fix result-hint crash. --- src/libtomahawk/database/databaseimpl.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/database/databaseimpl.cpp b/src/libtomahawk/database/databaseimpl.cpp index b96859edf..269ac78d0 100644 --- a/src/libtomahawk/database/databaseimpl.cpp +++ b/src/libtomahawk/database/databaseimpl.cpp @@ -564,8 +564,9 @@ DatabaseImpl::resultFromHint( const Tomahawk::query_ptr& origquery ) res->setAlbum( Tomahawk::album_ptr( new Tomahawk::Album( 0, origquery->album(), res->artist() ) ) ); res->setTrack( origquery->track() ); res->setDuration( origquery->duration() ); - res->setFriendlySource( url ); - return res;*/ + res->setFriendlySource( url );*/ + + return res; } res = Tomahawk::result_ptr( new Tomahawk::Result() );