summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index c54a0e242..c73a7fc82 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -207,7 +207,6 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core)
, m_updaterApplication(new DummyConfigurationInterface)
, m_FSEngineClientHandler(0)
, m_core(core)
- , m_repoMetaInfoJob(0)
, m_updates(false)
, m_repoFetched(false)
, m_updateSourcesAdded(false)
@@ -235,7 +234,6 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, q
, m_performedOperationsOld(performedOperations)
, m_dependsOnLocalInstallerBinary(false)
, m_core(core)
- , m_repoMetaInfoJob(0)
, m_updates(false)
, m_repoFetched(false)
, m_updateSourcesAdded(false)
@@ -654,12 +652,13 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> &params
m_updaterApplication.updateSourcesInfo()->setModified(false);
}
- if (!m_repoMetaInfoJob) {
- m_repoMetaInfoJob = new GetRepositoriesMetaInfoJob(m_core);
- m_repoMetaInfoJob->setAutoDelete(false);
- connect(m_repoMetaInfoJob, SIGNAL(infoMessage(KDJob*, QString)), this, SLOT(infoMessage(KDJob*,
- QString)));
- }
+ m_metadataJob.disconnect();
+ m_metadataJob.setAutoDelete(false);
+ m_metadataJob.setPackageManagerCore(m_core);
+ connect(&m_metadataJob, SIGNAL(infoMessage(KDJob*, QString)), this,
+ SLOT(infoMessage(KDJob*, QString)));
+ connect(&m_metadataJob, SIGNAL(progress(KDJob *, quint64, quint64)), this,
+ SLOT(infoProgress(KDJob *, quint64, quint64)));
KDUpdater::FileDownloaderFactory::instance().setProxyFactory(m_core->proxyFactory());
}
@@ -945,7 +944,7 @@ void PackageManagerCorePrivate::stopProcessesForUpdates(const QList<Component*>
foreach (const Component *component, components)
processList << m_core->replaceVariables(component->stopProcessForUpdateRequests());
- qSort(processList);
+ std::sort(processList.begin(), processList.end());
processList.erase(std::unique(processList.begin(), processList.end()), processList.end());
if (processList.isEmpty())
return;
@@ -2176,21 +2175,21 @@ bool PackageManagerCorePrivate::fetchMetaInformationFromRepositories()
m_repoFetched = false;
m_updateSourcesAdded = false;
- m_repoMetaInfoJob->reset();
try {
- m_repoMetaInfoJob->start();
- m_repoMetaInfoJob->waitForFinished();
+ m_metadataJob.start();
+ m_metadataJob.waitForFinished();
} catch (Error &error) {
- setStatus(PackageManagerCore::Failure, tr("Could not retrieve meta information: %1").arg(error.message()));
+ setStatus(PackageManagerCore::Failure, tr("Could not retrieve meta information: %1")
+ .arg(error.message()));
return m_repoFetched;
}
- if (m_repoMetaInfoJob->isCanceled() || m_repoMetaInfoJob->error() != KDJob::NoError) {
- switch (m_repoMetaInfoJob->error()) {
+ if (m_metadataJob.error() != KDJob::NoError) {
+ switch (m_metadataJob.error()) {
case QInstaller::UserIgnoreError:
break; // we can simply ignore this error, the user knows about it
default:
- setStatus(PackageManagerCore::Failure, m_repoMetaInfoJob->errorString());
+ setStatus(PackageManagerCore::Failure, m_metadataJob.errorString());
return m_repoFetched;
}
}
@@ -2204,7 +2203,8 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe
if (m_updateSourcesAdded)
return m_updateSourcesAdded;
- if (m_repoMetaInfoJob->temporaryDirectories().isEmpty()) {
+ const QList<Metadata> metadata = m_metadataJob.metadata();
+ if (metadata.isEmpty()) {
m_updateSourcesAdded = true;
return m_updateSourcesAdded;
}
@@ -2213,7 +2213,8 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe
m_updaterApplication.updateSourcesInfo()->refresh();
if (isInstaller()) {
m_updaterApplication.addUpdateSource(m_data.settings().applicationName(),
- m_data.settings().applicationName(), QString(), QUrl(QLatin1String("resource://metadata/")), 0);
+ m_data.settings().applicationName(), QString(),
+ QUrl(QLatin1String("resource://metadata/")), 0);
m_updaterApplication.updateSourcesInfo()->setModified(false);
}
@@ -2221,16 +2222,15 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe
m_updateSourcesAdded = false;
const QString &appName = m_data.settings().applicationName();
- const QStringList tempDirs = m_repoMetaInfoJob->temporaryDirectories();
- foreach (const QString &tmpDir, tempDirs) {
+ foreach (const Metadata &data, metadata) {
if (statusCanceledOrFailed())
return false;
- if (tmpDir.isEmpty())
+ if (data.directory.isEmpty())
continue;
if (parseChecksum) {
- const QString updatesXmlPath = tmpDir + QLatin1String("/Updates.xml");
+ const QString updatesXmlPath = data.directory + QLatin1String("/Updates.xml");
QFile updatesFile(updatesXmlPath);
try {
openForRead(&updatesFile, updatesFile.fileName());
@@ -2255,7 +2255,8 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe
if (!checksum.isNull())
m_core->setTestChecksum(checksum.toElement().text().toLower() == scTrue);
}
- m_updaterApplication.addUpdateSource(appName, appName, QString(), QUrl::fromLocalFile(tmpDir), 1);
+ m_updaterApplication.addUpdateSource(appName, appName, QString(),
+ QUrl::fromLocalFile(data.directory), 1);
}
m_updaterApplication.updateSourcesInfo()->setModified(false);