diff options
author | Katja Marttila <katja.marttila@qt.io> | 2017-05-24 09:02:32 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2017-05-24 09:02:32 +0300 |
commit | 4d37184b10b69ef27048232377724533a4b5fac5 (patch) | |
tree | 3bd3909b986270b76ceb2da4ad211969b1317436 /src/libs/installer/packagemanagercore_p.cpp | |
parent | 97498e486ac2d1d25206d4151613693dcf69e571 (diff) | |
parent | d7d0974f9cdc2359b6b3ca0e359f2fe05ad437c4 (diff) |
Merge remote-tracking branch 'origin/3.0' into master
Conflicts:
dist/config/config.xml
dist/packages/org.qtproject.ifw.binaries/meta/package.xml
dist/packages/org.qtproject.ifw/meta/package.xml
installerfw.pri
Change-Id: Ifaac76cd06737167a908baba5e554bedddd0e5ae
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index f29b65780..28d64d09c 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -581,6 +581,7 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> ¶ms m_metadataJob.setPackageManagerCore(m_core); connect(&m_metadataJob, &Job::infoMessage, this, &PackageManagerCorePrivate::infoMessage); connect(&m_metadataJob, &Job::progress, this, &PackageManagerCorePrivate::infoProgress); + connect(&m_metadataJob, &Job::totalProgress, this, &PackageManagerCorePrivate::totalProgress); KDUpdater::FileDownloaderFactory::instance().setProxyFactory(m_core->proxyFactory()); } @@ -2247,7 +2248,9 @@ bool PackageManagerCorePrivate::fetchMetaInformationFromCompressedRepositories() case QInstaller::UserIgnoreError: break; // we can simply ignore this error, the user knows about it default: - setStatus(PackageManagerCore::Failure, m_metadataJob.errorString()); + //Do not change core status here, we can recover if there is invalid + //compressed repository + setStatus(m_core->status(), m_metadataJob.errorString()); return compressedRepoFetched; } } @@ -2419,4 +2422,28 @@ void PackageManagerCorePrivate::processFilesForDelayedDeletion() } } +void PackageManagerCorePrivate::findExecutablesRecursive(const QString &path, const QStringList &excludeFiles, QStringList *result) +{ + QString executable; + QDirIterator it(path, QDir::NoDotAndDotDot | QDir::Executable | QDir::Files | QDir::System, QDirIterator::Subdirectories ); + + while (it.hasNext()) { + executable = it.next(); + foreach (QString exclude, excludeFiles) { + if (QDir::toNativeSeparators(executable.toLower()) + != QDir::toNativeSeparators(exclude.toLower())) { + result->append(executable); + } + } + } +} + +QStringList PackageManagerCorePrivate::runningInstallerProcesses(const QStringList &excludeFiles) +{ + QStringList resultFiles; + findExecutablesRecursive(QCoreApplication::applicationDirPath(), excludeFiles, &resultFiles); + return checkRunningProcessesFromList(resultFiles); +} + + } // namespace QInstaller |