From 2e29ed1ec128e5d31c8294c77c215f4649c44140 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Fri, 11 Dec 2020 11:50:12 +0200 Subject: Copy highdpi images as resource to installer HighDPI images are needed when scalefactor is set so that images don't look low quality Task-number: QTIFW-2080 Change-Id: Ic5b8db0bae31674269b01cc4dcabae7901a62793 Reviewed-by: Arttu Tarkiainen --- src/libs/ifwtools/binarycreator.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/libs/ifwtools/binarycreator.cpp') diff --git a/src/libs/ifwtools/binarycreator.cpp b/src/libs/ifwtools/binarycreator.cpp index 9c141d1a0..e8d1c3cd4 100644 --- a/src/libs/ifwtools/binarycreator.cpp +++ b/src/libs/ifwtools/binarycreator.cpp @@ -60,6 +60,7 @@ using namespace QInstaller; using namespace QInstallerTools; +static const QLatin1String scHighDpi("@2x."); #ifndef Q_OS_WIN static void chmod755(const QString &absolutFilePath) @@ -610,6 +611,7 @@ void QInstallerTools::copyConfigData(const QString &configFile, const QString &t const QString targetFile = targetDir + QLatin1Char('/') + childElement.text(); const QFileInfo childFileInfo = QFileInfo(sourceConfigFilePath, childElement.text()); QInstallerTools::copyWithException(childFileInfo.absoluteFilePath(), targetFile, childName); + copyHighDPIImage(childFileInfo, childName, targetFile); } continue; } @@ -641,6 +643,7 @@ void QInstallerTools::copyConfigData(const QString &configFile, const QString &t domElement.replaceChild(dom.createTextNode(newName), domElement.firstChild()); QInstallerTools::copyWithException(elementFileInfo.absoluteFilePath(), targetFile, tagName); + copyHighDPIImage(elementFileInfo, tagName, targetFile); } QInstaller::openForWrite(&configXml); @@ -650,6 +653,18 @@ void QInstallerTools::copyConfigData(const QString &configFile, const QString &t qDebug() << "done.\n"; } +void QInstallerTools::copyHighDPIImage(const QFileInfo &childFileInfo, + const QString &childName, const QString &targetFile) +{ + //Copy also highdpi image if present + const QFileInfo childFileInfoHighDpi = QFileInfo(childFileInfo.absolutePath(), childFileInfo.baseName() + scHighDpi + childFileInfo.suffix()); + if (childFileInfoHighDpi.exists()) { + const QFileInfo tf(targetFile); + const QString highDpiTarget = tf.absolutePath() + QLatin1Char('/') + tf.baseName() + scHighDpi + tf.suffix(); + QInstallerTools::copyWithException(childFileInfoHighDpi.absoluteFilePath(), highDpiTarget, childName); + } +} + int QInstallerTools::createBinary(BinaryCreatorArgs args, QString &argumentError) { // increase maximum numbers of file descriptors -- cgit v1.2.3