mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:57:44 +00:00
MacPDF: Make clicking outline items have an effect
Clicking an item in the outline now opens that page. This requires giving the outline view a delegate, which for some reason also has th effect of indenting expandable items ¯\_(ツ)_/¯ The vertical alignment of text still looks off, though.
This commit is contained in:
parent
185301c027
commit
e7d41480fc
2 changed files with 15 additions and 1 deletions
|
@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@class MacPDFDocument;
|
@class MacPDFDocument;
|
||||||
|
|
||||||
@interface MacPDFWindowController : NSWindowController <MacPDFViewDelegate, NSToolbarDelegate>
|
@interface MacPDFWindowController : NSWindowController <MacPDFViewDelegate, NSOutlineViewDelegate, NSToolbarDelegate>
|
||||||
|
|
||||||
- (instancetype)initWithDocument:(MacPDFDocument*)document;
|
- (instancetype)initWithDocument:(MacPDFDocument*)document;
|
||||||
- (IBAction)showGoToPageDialog:(id)sender;
|
- (IBAction)showGoToPageDialog:(id)sender;
|
||||||
|
|
|
@ -116,6 +116,7 @@
|
||||||
// FIXME: Only set data source when sidebar is open.
|
// FIXME: Only set data source when sidebar is open.
|
||||||
_outlineDataSource = [[MacPDFOutlineViewDataSource alloc] initWithOutline:_pdfDocument.pdf->outline()];
|
_outlineDataSource = [[MacPDFOutlineViewDataSource alloc] initWithOutline:_pdfDocument.pdf->outline()];
|
||||||
_outlineView.dataSource = _outlineDataSource;
|
_outlineView.dataSource = _outlineDataSource;
|
||||||
|
_outlineView.delegate = self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)showGoToPageDialog:(id)sender
|
- (IBAction)showGoToPageDialog:(id)sender
|
||||||
|
@ -175,4 +176,17 @@
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark - NSOutlineViewDelegate
|
||||||
|
|
||||||
|
- (void)outlineViewSelectionDidChange:(NSNotification*)notification
|
||||||
|
{
|
||||||
|
NSInteger row = _outlineView.selectedRow;
|
||||||
|
if (row == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
OutlineItemWrapper* item = [_outlineView itemAtRow:row];
|
||||||
|
if (auto page = [item page]; page.has_value())
|
||||||
|
[_pdfView goToPage:page.value()];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue