diff --git a/src/libtomahawk/resolvers/ScriptJob.cpp b/src/libtomahawk/resolvers/ScriptJob.cpp index 574f582bd..f342d389c 100644 --- a/src/libtomahawk/resolvers/ScriptJob.cpp +++ b/src/libtomahawk/resolvers/ScriptJob.cpp @@ -24,6 +24,7 @@ using namespace Tomahawk; ScriptJob::ScriptJob( const QString& id, ScriptObject* scriptObject, const QString& methodName, const QVariantMap& arguments ) : QObject( scriptObject ) + , m_error( false ) , m_id( id ) , m_scriptObject( scriptObject ) , m_methodName( methodName ) @@ -44,6 +45,13 @@ ScriptJob::start() } +bool +ScriptJob::error() const +{ + return m_error; +} + + ScriptObject* ScriptJob::scriptObject() const { @@ -81,8 +89,9 @@ ScriptJob::reportResults( const QVariantMap& data ) void -ScriptJob::reportFailure() +ScriptJob::reportFailure( const QString& errorMessage ) { + emit error( errorMessage ); + reportResults( QVariantMap() ); } - diff --git a/src/libtomahawk/resolvers/ScriptJob.h b/src/libtomahawk/resolvers/ScriptJob.h index a8640a992..dd20ed14b 100644 --- a/src/libtomahawk/resolvers/ScriptJob.h +++ b/src/libtomahawk/resolvers/ScriptJob.h @@ -39,23 +39,26 @@ public: virtual void start(); + bool error() const; + const QString id() const; ScriptObject* scriptObject() const; const QString methodName() const; const QVariantMap arguments() const; public slots: - void reportResults( const QVariantMap& data ); - void reportFailure(); + void reportResults( const QVariantMap& data = QVariantMap() ); + void reportFailure( const QString& errorMessage ); signals: void done( const QVariantMap& result ); - void failed( const QVariantMap& reason ); + void error( const QString& errorMessage ); void destroyed( const QString& id ); protected: // TODO: pimple + bool m_error; QString m_id; ScriptObject* m_scriptObject; QVariantMap m_data; diff --git a/src/libtomahawk/resolvers/ScriptPlugin.cpp b/src/libtomahawk/resolvers/ScriptPlugin.cpp index 5f0faee41..231dbaac7 100644 --- a/src/libtomahawk/resolvers/ScriptPlugin.cpp +++ b/src/libtomahawk/resolvers/ScriptPlugin.cpp @@ -69,7 +69,7 @@ ScriptPlugin::reportScriptJobResult( const QVariantMap& result ) } else { - job->reportFailure(); + job->reportFailure( result[ "error" ].toString() ); } }