diff options
author | kh1 <karsten.heimrich@digia.com> | 2014-08-28 11:06:26 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2014-08-29 12:39:48 +0200 |
commit | 42d2b1ba06ad38fe938bc69f34f0d5714b1f201b (patch) | |
tree | f3710c4ae17aa2f721950f8064bc8fc6b39677f4 /src/libs/installer/binaryformatenginehandler.cpp | |
parent | c855e20dff8feda133fa344ac9cb5542b986cf4f (diff) |
Adjust implementation to not use the collection manager.
Change-Id: Ie38460ff4a94b5583cabb1ecad97cd6c9a906c15
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer/binaryformatenginehandler.cpp')
-rw-r--r-- | src/libs/installer/binaryformatenginehandler.cpp | 50 |
1 files changed, 14 insertions, 36 deletions
diff --git a/src/libs/installer/binaryformatenginehandler.cpp b/src/libs/installer/binaryformatenginehandler.cpp index 9e5f75c97..b5af66493 100644 --- a/src/libs/installer/binaryformatenginehandler.cpp +++ b/src/libs/installer/binaryformatenginehandler.cpp @@ -41,37 +41,22 @@ #include "binaryformatenginehandler.h" #include "binaryformatengine.h" -#include "binaryformat.h" -#include <QDebug> #include <QFile> namespace QInstaller { static BinaryFormatEngineHandler *s_instance = 0; - -class BinaryFormatEngineHandler::Private -{ -public: - Private(const ResourceCollectionManager &i) - : manager(i) - { - } - - ResourceCollectionManager manager; -}; - -BinaryFormatEngineHandler::BinaryFormatEngineHandler(const ResourceCollectionManager &manager) - : d(new Private(manager)) +BinaryFormatEngineHandler::BinaryFormatEngineHandler() { s_instance = this; } BinaryFormatEngineHandler::BinaryFormatEngineHandler(const BinaryFormatEngineHandler &other) : QAbstractFileEngineHandler() - , d(new Private(other.d->manager)) { + Q_UNUSED(other) s_instance = this; } @@ -79,23 +64,17 @@ BinaryFormatEngineHandler::~BinaryFormatEngineHandler() { if (s_instance == this) s_instance = 0; - delete d; -} - -void BinaryFormatEngineHandler::setResourceCollectionManager(const ResourceCollectionManager &manager) -{ - d->manager = manager; } QAbstractFileEngine *BinaryFormatEngineHandler::create(const QString &fileName) const { return fileName.startsWith(QLatin1String("installer://"), Qt::CaseInsensitive ) - ? new BinaryFormatEngine(d->manager, fileName) : 0; + ? new BinaryFormatEngine(m_resources, fileName) : 0; } void BinaryFormatEngineHandler::reset() { - d->manager.reset(); + m_resources.clear(); } BinaryFormatEngineHandler *BinaryFormatEngineHandler::instance() @@ -103,6 +82,12 @@ BinaryFormatEngineHandler *BinaryFormatEngineHandler::instance() return s_instance; } +void BinaryFormatEngineHandler::registerResources(const QList<ResourceCollection> &collections) +{ + foreach (const ResourceCollection &collection, collections) + m_resources.insert(collection.name(), collection); +} + void BinaryFormatEngineHandler::registerResource(const QString &fileName, const QString &resourcePath) { @@ -115,17 +100,10 @@ BinaryFormatEngineHandler::registerResource(const QString &fileName, const QStri while (path.endsWith(sep)) path.chop(1); - const QString coll = path.section(sep, 0, 0); - const QString resourceName = path.section(sep, 1, 1); - - ResourceCollection c = d->manager.collectionByName(coll.toUtf8()); - if (c.name().isEmpty()) - c.setName(coll.toUtf8()); - - QSharedPointer<Resource> resource(new Resource(resourcePath)); - resource->setName(resourceName.toUtf8()); - c.appendResource(resource); - d->manager.insertCollection(c); + const QByteArray resourceName = path.section(sep, 1, 1).toUtf8(); + const QByteArray collectionName = path.section(sep, 0, 0).toUtf8(); + m_resources[collectionName].appendResource(QSharedPointer<Resource>(new Resource(resourceName, + resourcePath))); } } // namespace QInstaller |