1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-09 07:36:48 +02:00

autodetect and populate resovlers named foo_tomahawkresolver* in the binary dir of tomahawk

This commit is contained in:
Leo Franchi
2011-05-07 18:49:38 -04:00
parent e8430e0501
commit 942e5f892b
3 changed files with 32 additions and 2 deletions

View File

@@ -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 );
}
}
}
}
}

View File

@@ -48,6 +48,8 @@ public:
QStringList allResolvers() const;
QStringList enabledResolvers() const;
private:
void addInstalledResolvers();
QStringList m_allResolvers;
QStringList m_enabledResolvers;
};