Commit Graph

2815 Commits

Author SHA1 Message Date
Allan Odgaard
ff99f06647 Provide base directory when creating FFResultNode group nodes 2014-08-27 09:12:01 +02:00
Allan Odgaard
cebb90b6c8 Remove implementation details from Find singleton’s interface 2014-08-27 09:12:01 +02:00
Allan Odgaard
44358ad034 Rename FFResultNode property: ‘exclude’ → ‘excluded’ 2014-08-27 09:12:01 +02:00
Allan Odgaard
1ee217adc6 Rename FFResultNode property: ‘matches’ → ‘children’ 2014-08-27 09:11:58 +02:00
Allan Odgaard
860a6aa546 Let FFResultNode tree track count of leafs and excluded leafs 2014-08-27 09:10:44 +02:00
Allan Odgaard
c27082a5f6 Fix zero row height for empty match ranges 2014-08-27 09:09:00 +02:00
Allan Odgaard
0bb7acfbf3 Add ‘removeFromParent’ to FFResultNode 2014-08-24 12:12:24 +02:00
Allan Odgaard
f781fe0f98 Show checkmark in bundle item chooser for selected menu items 2014-08-24 12:12:24 +02:00
Allan Odgaard
bb41b55d16 Remove folder_scan_settings_t (API simplification) 2014-08-24 12:12:24 +02:00
Allan Odgaard
7a1be3ebd0 Using globs in file chooser now defaults to case-insensitive 2014-08-24 12:12:24 +02:00
Allan Odgaard
5d72c8a2c5 Support case-insensitive glob matching 2014-08-24 12:12:24 +02:00
Allan Odgaard
93e14c6a15 Update includes 2014-08-24 12:12:23 +02:00
Allan Odgaard
89e395df44 Abort search when closing find dialog 2014-08-24 12:12:23 +02:00
Allan Odgaard
d2072145c6 Use system images for the “shell support installed” indicator 2014-08-23 17:45:22 +02:00
Allan Odgaard
aa27ccced5 Move some logic to the FFResultNode type 2014-08-23 17:45:22 +02:00
Allan Odgaard
846c220b6b Exclude line after match from excerpt when match ends with LF 2014-08-23 17:45:22 +02:00
Allan Odgaard
40ab59447c Move convenience functions from FFMatch → FFResultNode 2014-08-23 17:45:22 +02:00
Allan Odgaard
e6185fd5a1 Move select next/previous tab/result out of window controller 2014-08-23 17:45:22 +02:00
Allan Odgaard
871a0df11a Introduce showResultNode: convenience method 2014-08-23 17:45:21 +02:00
Allan Odgaard
54ac376825 Change terminology: ‘Match’ → ‘ResultNode’ 2014-08-23 17:45:21 +02:00
Allan Odgaard
180f21d7aa Add first/last match convenience methods to FFResultNode 2014-08-23 17:45:21 +02:00
Allan Odgaard
87dcaf93ec Iterate all search results using a single for-loop 2014-08-23 17:45:21 +02:00
Allan Odgaard
f855739d33 Use FFResultNode objects as the ‘Go To’ menu’s representedObject 2014-08-23 17:45:21 +02:00
Allan Odgaard
2f6370f4b0 Use a FFResultNode object to contain top-level results 2014-08-23 17:45:21 +02:00
Allan Odgaard
1cabec256c Use custom type for search results to get better type checking
This also makes it easy to have next/previous/parent (weak) pointers for better traversing.
2014-08-23 17:45:21 +02:00
Boris Dušek
afb504b58d Do not use macros for accessibility constants
This improves the chance that someone googling for a certain accessibility
attribute or other accessibility constant in order to find inspiration how to
implement it will find our code in OakTextView. It also makes the code more
understandable for reading by someone else, and generally follows the way
others write accessibility code (including Apple in their code samples). It
does make the code more verbose, but I think that does not outweight the above
advantages.

Inspired by: googling and "githubbing" for NSAccessibilityLinkTextAttribute:
http://lists.apple.com/archives/accessibility-dev/2014/Aug/msg00016.html
2014-08-23 17:45:20 +02:00
Allan Odgaard
87f2c07fbc With no file browser or project folder we try document’s folder
This is for the “untitled save path” which is normally used for new untitled files, so we wouldn’t actually have a folder, however, the property is also used as a fallback for a “project folder” when that property is unset (which it generally shouldn’t be).
2014-08-22 15:54:30 +02:00
Allan Odgaard
881b83cb50 Setup project folder after saving single untitled document 2014-08-22 15:38:21 +02:00
Allan Odgaard
34965c230d Find All for single document: Fix absolute path in search results 2014-08-22 14:58:44 +02:00
Allan Odgaard
bf81caa448 Fix titlecase menu item to say “Line” instead of “Word” 2014-08-22 14:33:02 +02:00
Allan Odgaard
94165739fb Improve capitalization heuristic
See added/updated tests for details.
2014-08-22 14:29:16 +02:00
Allan Odgaard
b0d57705cf Make encoding part of the document_t::reader_t API 2014-08-22 09:35:30 +02:00
Allan Odgaard
b1b0ffda58 Add ‘charset’ property to FFFilePathCell
This is really just a right-aligned label, but we might later change how it’s drawn.
2014-08-22 09:33:41 +02:00
Allan Odgaard
6646a14da1 Use alternate status string to show how many bytes were searched 2014-08-21 17:40:20 +02:00
Allan Odgaard
4b521541d7 Support alternate status string in find dialog window
The alternate string is shown after the user clicks the status bar.
2014-08-21 17:39:13 +02:00
Allan Odgaard
63f8400cc4 Allow specifying an NSTextField subclass when creating labels 2014-08-21 17:37:04 +02:00
Allan Odgaard
50d3a584c9 Track how many bytes we search 2014-08-21 17:36:16 +02:00
Allan Odgaard
4a2a3997cc Update API of find::scan_path_t 2014-08-21 16:50:05 +02:00
Allan Odgaard
2f1c4c05c4 Do not use ‘timeIntervalSinceNow’ with dates in the past
We previously negated the result but now we instead ask for [[NSDate date] timeIntervalSinceDate:startDate].
2014-08-21 16:07:23 +02:00
Allan Odgaard
a06554b638 Minor update of FFDocumentSearch’s instance data usage
Prior to this commit the ‘searchDuration’ property would actually return seconds since we last started a search, rather than how long the last search took.
2014-08-21 16:07:23 +02:00
Allan Odgaard
2908384a24 Add Check/Uncheck All to folder search action menu 2014-08-21 16:07:23 +02:00
Allan Odgaard
ffe3a464f2 Improve implementation of collapsing/expanding search results
We now collapse if more than half the items are expanded, otherwise expand. Previously we relied on a property to track the collapsed/expanded state, which could be out of sync if the user manually changed the state for half the items, and we also needed to reset the state variables when updating search results.
2014-08-21 16:06:34 +02:00
Allan Odgaard
baff330459 Refactor Find in Folder code
Minor functional changes, for example after replacing we keep showing the search results, but with disabled checkboxes and ‘replace all’ button.
2014-08-21 16:06:34 +02:00
Allan Odgaard
153ecda1a5 Rely on compiler synthesized instance variables 2014-08-21 16:06:34 +02:00
Allan Odgaard
bbb61d3b47 Overload description method for FFMatch 2014-08-21 16:06:34 +02:00
Allan Odgaard
573066676d Rely on ARC instead of synthesized accessor
Also give the callback function non-global scope.
2014-08-21 16:06:34 +02:00
Allan Odgaard
2721b22426 Use recede instead of retreat as the inverse of advance 2014-08-21 16:06:34 +02:00
Allan Odgaard
57e43f27e3 Return 0 if Gestalt() fails 2014-08-21 16:06:33 +02:00
Allan Odgaard
f4747e4fe4 Create (find in folder) match excerpt in background thread
Previously these were created on demand, but that meant loading the document in the UI thread. It also meant that multiple matches from same document would cause the document to be read for multiple times.

Furthermore, storing the match excerpt with the find::match_t type should allow for more flexibility, since we no longer need special logic in the table view delegate to load a subset of a document to get the display string, but will simply read it from the record.
2014-08-21 16:06:33 +02:00
Boris Dušek
d7e9b3a41d Use "key equivalent" instead of "shortcut" 2014-08-20 20:56:38 +02:00