summaryrefslogtreecommitdiff
path: root/src/manager-lib/packagemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager-lib/packagemanager.cpp')
-rw-r--r--src/manager-lib/packagemanager.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/manager-lib/packagemanager.cpp b/src/manager-lib/packagemanager.cpp
index 8dd33c20..301bf80b 100644
--- a/src/manager-lib/packagemanager.cpp
+++ b/src/manager-lib/packagemanager.cpp
@@ -1491,6 +1491,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());
@@ -1498,13 +1499,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 });