Skip to content

Commit 66c67b7

Browse files
committed
Tabs now work. Sort of.
1 parent bd2225e commit 66c67b7

File tree

13 files changed

+243
-54
lines changed

13 files changed

+243
-54
lines changed
264 KB
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

English.lproj/MainMenu.xib

Lines changed: 169 additions & 43 deletions
Large diffs are not rendered by default.

IGKApplicationDelegate.mm

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ - (id)newWindowIsIndexing:(BOOL)isIndexing
208208
windowController.appDelegate = self;
209209
[windowController.browser addBlankTabInForeground:YES];
210210
[windowController showWindow:self];
211-
211+
[windowControllers addObject:windowController];
212212

213213
return windowController;
214214
}
@@ -225,6 +225,11 @@ - (void)finalize
225225
[super finalize];
226226
}
227227

228+
- (IBAction)newTab:(id)sender
229+
{
230+
[self newWindow:sender];
231+
}
232+
228233
#pragma mark Core Data Nonsense
229234

230235
/**

IGKTabController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ typedef enum {
156156
NSManagedObjectID *currentObjectIDInBrowser;
157157

158158
NSArray *selectedFilterDocset;
159+
160+
id browserWebViewSuperview;
159161
}
160162

161163
@property (assign) NSPredicate *sideFilterPredicate;

IGKTabController.mm

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1543,8 +1543,12 @@ - (IBAction)rightFilterSearchField:(id)sender
15431543

15441544
[rightFilterBarTable reloadData];
15451545

1546-
//Select the best matching item, as selected by smartSort:
1547-
NSArray *smartSorted = [[rightFilterBarItems igk_filter:^(id obj) { return [obj respondsToSelector:@selector(keyEnumerator)]; }] smartSort:queryString];
1546+
//Select the best matching item, as selected by smartSort:
1547+
NSArray *filtered = [rightFilterBarItems igk_filter:[^(id obj) {
1548+
return [obj respondsToSelector:@selector(keyEnumerator)];
1549+
} copy]];
1550+
1551+
NSArray *smartSorted = [filtered smartSort:queryString];
15481552
if ([smartSorted count])
15491553
{
15501554
NSUInteger smartIndex = [rightFilterBarItems indexOfObject:[smartSorted igk_firstObject]];
@@ -1556,6 +1560,35 @@ - (IBAction)rightFilterSearchField:(id)sender
15561560
}
15571561
}
15581562
}
1563+
-(void)tabWillBecomeTeared {
1564+
browserWebViewSuperview = [browserWebView superview];
1565+
[browserWebView removeFromSuperview];
1566+
[super tabWillBecomeTeared];
1567+
}
1568+
- (void)tabDidInsertIntoBrowser:(CTBrowser*)browser
1569+
atIndex:(NSInteger)index
1570+
inForeground:(bool)foreground
1571+
{
1572+
[browserWebViewSuperview addSubview:browserWebView];
1573+
[super tabDidInsertIntoBrowser:browser atIndex:index inForeground:foreground];
1574+
}
1575+
1576+
- (IBAction)newTab:(id)sender
1577+
{
1578+
[[self browser] addBlankTabInForeground:YES];
1579+
}
1580+
- (IBAction)previousTab:(id)sender
1581+
{
1582+
[[self browser] selectPreviousTab];
1583+
}
1584+
- (IBAction)nextTab:(id)sender
1585+
{
1586+
[[self browser] selectNextTab];
1587+
}
1588+
- (IBAction)performClose:(id)sender
1589+
{
1590+
[[self browser] closeTab];
1591+
}
15591592

15601593
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
15611594
{
@@ -2398,6 +2431,11 @@ - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
23982431
return [[self currentArrayController] canSelectPrevious];
23992432
if (action == @selector(goToNextResult:))
24002433
return [[self currentArrayController] canSelectNext];
2434+
2435+
if (action == @selector(previousTab:))
2436+
return [[self browser] tabCount] > 1 && [[self browser] selectedTabIndex] > 0;
2437+
if (action == @selector(nextTab:))
2438+
return [[self browser] tabCount] > 1 && [[self browser] selectedTabIndex] + 1 < [[self browser] tabCount];
24012439

24022440
if (action == @selector(toggleFullScreen:) && ![self isLionOrGreater])
24032441
{

IGKWindowController.mm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ - (NSWindow *)actualWindow
4848
}
4949

5050

51+
52+
5153
- (id)actionForwardee
5254
{
5355
return [[self browser] selectedTabContents];

0 commit comments

Comments
 (0)