summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/binaryformat.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-07-03 11:36:37 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-07-04 14:41:21 +0200
commit7f4fadd08d88262f357671cb8c039253c6e65326 (patch)
tree16b5128e609771d78fd1ab7673b0bbd72904afae /src/libs/installer/binaryformat.cpp
parentd847723173a5cd2bb2eb27ff0eb45ae323c8070a (diff)
Workaround for QFileInfo::isBundle().
For some reason the former code did not work anyore as expected, the issue seems to be in QFileInfo::isBundle or how we used it. To not depend on a possible fix in Qt, we now always resolve the path before we ask QFileInfo if it is a bundle. Fixes also the behavior change introduced in cead4555. On OSX, we get the .dat file passed that's inside the bundle, still we need to read the data from a .dat file that's located beside the app bundle... Change-Id: Idaa7adc6fbad6bd8e9ce90c383b34ea51fe40e8f Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer/binaryformat.cpp')
-rw-r--r--src/libs/installer/binaryformat.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libs/installer/binaryformat.cpp b/src/libs/installer/binaryformat.cpp
index 28666f8e4..a734bc3fd 100644
--- a/src/libs/installer/binaryformat.cpp
+++ b/src/libs/installer/binaryformat.cpp
@@ -657,9 +657,11 @@ BinaryContent BinaryContent::readFromBinary(const QString &path)
if (magicMarker != MagicInstallerMarker) {
// We are not an installer, so we need to read the data from the .dat file.
+
QFileInfo fi(path);
- if (QFileInfo(fi.absoluteFilePath() + QLatin1String("/../../..")).isBundle())
- fi.setFile(fi.absoluteFilePath()); // On OSX it's not inside the bundle, deserves TODO.
+ QString bundlePath; // On OSX it's not inside the bundle, deserves TODO.
+ if (QInstaller::isInBundle(fi.absoluteFilePath(), &bundlePath))
+ fi.setFile(bundlePath);
c.d->m_binaryDataFile.reset(new QFile(fi.absolutePath() + QLatin1Char('/') + fi.baseName()
+ QLatin1String(".dat")));