diff --git a/src/scriptable/scriptable.cpp b/src/scriptable/scriptable.cpp index 97d0385dac8d5688e9f58c655245c9e1d0f97e59..9da8f1d6d0d9daa4dfaf5dccfc25e6bef786710e 100644 --- a/src/scriptable/scriptable.cpp +++ b/src/scriptable/scriptable.cpp @@ -3196,9 +3196,12 @@ bool Scriptable::runAction(Action *action) setActionData(); action->setWorkingDirectory( getCurrentPath() ); - action->start(); - while ( !action->waitForFinished(5000) && canContinue() ) {} + QEventLoop loop; + connect(action, &Action::actionFinished, &loop, &QEventLoop::quit); + connect(this, &Scriptable::finished, &loop, &QEventLoop::quit); + action->start(); + loop.exec(); if ( action->isRunning() && !action->waitForFinished(5000) ) { action->terminate();