diff options
author | kh1 <qt-info@nokia.com> | 2011-05-24 13:01:34 +0200 |
---|---|---|
committer | kh1 <qt-info@nokia.com> | 2011-05-24 13:01:34 +0200 |
commit | b313324bbf479a970e612ea81259e0f002f82937 (patch) | |
tree | f8ad12e264c91458125363ab88876a9233390b7d /installerbuilder/common | |
parent | 7fa58e3d7ccdc580cf0385d92f3fe3b9843dd6a7 (diff) |
Write the operations in compressed form.
Save at least have the size of the binary data file.
Diffstat (limited to 'installerbuilder/common')
-rw-r--r-- | installerbuilder/common/binaryformat.cpp | 11 | ||||
-rw-r--r-- | installerbuilder/common/binaryformat.h | 3 |
2 files changed, 9 insertions, 5 deletions
diff --git a/installerbuilder/common/binaryformat.cpp b/installerbuilder/common/binaryformat.cpp index 017c3f902..a8723a44f 100644 --- a/installerbuilder/common/binaryformat.cpp +++ b/installerbuilder/common/binaryformat.cpp @@ -875,7 +875,8 @@ BinaryContent BinaryContent::readFromBinary(const QString &path) // check for supported binary data file, will throw if we can't find a marker try { const qint64 cookiePos = findMagicCookie(c.m_binaryFile.data(), QInstaller::MagicCookieDat); - readBinaryData(c, c.m_binaryFile.data(), readBinaryLayout(c.m_binaryFile.data(), cookiePos)); + readBinaryData(c, c.m_binaryFile.data(), readBinaryLayout(c.m_binaryFile.data(), cookiePos), + true); retry = false; } catch (const Error &error) { // this seems to be an unsupported dat file, try to read from original binary @@ -888,7 +889,7 @@ BinaryContent BinaryContent::readFromBinary(const QString &path) } if (retry) - readBinaryData(c, file, layout); + readBinaryData(c, file, layout, false); return c; } @@ -933,7 +934,8 @@ BinaryLayout BinaryContent::readBinaryLayout(QIODevice *file, qint64 cookiePos) /* static */ -void BinaryContent::readBinaryData(BinaryContent &c, QIODevice *const file, const BinaryLayout &layout) +void BinaryContent::readBinaryData(BinaryContent &c, QIODevice *const file, const BinaryLayout &layout, + bool compressed) { c.m_magicmarker = layout.magicMarker; c.metadataResourceSegments = layout.metadataResourceSegments; @@ -952,7 +954,8 @@ void BinaryContent::readBinaryData(BinaryContent &c, QIODevice *const file, cons Q_ASSERT_X(op, __FUNCTION__, QString::fromLatin1("Invalid operation name: %1").arg(name) .toLatin1()); - const QString xml = retrieveString(file); + const QString xml = (compressed ? QString::fromUtf8(qUncompress(retrieveByteArray(file))) + : retrieveString(file)); if (!op->fromXml(xml)) qWarning() << "Failed to load XML for operation:" << name; verbose() << "Operation name: " << name << "\nOperation xml:\n" << xml.leftRef(1000) << std::endl; diff --git a/installerbuilder/common/binaryformat.h b/installerbuilder/common/binaryformat.h index 3d0397678..21701df80 100644 --- a/installerbuilder/common/binaryformat.h +++ b/installerbuilder/common/binaryformat.h @@ -198,7 +198,8 @@ public: QStack<KDUpdater::UpdateOperation*> performedOperations() const; private: - static void readBinaryData(BinaryContent &c, QIODevice *const file, const BinaryLayout &layout); + static void readBinaryData(BinaryContent &c, QIODevice *const file, const BinaryLayout &layout, + bool compressed); private: QSharedPointer<QFile> file; |