X-Git-Url: https://git.saurik.com/cydia.git/blobdiff_plain/e248c37ed69833354a10947685443af4245574f7..31bfe325beb05311219eada7a939ec10321b541b:/Cydia.mm diff --git a/Cydia.mm b/Cydia.mm index 042c501f..eb17d6a1 100644 --- a/Cydia.mm +++ b/Cydia.mm @@ -7529,6 +7529,7 @@ freeing the view controllers on tab change */ } [segment_ addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged]; + [self resizeSegmentedControl]; table_ = [[UITableView alloc] initWithFrame:[[self view] bounds] style:UITableViewStyleGrouped]; [table_ setAutoresizingMask:UIViewAutoresizingFlexibleBoth]; @@ -7539,31 +7540,49 @@ freeing the view controllers on tab change */ } return self; } +- (void) resizeSegmentedControl { + CGFloat width = [[self view] frame].size.width; + [segment_ setFrame:CGRectMake(width / 32.0f, 0, width - (width / 32.0f * 2.0f), 44.0f)]; +} + - (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - CGFloat width = [[self view] frame].size.width; - [segment_ setFrame:CGRectMake(width / 32.0f, 0, width - (width / 32.0f * 2.0f), 44.0f)]; + [self resizeSegmentedControl]; +} + +- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { + [self resizeSegmentedControl]; +} + +- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { + [self resizeSegmentedControl]; } - (void) save { + NSString *role = nil; + switch ([segment_ selectedSegmentIndex]) { - case 0: Role_ = @"User"; break; - case 1: Role_ = @"Hacker"; break; - case 2: Role_ = @"Developer"; break; + case 0: role = @"User"; break; + case 1: role = @"Hacker"; break; + case 2: role = @"Developer"; break; _nodefault } - Settings_ = [NSMutableDictionary dictionaryWithObjectsAndKeys: - Role_, @"Role", - nil]; + if (![role isEqualToString:Role_]) { + Role_ = role; + + Settings_ = [NSMutableDictionary dictionaryWithObjectsAndKeys: + Role_, @"Role", + nil]; - [Metadata_ setObject:Settings_ forKey:@"Settings"]; + [Metadata_ setObject:Settings_ forKey:@"Settings"]; - Changed_ = true; + Changed_ = true; - [delegate_ updateData]; + [roledelegate_ updateData]; + } } - (void) segmentChanged:(UISegmentedControl *)control { @@ -7587,7 +7606,8 @@ freeing the view controllers on tab change */ } - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { - return 5; + // XXX: For not having a single cell in the table, this sure is a lot of sections. + return 6; } - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { @@ -7811,8 +7831,7 @@ freeing the view controllers on tab change */ [[root_ selectedViewController] _updateLayoutForStatusBarAndInterfaceOrientation]; } -- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration -{ +- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { // XXX: fix Apple's layout bug [[root_ selectedViewController] _updateLayoutForStatusBarAndInterfaceOrientation]; } @@ -8301,7 +8320,7 @@ static _finline void _setHomePage(Cydia *self) { - (void) showSettings { RoleController *role = [[RoleController alloc] initWithDatabase:database_ delegate:self]; - UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:role]; + CYNavigationController *nav = [[CYNavigationController alloc] initWithRootViewController:role]; if (IsWildcat_) [nav setModalPresentationStyle:UIModalPresentationFormSheet]; [container_ presentModalViewController:nav animated:YES]; }