From: Grant Paul Date: Sat, 16 Oct 2010 20:28:12 +0000 (-0700) Subject: Removed reloading data when clearing queue. Method of clearing without reloading... X-Git-Url: https://git.saurik.com/cydia.git/commitdiff_plain/ccb4681d5673af6330e9e9d11b4f4cd9a1dc17d3?ds=sidebyside Removed reloading data when clearing queue. Method of clearing without reloading confirmed in Synaptic Package Manager, so it's probably right. --- diff --git a/Cydia.mm b/Cydia.mm index c64a587b..b7d2b351 100644 --- a/Cydia.mm +++ b/Cydia.mm @@ -8349,19 +8349,23 @@ static _finline void _setHomePage(Cydia *self) { - (void) cancelAndClear:(bool)clear { @synchronized (self) { if (clear) { - /* XXX: clear marks instead of reloading data */ - /*pkgCacheFile &cache([database_ cache]); + // Clear all marks. + pkgCacheFile &cache([database_ cache]); for (pkgCache::PkgIterator iterator = cache->PkgBegin(); !iterator.end(); ++iterator) { - if (!cache[iterator].Keep()) cache->MarkKeep(iterator, false, false); + // Unmark method taken from Synaptic Package Manager. + // Thanks for being sane, unlike Aptitude. + if (!cache[iterator].Keep()) { + cache->MarkKeep(iterator, false); + cache->SetReInstall(iterator, false); + } } - [self updateData]; - + // Stop queuing, and let the appropriate controller know it. Queuing_ = false; [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:nil]; - [queueDelegate_ queueStatusDidChange];*/ - [self reloadData]; + [queueDelegate_ queueStatusDidChange]; } else { + // Start queuing, and let the controllers know. Queuing_ = true; [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:UCLocalize("Q_D")];