From 47f52cd4d1460c48b7cfcbd33a4cc5d7c4ab9cdc Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 28 Nov 2021 17:18:43 -0800 Subject: [PATCH] printing: use file:// paths for profile images At least on openSUSE the profile images are otherwise not found. Signed-off-by: Dirk Hohndel --- desktop-widgets/printerwebengine.cpp | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/desktop-widgets/printerwebengine.cpp b/desktop-widgets/printerwebengine.cpp index 6d7f6767a..a4b874234 100644 --- a/desktop-widgets/printerwebengine.cpp +++ b/desktop-widgets/printerwebengine.cpp @@ -37,17 +37,23 @@ Printer::~Printer() void Printer::onLoadFinished() { if (profilesMissing) { - webView->page()->runJavaScript(" var profiles = document.getElementsByClassName(\"diveProfile\");\ - for (let profile of profiles) { \ - var id = profile.attributes.getNamedItem(\"Id\").value; \ - var img = document.createElement(\"img\"); \ - img.src = id + \".png\"; \ - img.style.height = \"100%\"; \ - img.style.width = \"100%\"; \ - profile.appendChild(img); \ - } \ - ", [this](const QVariant &v) { emit profilesInserted(); }); - + QString jsText(" var profiles = document.getElementsByClassName(\"diveProfile\");\ + for (let profile of profiles) { \ + var id = profile.attributes.getNamedItem(\"Id\").value; \ + var img = document.createElement(\"img\"); \ + img.src = \"TMPPATH\" + id + \".png\"; \ + img.style.height = \"100%\"; \ + img.style.width = \"100%\"; \ + profile.appendChild(img); \ + } \ + document.documentElement.innerHTML; \ + "); + QString filePath = QStringLiteral("file://") + printDir.path() + QDir::separator(); + jsText.replace("TMPPATH", filePath); + webView->page()->runJavaScript(jsText, [this](const QVariant &v) { + qDebug() << "JS finished"; + emit profilesInserted(); + }); } profilesMissing = false; emit(progessUpdated(100)); @@ -95,7 +101,6 @@ QString Printer::writeTmpTemplate(const QString templtext) { QFile fd(printDir.filePath("ssrftmptemplate.html")); - fd.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out(&fd); out << templtext;