From b77d4dc73eb322f5c62cf4705eccc214645eaf2b Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Tue, 11 Nov 2014 21:51:26 +0100 Subject: [PATCH] Call _adapter_$propertyName on resolver object if available to allow a nice promise based API without breaking legacy resolvers --- src/libtomahawk/resolvers/JSResolver.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libtomahawk/resolvers/JSResolver.cpp b/src/libtomahawk/resolvers/JSResolver.cpp index 4a367e806..02b68f59d 100644 --- a/src/libtomahawk/resolvers/JSResolver.cpp +++ b/src/libtomahawk/resolvers/JSResolver.cpp @@ -985,5 +985,13 @@ JSResolver::callOnResolver ( const QString& scriptSource ) { Q_D( JSResolver ); - return d->engine->mainFrame()->evaluateJavaScript( scriptSource + ";" ); + QString propertyName = scriptSource.split('(').first(); + + return d->engine->mainFrame()->evaluateJavaScript( QString( + "if(Tomahawk.resolver.instance['_adapter_%1']) {" + " Tomahawk.resolver.instance._adapter_%2;" + "} else {" + " Tomahawk.resolver.instance.%2" + "}" + ).arg( propertyName ).arg( scriptSource ) ); }