| "); + } else if (isListField) { + // Named list field: label on its own full-width row, list below + html += QStringLiteral(" | |
| %1 | |
| "); + } else { + html += QStringLiteral( + " | |
| %1 | ")
+ .arg(htmlEscapedMetadataText(name));
+ }
+
+ if (!value.isEmpty())
+ html += htmlEscapedMetadataText(value);
+ else if (!hasChild && !isIndexed)
+ html += QStringLiteral("(empty)");
+
+ if (hasChild) {
+ if (!value.isEmpty())
+ html += QStringLiteral(" "); + // List fields are already in a full-width cell; don't add extra indent depth + html += renderMetadataPropertiesHtml(child, + isListField ? depth : depth + 1, + childSeparated); + } + + html += QStringLiteral(" |
%1: %2
") + .arg(QObject::tr("Service")) + .arg(htmlEscapedMetadataText(serviceName)); + html += renderMetadataPropertiesHtml(metadata); + html += QStringLiteral(""); + return html; +} + +AddOnMetadataHelpDialog *AddOnMetadataHelpDialog::create(const QString &serviceName, QWidget *parent) +{ + if (serviceName.isEmpty()) + return nullptr; + + QScopedPointer