mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-05 13:47:26 +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 );
|
return this.resolve( qid, "", "", searchString );
|
||||||
},
|
},
|
||||||
capabilities: function()
|
|
||||||
{
|
|
||||||
return TomahawkResolverCapability.NullCapability;
|
|
||||||
},
|
|
||||||
artists: function( qid )
|
artists: function( qid )
|
||||||
{
|
{
|
||||||
return {
|
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
|
void
|
||||||
QtScriptResolverHelper::setResolverConfig( const QVariantMap& config )
|
QtScriptResolverHelper::setResolverConfig( const QVariantMap& config )
|
||||||
{
|
{
|
||||||
@@ -436,13 +451,6 @@ QtScriptResolver::init()
|
|||||||
m_timeout = m.value( "timeout", 25 ).toUInt() * 1000;
|
m_timeout = m.value( "timeout", 25 ).toUInt() * 1000;
|
||||||
bool compressed = m.value( "compressed", "false" ).toString() == "true";
|
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();
|
QByteArray icoData = m.value( "icon" ).toByteArray();
|
||||||
if( compressed )
|
if( compressed )
|
||||||
icoData = qUncompress( QByteArray::fromBase64( icoData ) );
|
icoData = qUncompress( QByteArray::fromBase64( icoData ) );
|
||||||
@@ -470,8 +478,6 @@ QtScriptResolver::init()
|
|||||||
QVariantMap config = resolverUserConfig();
|
QVariantMap config = resolverUserConfig();
|
||||||
fillDataInWidgets( config );
|
fillDataInWidgets( config );
|
||||||
|
|
||||||
loadCollections();
|
|
||||||
|
|
||||||
qDebug() << "JS" << filePath() << "READY," << "name" << m_name << "weight" << m_weight << "timeout" << m_timeout << "icon received" << success;
|
qDebug() << "JS" << filePath() << "READY," << "name" << m_name << "weight" << m_weight << "timeout" << m_timeout << "icon received" << success;
|
||||||
|
|
||||||
m_ready = true;
|
m_ready = true;
|
||||||
@@ -884,6 +890,14 @@ QtScriptResolver::fillDataInWidgets( const QVariantMap& data )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
QtScriptResolver::onCapabilitiesChanged( Tomahawk::ExternalResolver::Capabilities capabilities )
|
||||||
|
{
|
||||||
|
m_capabilities = capabilities;
|
||||||
|
loadCollections();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
QtScriptResolver::loadCollections()
|
QtScriptResolver::loadCollections()
|
||||||
{
|
{
|
||||||
|
@@ -76,6 +76,8 @@ public slots:
|
|||||||
void addAlbumResults( const QVariantMap& results );
|
void addAlbumResults( const QVariantMap& results );
|
||||||
void addAlbumTrackResults( const QVariantMap& results );
|
void addAlbumTrackResults( const QVariantMap& results );
|
||||||
|
|
||||||
|
void reportCapabilities( const QVariant& capabilities );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_scriptPath, m_urlCallback;
|
QString m_scriptPath, m_urlCallback;
|
||||||
QVariantMap m_resolverConfig;
|
QVariantMap m_resolverConfig;
|
||||||
@@ -171,6 +173,7 @@ private:
|
|||||||
QVariant widgetData( QWidget* widget, const QString& property );
|
QVariant widgetData( QWidget* widget, const QString& property );
|
||||||
QVariantMap loadDataFromWidgets();
|
QVariantMap loadDataFromWidgets();
|
||||||
void fillDataInWidgets( const QVariantMap& data );
|
void fillDataInWidgets( const QVariantMap& data );
|
||||||
|
void onCapabilitiesChanged( Capabilities capabilities );
|
||||||
void loadCollections();
|
void loadCollections();
|
||||||
|
|
||||||
// encapsulate javascript calls
|
// encapsulate javascript calls
|
||||||
|
Reference in New Issue
Block a user