1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-05 21:57:41 +02: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

View File

@@ -24,6 +24,7 @@ using namespace Tomahawk;
ScriptJob::ScriptJob( const QString& id, ScriptObject* scriptObject, const QString& methodName, const QVariantMap& arguments ) ScriptJob::ScriptJob( const QString& id, ScriptObject* scriptObject, const QString& methodName, const QVariantMap& arguments )
: QObject( scriptObject ) : QObject( scriptObject )
, m_error( false )
, m_id( id ) , m_id( id )
, m_scriptObject( scriptObject ) , m_scriptObject( scriptObject )
, m_methodName( methodName ) , m_methodName( methodName )
@@ -44,6 +45,13 @@ ScriptJob::start()
} }
bool
ScriptJob::error() const
{
return m_error;
}
ScriptObject* ScriptObject*
ScriptJob::scriptObject() const ScriptJob::scriptObject() const
{ {
@@ -81,8 +89,9 @@ ScriptJob::reportResults( const QVariantMap& data )
void void
ScriptJob::reportFailure() ScriptJob::reportFailure( const QString& errorMessage )
{ {
emit error( errorMessage );
reportResults( QVariantMap() );
} }

View File

@@ -39,23 +39,26 @@ public:
virtual void start(); virtual void start();
bool error() const;
const QString id() const; const QString id() const;
ScriptObject* scriptObject() const; ScriptObject* scriptObject() const;
const QString methodName() const; const QString methodName() const;
const QVariantMap arguments() const; const QVariantMap arguments() const;
public slots: public slots:
void reportResults( const QVariantMap& data ); void reportResults( const QVariantMap& data = QVariantMap() );
void reportFailure(); void reportFailure( const QString& errorMessage );
signals: signals:
void done( const QVariantMap& result ); void done( const QVariantMap& result );
void failed( const QVariantMap& reason ); void error( const QString& errorMessage );
void destroyed( const QString& id ); void destroyed( const QString& id );
protected: protected:
// TODO: pimple // TODO: pimple
bool m_error;
QString m_id; QString m_id;
ScriptObject* m_scriptObject; ScriptObject* m_scriptObject;
QVariantMap m_data; QVariantMap m_data;

View File

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