|
@@ -318,7 +318,6 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
NSArrayController *groupedFindArrayController;
|
|
|
}
|
|
|
- (void)applySearchTableHeader:(NSString *)message;
|
|
|
- - (void)displayFindState;
|
|
|
*/
|
|
|
|
|
|
@IBOutlet var segmentedControl: KMSegmentedControl!
|
|
@@ -398,6 +397,7 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
var foldType: KMFoldAllAnnotationType = .none
|
|
|
private let KMLeftSideViewNoteSortTypeKey = "KMLeftSideViewNoteSortTypeKey"
|
|
|
private let KMLeftSideViewAscendSortBoolKey = "KMLeftSideViewAscendSortBoolKey"
|
|
|
+ private let SKDisableTableToolTipsKey = "SKDisableTableToolTips"
|
|
|
|
|
|
var tocType: KMFoldType = .none
|
|
|
|
|
@@ -805,6 +805,7 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
self.thumbnailTableView.allowsMultipleSelection = true
|
|
|
self.findTableView.delegate = self
|
|
|
self.findTableView.dataSource = self
|
|
|
+ self.findTableView.botaDelegate = self
|
|
|
self.groupedFindTableView.delegate = self
|
|
|
self.groupedFindTableView.dataSource = self
|
|
|
self.groupedFindTableView.botaDelegate = self
|
|
@@ -838,12 +839,12 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
//
|
|
|
self.thumbnailTableView.setDraggingSourceOperationMask(.every, forLocal: false)
|
|
|
|
|
|
-// if (NO == [[NSUserDefaults standardUserDefaults] boolForKey:SKDisableTableToolTipsKey]) {
|
|
|
+ if UserDefaults.standard.bool(forKey: SKDisableTableToolTipsKey) == false {
|
|
|
// [tocOutlineView setHasImageToolTips:YES];
|
|
|
-// [findTableView setHasImageToolTips:YES];
|
|
|
-// [groupedFindTableView setHasImageToolTips:YES];
|
|
|
-// }
|
|
|
-// [self updateViewColor];
|
|
|
+ self.findTableView.hasImageToolTips = true
|
|
|
+ self.groupedFindTableView.hasImageToolTips = true
|
|
|
+ }
|
|
|
+ self._updateViewColor()
|
|
|
}
|
|
|
|
|
|
func displayThumbnailViewAnimating(_ animate: Bool) {
|
|
@@ -903,7 +904,7 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
if (self.findState == .content) {
|
|
|
self.displayFind()
|
|
|
} else if (self.findState == .note) {
|
|
|
-// [self displayNoteFind];
|
|
|
+ self.displayNoteFind()
|
|
|
} else if (self.findState == .snapshot) {
|
|
|
// [self displaySnapshotFind];
|
|
|
}
|
|
@@ -1046,14 +1047,12 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
self.searchField = self.searchViewController.searchField
|
|
|
|
|
|
let menu = NSMenu()
|
|
|
-// menu.addItem(title: <#T##String#>, action: <#T##Selector?#>, target: <#T##AnyObject?#>)
|
|
|
-// [menu addItemWithTitle:NSLocalizedString(@"Whole Words Only", @"Menu item title") action:@selector(toggleWholeWordSearch:) target:mainController];
|
|
|
-// [menu addItemWithTitle:NSLocalizedString(@"Ignore Case", @"Menu item title") action:@selector(toggleCaseInsensitiveSearch:) target:mainController];
|
|
|
-// [[searchViewController.searchField cell] setSearchMenuTemplate:menu];
|
|
|
+ menu.addItem(title: KMLocalizedString("Whole Words Only", "Menu item title"), action: #selector(toggleWholeWordSearch), target: self)
|
|
|
+ menu.addItem(title: KMLocalizedString("Ignore Case", "Menu item title"), action: #selector(toggleCaseInsensitiveSearch), target: self)
|
|
|
+ (self.searchViewController.searchField.cell as? NSSearchFieldCell)?.searchMenuTemplate = menu
|
|
|
(self.searchViewController.searchField.cell as? NSSearchFieldCell)?.placeholderString = KMLocalizedString("Search PDF", "placeholder")
|
|
|
-// self.searchViewController.searchField.target =
|
|
|
-// [searchViewController.searchField setAction:@selector(search:)];
|
|
|
-// [searchViewController.searchField setTarget:mainController];
|
|
|
+ self.searchViewController.searchField.action = #selector(search)
|
|
|
+ self.searchViewController.searchField.target = self
|
|
|
|
|
|
if (self.findPaneState == .singular) {
|
|
|
self.searchViewController.contentView = self.findTableView.enclosingScrollView
|
|
@@ -1097,11 +1096,35 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
|
|
|
self.leftSideEmptyVC.emptyOutlineView.frame = NSMakeRect((view.frame.size.width-emptyVcSize.width)/2.0,(view.frame.size.height-emptyVcSize.height)/2.0, emptyVcSize.width, emptyVcSize.height);
|
|
|
}
|
|
|
+
|
|
|
+ override func requiresAlternateButton(forView aview: NSView?) -> Bool {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ func displayNoteFind() {
|
|
|
+ self.searchField = self.noteSearchField
|
|
|
+
|
|
|
+ let menu = NSMenu()
|
|
|
+ menu.addItem(title: KMLocalizedString("Ignore Case", "Menu item title"), action: #selector(toggleCaseInsensitiveNoteSearch), target: self)
|
|
|
+ (self.noteSearchField.cell as? NSSearchFieldCell)?.searchMenuTemplate = menu
|
|
|
+ (self.noteSearchField.cell as? NSSearchFieldCell)?.placeholderString = KMLocalizedString("Search Notes", "placeholder")
|
|
|
+ self.noteSearchField.action = #selector(searchNotes)
|
|
|
+ self.noteSearchField.target = self
|
|
|
+ }
|
|
|
+
|
|
|
+ func displaySnapshotFind() {
|
|
|
+ self.searchField = self.snapshotSearchField;
|
|
|
+
|
|
|
+ let menu = NSMenu()
|
|
|
+ menu.addItem(title: KMLocalizedString("Ignore Case", "Menu item title"), action: #selector(toggleCaseInsensitiveNoteSearch), target: self)
|
|
|
+ (self.snapshotSearchField.cell as? NSSearchFieldCell)?.searchMenuTemplate = menu
|
|
|
+ (self.snapshotSearchField.cell as? NSSearchFieldCell)?.placeholderString = KMLocalizedString("Search Snapshots", "placeholder")
|
|
|
+ self.snapshotSearchField.action = #selector(searchNotes)
|
|
|
+ self.snapshotSearchField.target = self
|
|
|
+ self.snapshotSearchField.delegate = self
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
- - (BOOL)requiresAlternateButtonForView:(NSView *)aView {
|
|
|
- return NO;
|
|
|
- return [findTableView isDescendantOf:aView] || [groupedFindTableView isDescendantOf:aView];
|
|
|
- }
|
|
|
|
|
|
- (void)applySearchTableHeader:(NSString *)message {
|
|
|
[[[findTableView tableColumnWithIdentifier:RESULTS_COLUMNID] headerCell] setStringValue:message];
|
|
@@ -1110,39 +1133,8 @@ class KMLeftSideViewController: KMSideViewController {
|
|
|
[[groupedFindTableView headerView] setNeedsDisplay:YES];
|
|
|
}
|
|
|
|
|
|
- - (void)displayFindState {
|
|
|
- if (mainController.findState == SKFindStateContent) {
|
|
|
- [self displayFind];
|
|
|
- } else if (mainController.findState == SKFindStateNote) {
|
|
|
- [self displayNoteFind];
|
|
|
- } else if (mainController.findState == SKFindStateSnapshot) {
|
|
|
- [self displaySnapshotFind];
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- - (void)displayNoteFind {
|
|
|
- mainController.rightSideController.searchField = self.noteSearchField;
|
|
|
-
|
|
|
- NSMenu *menu = [NSMenu menu];
|
|
|
- [menu addItemWithTitle:NSLocalizedString(@"Ignore Case", @"Menu item title") action:@selector(toggleCaseInsensitiveNoteSearch:) target:mainController];
|
|
|
- [[self.noteSearchField cell] setSearchMenuTemplate:menu];
|
|
|
- [[self.noteSearchField cell] setPlaceholderString:NSLocalizedString(@"Search Notes", @"placeholder")];
|
|
|
- [self.noteSearchField setAction:@selector(searchNotes:)];
|
|
|
- [self.noteSearchField setTarget:mainController];
|
|
|
- }
|
|
|
-
|
|
|
- (void)displaySnapshotFind {
|
|
|
- mainController.rightSideController.searchField = self.snapshotSearchField;
|
|
|
-
|
|
|
- NSMenu *menu = [NSMenu menu];
|
|
|
- [menu addItemWithTitle:NSLocalizedString(@"Ignore Case", @"Menu item title") action:@selector(toggleCaseInsensitiveNoteSearch:) target:mainController];
|
|
|
- [[self.snapshotSearchField cell] setSearchMenuTemplate:menu];
|
|
|
- [[self.snapshotSearchField cell] setPlaceholderString:NSLocalizedString(@"Search Snapshots", @"placeholder")];
|
|
|
- [self.snapshotSearchField setAction:@selector(searchNotes:)];
|
|
|
- [self.snapshotSearchField setTarget:mainController];
|
|
|
- [self.snapshotSearchField setDelegate:mainController];
|
|
|
+
|
|
|
}
|
|
|
*/
|
|
|
|
|
@@ -1791,6 +1783,26 @@ extension KMLeftSideViewController: KMBotaTableViewDelegate {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ func tableView(_ aTableView: NSTableView, imageContextForRow rowIndex: Int) -> AnyObject? {
|
|
|
+ if aTableView.isEqual(to: self.findTableView) {
|
|
|
+ if rowIndex >= self.searchResults.count {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ let model = self.searchResults[rowIndex]
|
|
|
+ let selection = model.selection
|
|
|
+ let point = NSPoint(x: NSWidth(selection.bounds) * 0.5, y: NSHeight(selection.bounds) * 0.5)
|
|
|
+ return CPDFDestination(document: self.listView.document, pageIndex: Int(selection.page.pageIndex()), at: point, zoom: self.listView.scaleFactor)
|
|
|
+ } else if aTableView.isEqual(to: self.groupedFindTableView) {
|
|
|
+ if rowIndex >= self.groupSearchResults.count {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ let model = self.groupSearchResults[rowIndex]
|
|
|
+ let selection = model.selection
|
|
|
+ let point = NSPoint(x: NSWidth(selection.bounds) * 0.5, y: NSHeight(selection.bounds) * 0.5)
|
|
|
+ return CPDFDestination(document: self.listView.document, pageIndex: Int(selection.page.pageIndex()), at: point, zoom: self.listView.scaleFactor)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
|
|
@@ -1805,15 +1817,6 @@ extension KMLeftSideViewController: KMBotaTableViewDelegate {
|
|
|
return NSNotFound;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- - (id <SKImageToolTipContext>)tableView:(NSTableView *)tv imageContextForRow:(NSInteger)row {
|
|
|
- if ([tv isEqual:leftSideController.findTableView])
|
|
|
- return [[[leftSideController.findArrayController arrangedObjects] objectAtIndex:row] destination];
|
|
|
- else if ([tv isEqual:leftSideController.groupedFindTableView])
|
|
|
- return [[[[[leftSideController.groupedFindArrayController arrangedObjects] objectAtIndex:row] matches] objectAtIndex:0] destination];
|
|
|
- return nil;
|
|
|
- }
|
|
|
-
|
|
|
- (NSArray *)tableView:(NSTableView *)tv typeSelectHelperSelectionStrings:(SKTypeSelectHelper *)typeSelectHelper {
|
|
|
if ([tv isEqual:leftSideController.thumbnailTableView]) {
|
|
|
return pageLabels;
|
|
@@ -4333,6 +4336,10 @@ extension KMLeftSideViewController: NSOutlineViewDelegate, NSOutlineViewDataSour
|
|
|
*/
|
|
|
}
|
|
|
|
|
|
+extension KMLeftSideViewController: NSSearchFieldDelegate {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
extension KMLeftSideViewController: NSMenuDelegate {
|
|
|
func menuNeedsUpdate(_ menu: NSMenu) {
|
|
|
if menu.isEqual(to: self.tocOutlineView.menu) {
|
|
@@ -4732,6 +4739,21 @@ extension KMLeftSideViewController {
|
|
|
KMPrint("KMLeftSideViewController-selectSelections...")
|
|
|
}
|
|
|
|
|
|
+ @objc func toggleWholeWordSearch(_ sender: AnyObject?) {
|
|
|
+ KMPrint("KMLeftSideViewController-toggleWholeWordSearch...")
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func toggleCaseInsensitiveSearch(_ sender: AnyObject?) {
|
|
|
+ KMPrint("KMLeftSideViewController-toggleCaseInsensitiveSearch...")
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func toggleCaseInsensitiveNoteSearch(_ sender: AnyObject?) {
|
|
|
+ KMPrint("KMLeftSideViewController-toggleCaseInsensitiveNoteSearch...")
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func searchNotes(_ sender: AnyObject?) {
|
|
|
+ KMPrint("KMLeftSideViewController-searchNotes...")
|
|
|
+ }
|
|
|
|
|
|
private func _tableView(_ tv: NSTableView, cutRowsWithIndexes rowIndexes: IndexSet) {
|
|
|
// if tv.isEqual(to: self.thumbnailTableView) {
|