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:
@@ -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() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -69,7 +69,7 @@ ScriptPlugin::reportScriptJobResult( const QVariantMap& result )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
job->reportFailure();
|
job->reportFailure( result[ "error" ].toString() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user