1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-20 07:49:42 +01:00

Handle ScriptJob errors gracefully

This commit is contained in:
Dominik Schmidt 2014-12-05 05:01:04 +01:00
parent 3d4cfa0161
commit 558e6f5294
3 changed files with 18 additions and 6 deletions

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

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

@ -69,7 +69,7 @@ ScriptPlugin::reportScriptJobResult( const QVariantMap& result )
}
else
{
job->reportFailure();
job->reportFailure( result[ "error" ].toString() );
}
}