diff options
author | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-05-04 14:26:46 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-05-05 14:17:33 +0000 |
commit | 5c9c7a7281613866d9b0cbf4bec11283ab9c718c (patch) | |
tree | 9e4d13d6c8c2c8449158d458f305c6ad648c95ba /src/libs/installer/packagemanagercore_p.cpp | |
parent | b8a7052ac9dffd477e424b34d5cb8d93cce6a6be (diff) |
Take over the last used methods from {KD}Application.
Change-Id: I9aaac261bef7aaa48cf0beaee83e15cc5bccd437
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 3c86600dd..7d465cb0a 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -551,6 +551,7 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> ¶ms readMaintenanceConfigFiles(QCoreApplication::applicationDirPath()); #endif } + processFilesForDelayedDeletion(); foreach (Operation *currentOperation, m_performedOperationsOld) currentOperation->setValue(QLatin1String("installer"), QVariant::fromValue(m_core)); @@ -750,8 +751,9 @@ void PackageManagerCorePrivate::writeMaintenanceConfigFiles() foreach (const Repository &repo, m_data.settings().defaultRepositories()) repos.append(QVariant().fromValue(repo)); cfg.setValue(QLatin1String("DefaultRepositories"), repos); - cfg.sync(); + cfg.setValue(QLatin1String("FilesForDelayedDeletion"), m_filesForDelayedDeletion); + cfg.sync(); if (cfg.status() != QSettingsWrapper::NoError) { const QString reason = cfg.status() == QSettingsWrapper::AccessError ? tr("Access error") : tr("Format error"); @@ -811,6 +813,8 @@ void PackageManagerCorePrivate::readMaintenanceConfigFiles(const QString &target if (!repos.isEmpty()) m_data.settings().setDefaultRepositories(repos); + m_filesForDelayedDeletion = cfg.value(QLatin1String("FilesForDelayedDeletion")).toStringList(); + QFile file(targetDir + QLatin1String("/network.xml")); if (!file.open(QIODevice::ReadOnly)) return; @@ -2321,4 +2325,20 @@ void PackageManagerCorePrivate::handleMethodInvocationRequest(const QString &inv QMetaObject::invokeMethod(obj, qPrintable(invokableMethodName)); } +void PackageManagerCorePrivate::processFilesForDelayedDeletion() +{ + if (m_filesForDelayedDeletion.isEmpty()) + return; + + const QStringList filesForDelayedDeletion = std::move(m_filesForDelayedDeletion); + foreach (const QString &i, filesForDelayedDeletion) { + QFile file(i); //TODO: this should happen asnyc and report errors, I guess + if (file.exists() && !file.remove()) { + qWarning("Could not delete file %s: %s", qPrintable(i), + qPrintable(file.errorString())); + m_filesForDelayedDeletion << i; // try again next time + } + } +} + } // namespace QInstaller |