bool QFormScriptRunner::run(const DomWidget *domWidget, const QString &customWidgetScript, QWidget *widget, const WidgetList &children, QString *errorMessage) { typedef QList<DomScript*> DomScripts; const Options scriptOptions = m_impl->options(); if (scriptOptions & DisableScripts) return true; // get list const DomScripts domScripts = domWidget->elementScript(); // Concatenate snippets, starting with custom widget script QString script = customWidgetScript; if (script.isEmpty() && domScripts.empty()) return true; foreach (const DomScript *scriptSnippet, domScripts) { // Ensure new line if (!script.isEmpty() && !script.endsWith(QLatin1Char('\n'))) script += QLatin1Char('\n'); script += scriptSnippet->text(); } if (script.isEmpty()) return true; const bool rc = m_impl->run(script, widget, children, errorMessage); if (debugFormScriptRunner) { qDebug() << "For " << widget << " with " << children.size() << " children, ran: " << script; if (!rc) qDebug() << *errorMessage; } if (!rc) { if (!(scriptOptions & DisableWarnings)) { const QString message = QCoreApplication::tr("An error occurred while running the script for %1: %2\nScript: %3"). arg(widget->objectName()).arg(*errorMessage).arg(script); qWarning() << message; } } return rc; }
void WriteIncludes::acceptWidgetScripts(const DomScripts &scripts, DomWidget *, const DomWidgets &) { if (!scripts.empty()) { activateScripts(); } }