mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-05 05:37:29 +02:00
Instead of getting statically defined capabilities at resolver startup,
have resolvers report their actual capabilities as soon as they know for sure they have them.
This commit is contained in:
@@ -134,10 +134,6 @@ var TomahawkResolver = {
|
||||
{
|
||||
return this.resolve( qid, "", "", searchString );
|
||||
},
|
||||
capabilities: function()
|
||||
{
|
||||
return TomahawkResolverCapability.NullCapability;
|
||||
},
|
||||
artists: function( qid )
|
||||
{
|
||||
return {
|
||||
|
@@ -234,6 +234,21 @@ QtScriptResolverHelper::addAlbumTrackResults( const QVariantMap& results )
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
QtScriptResolverHelper::reportCapabilities( const QVariant& v )
|
||||
{
|
||||
bool ok = 0;
|
||||
int intCap = v.toInt( &ok );
|
||||
Tomahawk::ExternalResolver::Capabilities capabilities;
|
||||
if ( !ok )
|
||||
capabilities = Tomahawk::ExternalResolver::NullCapability;
|
||||
else
|
||||
capabilities = static_cast< Tomahawk::ExternalResolver::Capabilities >( intCap );
|
||||
|
||||
m_resolver->onCapabilitiesChanged( capabilities );
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
QtScriptResolverHelper::setResolverConfig( const QVariantMap& config )
|
||||
{
|
||||
@@ -436,13 +451,6 @@ QtScriptResolver::init()
|
||||
m_timeout = m.value( "timeout", 25 ).toUInt() * 1000;
|
||||
bool compressed = m.value( "compressed", "false" ).toString() == "true";
|
||||
|
||||
bool ok = 0;
|
||||
int intCap = m_engine->mainFrame()->evaluateJavaScript( "resolver.capabilities()" ).toInt( &ok );
|
||||
if ( !ok )
|
||||
m_capabilities = NullCapability;
|
||||
else
|
||||
m_capabilities = static_cast< Capabilities >( intCap );
|
||||
|
||||
QByteArray icoData = m.value( "icon" ).toByteArray();
|
||||
if( compressed )
|
||||
icoData = qUncompress( QByteArray::fromBase64( icoData ) );
|
||||
@@ -470,8 +478,6 @@ QtScriptResolver::init()
|
||||
QVariantMap config = resolverUserConfig();
|
||||
fillDataInWidgets( config );
|
||||
|
||||
loadCollections();
|
||||
|
||||
qDebug() << "JS" << filePath() << "READY," << "name" << m_name << "weight" << m_weight << "timeout" << m_timeout << "icon received" << success;
|
||||
|
||||
m_ready = true;
|
||||
@@ -884,6 +890,14 @@ QtScriptResolver::fillDataInWidgets( const QVariantMap& data )
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
QtScriptResolver::onCapabilitiesChanged( Tomahawk::ExternalResolver::Capabilities capabilities )
|
||||
{
|
||||
m_capabilities = capabilities;
|
||||
loadCollections();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
QtScriptResolver::loadCollections()
|
||||
{
|
||||
|
@@ -76,6 +76,8 @@ public slots:
|
||||
void addAlbumResults( const QVariantMap& results );
|
||||
void addAlbumTrackResults( const QVariantMap& results );
|
||||
|
||||
void reportCapabilities( const QVariant& capabilities );
|
||||
|
||||
private:
|
||||
QString m_scriptPath, m_urlCallback;
|
||||
QVariantMap m_resolverConfig;
|
||||
@@ -171,6 +173,7 @@ private:
|
||||
QVariant widgetData( QWidget* widget, const QString& property );
|
||||
QVariantMap loadDataFromWidgets();
|
||||
void fillDataInWidgets( const QVariantMap& data );
|
||||
void onCapabilitiesChanged( Capabilities capabilities );
|
||||
void loadCollections();
|
||||
|
||||
// encapsulate javascript calls
|
||||
|
Reference in New Issue
Block a user