From 09c01bb0755e06d7be9b1c68250ba95531a64128 Mon Sep 17 00:00:00 2001 From: Grant Paul Date: Sat, 16 Oct 2010 13:57:35 -0700 Subject: Improved Queuing for cleaner code and better operation. Now it reloads the current view when exiting a queue and while starting it, and it has a much cleaner method of adding the "Q_D" badge. --- Cydia.mm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'Cydia.mm') diff --git a/Cydia.mm b/Cydia.mm index b7d2b35..1dfe431 100644 --- a/Cydia.mm +++ b/Cydia.mm @@ -8346,6 +8346,14 @@ static _finline void _setHomePage(Cydia *self) { #endif } +// Returns the navigation controller for the queuing badge. +- (id) queueBadgeController { + int index = [self indexOfTabWithTag:kManageTag]; + if (index == -1) index = [self indexOfTabWithTag:kInstalledTag]; + + return [[tabbar_ viewControllers] objectAtIndex:index]; +} + - (void) cancelAndClear:(bool)clear { @synchronized (self) { if (clear) { @@ -8360,19 +8368,18 @@ static _finline void _setHomePage(Cydia *self) { } } - // Stop queuing, and let the appropriate controller know it. + // Stop queuing. Queuing_ = false; - [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:nil]; - [queueDelegate_ queueStatusDidChange]; + [[[self queueBadgeController] tabBarItem] setBadgeValue:nil]; } else { - // Start queuing, and let the controllers know. + // Start queuing. Queuing_ = true; - - [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:UCLocalize("Q_D")]; - [(CYNavigationController *)[tabbar_ selectedViewController] reloadData]; - - [queueDelegate_ queueStatusDidChange]; - } + [[[self queueBadgeController] tabBarItem] setBadgeValue:UCLocalize("Q_D")]; + } + + // Show the changes in the current view. + [(CYNavigationController *) [tabbar_ selectedViewController] reloadData]; + [queueDelegate_ queueStatusDidChange]; } } -- cgit v1.2.3