diff options
author | kh1 <karsten.heimrich@digia.com> | 2014-07-03 11:36:37 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2014-07-04 14:41:21 +0200 |
commit | 7f4fadd08d88262f357671cb8c039253c6e65326 (patch) | |
tree | 16b5128e609771d78fd1ab7673b0bbd72904afae /src/libs/installer/binaryformat.cpp | |
parent | d847723173a5cd2bb2eb27ff0eb45ae323c8070a (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.cpp | 6 |
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"))); |