diff options
Diffstat (limited to 'src/manager-lib/packagemanager.cpp')
-rw-r--r-- | src/manager-lib/packagemanager.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/manager-lib/packagemanager.cpp b/src/manager-lib/packagemanager.cpp index 16bafa0b..f8b1a06b 100644 --- a/src/manager-lib/packagemanager.cpp +++ b/src/manager-lib/packagemanager.cpp @@ -1466,6 +1466,7 @@ bool PackageManager::canceledPackageInstall(const QString &id) return false; case Package::BeingInstalled: { + // remove the package from the model int row = d->packages.indexOf(package); if (row >= 0) { emit packageAboutToBeRemoved(package->id()); @@ -1473,13 +1474,21 @@ bool PackageManager::canceledPackageInstall(const QString &id) d->packages.removeAt(row); endRemoveRows(); } + + // cleanup package->unblock(); + + // it's not yet added to the package db, so we need to delete ourselves + delete package->info(); + delete package; break; } case Package::BeingUpdated: case Package::BeingDowngraded: case Package::BeingRemoved: + delete d->pendingPackageInfoUpdates.take(package); + package->setState(Package::Installed); package->setProgress(0); emitDataChanged(package, QVector<int> { IsUpdating }); |