https://bugs.kde.org/show_bug.cgi?id=473613
David Redondo <k...@david-redondo.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |k...@david-redondo.de --- Comment #8 from David Redondo <k...@david-redondo.de> --- So we assert on checking the checked item checkResources(apps, newValue); Q_ASSERT(idx.data(Qt::CheckStateRole) == value); checking an Item in packagekitbackend and see the check status are implemented in the PackageKitBackend as void PackageKitUpdater::addResources(const QList<AbstractResource *> &apps) { const QSet<QString> pkgs = involvedPackages(kToSet(apps)); m_toUpgrade.unite(packagesForPackageId(pkgs)); } bool PackageKitUpdater::isMarked(AbstractResource *res) const { return m_toUpgrade.contains(res); } the problem is that packagesForPackageId returns empty because it looks through m_allUpgradeable whichis assigned in PackageKitUpdater::prepare() const auto candidates = m_backend->upgradeablePackages(); the problem is QSet<AbstractResource *> PackageKitBackend::upgradeablePackages() const { if (isFetching() || !m_packagesToAdd.isEmpty()) { return {}; } QSet<AbstractResource *> ret; ret.reserve(m_updatesPackageId.size()); for (const QString &pkgid : std::as_const(m_updatesPackageId)) { const QString pkgname = PackageKit::Daemon::packageName(pkgid); const auto pkgs = resourcesByPackageName(pkgname); if (pkgs.isEmpty()) { qWarning() << "PackageKitBackend: Couldn't find resource for" << pkgid; } ret.unite(pkgs); } return kFilter<QSet<AbstractResource *>>(ret, [](AbstractResource *res) { return !static_cast<PackageKitResource *>(res)->extendsItself(); }); } resourcesByPackageName can modify m_packagesToAdd so a second call to it returns an empty set. -- You are receiving this mail because: You are watching all bug changes.