summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/binaryformatenginehandler.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-08-28 11:06:26 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-08-29 12:39:48 +0200
commit42d2b1ba06ad38fe938bc69f34f0d5714b1f201b (patch)
treef3710c4ae17aa2f721950f8064bc8fc6b39677f4 /src/libs/installer/binaryformatenginehandler.cpp
parentc855e20dff8feda133fa344ac9cb5542b986cf4f (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.cpp50
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