Commit Graph

286 Commits

Author SHA1 Message Date
Brent Simmons
bc1fe05e91 Move sentence about bindings to the right section. 2018-01-23 21:07:29 -08:00
Michael Tsai
063ed29d5d Share button now supports "EagleFiler Import" and "Add to Reading List".
List .URL before .string in the pasteboard types because otherwise the system will not propose sharing services that receive URLs but not text.
2018-01-22 11:02:29 -05:00
Brent Simmons
394274f1e5 Continue progress on inspector. 2018-01-21 11:35:50 -08:00
Brent Simmons
807ad99aad Add new articles to the timeline when a feed that affects the timeline gets new articles. Fix #166. 2018-01-20 16:54:18 -08:00
Brent Simmons
9fea9c2d12 Create and use fetchUnsortedArticles(for:), which is common code that needed to be a separate function. 2018-01-17 22:03:13 -08:00
Brent Simmons
21f1863cd0 Unbreak the build by commenting out some in-progress code. 2018-01-17 21:51:24 -08:00
Brent Simmons
6b059671f5 Make progress on reloading timeline when feed updates. 2018-01-17 17:28:09 -08:00
Brent Simmons
c3bcf82713 Make the send-to-Micro.blog command work. Need some tweaking, but it mostly does the job. 2018-01-11 22:18:46 -08:00
Brent Simmons
ccc699741d Decrease the opacity of the placeholder color for avatars in the timeline. 2018-01-09 21:33:13 -08:00
Brent Simmons
8b2f9b333a Make feed icons and favicons show up more quickly and reliably in the timeline. 2018-01-09 21:09:09 -08:00
Brent Simmons
1b0648cd18 Make feed icons show up more promptly and reliably in the timeline. 2018-01-08 21:34:39 -08:00
Brent Simmons
0a1642abdf Draw a white unread indicator in the timeline when the cell is selected and emphasized. Fix #112. 2018-01-06 14:33:16 -08:00
Brent Simmons
0d4a58e2ab Create and use an NSTableView extension method: indexesOfAvailableRowsPassingTest. 2018-01-06 12:12:31 -08:00
Brent Simmons
cfcfe2b4b5 Make reloading the timeline cells even more efficient upon avatar-download. 2018-01-06 11:56:32 -08:00
Brent Simmons
f9b4e192e0 Make updating the timeline cells more efficient after downloading an avatar. 2018-01-06 11:18:03 -08:00
Brent Simmons
45f3f49a1f Fix bug where user avatars wouldn’t always show up in the timeline view promptly. 2018-01-05 13:22:16 -08:00
Brent Simmons
665561e5eb Show avatars in the timeline at the right times. 2018-01-04 21:20:09 -08:00
Brent Simmons
e2c36caeee Move favicons in the detail view to the right. They’re show when available and there’s no other feed icon or user avatar. 2018-01-03 13:14:14 -08:00
Brent Simmons
4bb5270860 Move template and style sheet to same group as ArticleRenderer. 2018-01-03 13:07:05 -08:00
Brent Simmons
867e775e69 Show feed icons and avatars in the timeline. 2017-12-31 12:10:30 -08:00
Brent Simmons
b35193b823 Make timeline cell height calculation reliable by considering all the rects, instead of assuming that one or another is the determining rect. 2017-12-31 12:08:25 -08:00
Brent Simmons
04c35dc1bf Comment out code for showing favicons in the timeline, since I don’t think we’re going to do that. But not totally sure yet. 2017-12-30 16:12:49 -08:00
Brent Simmons
befc5efc77 Show feed names and favicons in timeline when appropriate.
I don’t quite like this. Maybe avatars are better.
2017-12-30 12:45:10 -08:00
Brent Simmons
0c54e61fbc Update the showFeedNames timeline property based on what will be shown in the timeline. 2017-12-30 10:56:58 -08:00
Brent Simmons
5dd20264bf Use feed icon’s gathered from HTML metadata. 2017-12-29 20:41:41 -08:00
Brent Simmons
d2d7369d6a Show favicon in detail view when available and when there’s no user avatar or feed icon. 2017-12-29 20:04:43 -08:00
Brent Simmons
7f7f9c5166 Add note about messy code. 2017-12-29 19:03:52 -08:00
Brent Simmons
65fcbf00bf Show just one avatar in detail view. Make date a permalink, when available. 2017-12-29 18:59:04 -08:00
Brent Simmons
4be6df2c56 Continue experimentation with detail view avatars. 2017-12-29 17:10:50 -08:00
Brent Simmons
708e46ed18 Make progress on showing avatars in the detail view. 2017-12-29 12:21:19 -08:00
Brent Simmons
d7e5c88b8f Create byline for detail view. 2017-12-29 11:31:47 -08:00
Brent Simmons
a210dd2318 Make detail status bar show only on mouseover of a link. Don’t have an always-present view of the permalink. (We’ll see how this goes.) 2017-12-28 18:41:01 -08:00
Brent Simmons
953a97afd7 Use an image for feeds that don’t have favicons. Currently using the image at /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/BookmarkIcon.icns — but this might change. 2017-12-28 18:11:12 -08:00
Brent Simmons
99f2c01a04 Go back to using storyboard for Feed Directory. 2017-12-28 16:37:30 -08:00
Brent Simmons
25ed41aacc Use standard folder icons in the main window’s source list. 2017-12-27 18:04:36 -08:00
Brent Simmons
c19dba6998 Don’t crash when cellAppearance is nil. 2017-12-27 18:00:17 -08:00
Brent Simmons
1d2d048207 Create two UTI types for articles, one public and one internal. 2017-12-26 16:18:46 -08:00
Brent Simmons
5965d92b13 Remove unneeded ; character. 2017-12-26 16:18:19 -08:00
Brent Simmons
9ec6188395 Popup a share menu on clicking the Share toolbar item. Fix #40. 2017-12-26 12:50:34 -08:00
Brent Simmons
b08281c861 Add keyboard shortcut for mark-older-as-read: the o key. (Oh, not zero.) 2017-12-25 12:29:13 -08:00
Brent Simmons
2dbb0a4988 Validate the Mark Older Articles as Read command. 2017-12-25 12:21:44 -08:00
Brent Simmons
de70a4d539 Clean up. Drop the panic button mark-everywhere-read UI bits, since they’re no longer used. 2017-12-25 10:48:49 -08:00
Brent Simmons
c38b46a29e Implement markOlderArticlesAsRead. Fix #199. 2017-12-25 10:40:06 -08:00
Brent Simmons
1cb2a32b5a Merge branch 'master' of https://github.com/brentsimmons/Evergreen 2017-12-24 10:28:44 -08:00
Brent Simmons
5241f936c0 Use setPointAndSizeAdjustingForScreen for setting size and position of main window on first run. 2017-12-24 10:28:34 -08:00
Brent Simmons
24fb1f0356 Fix infinite loop that could happen on going to next unread. Fix #269. 2017-12-23 22:18:42 -08:00
Brent Simmons
9c249ef6b2 Position the window on first-run exactly once. Opening a second window should not place it in the same position as the first. 2017-12-21 14:47:12 -08:00
Brent Simmons
a4c82739b6 Implement next and previous subscription navigation. Also: on first-run, position and size the window a bit nicer. 2017-12-21 14:43:29 -08:00
Brent Simmons
84845c21b3 Make sidebar expand/collapse keyboard shortcuts work. 2017-12-21 11:09:07 -08:00
Brent Simmons
70000c1d31 Progress on keyboard shortcuts. Add link to Technotes in Help menu. Fix #266. 2017-12-20 21:23:48 -08:00
Brent Simmons
ac3947b164 Continue progress on keyboard shortcuts. 2017-12-20 20:51:17 -08:00
Brent Simmons
85e0a9739d Implement scrollOrGoToNextUnread. 2017-12-20 13:39:31 -08:00
Brent Simmons
6879c172c2 Make a bunch of progress on keyboard commands. 2017-12-20 12:59:31 -08:00
Brent Simmons
b0fc2e7391 Add plists defining global and sidebar keyboard shortcuts. 2017-12-20 12:55:29 -08:00
Brent Simmons
6371c0e9d2 Make right-arrow work to go from sidebar to timeline. Make left-arrow work to go from timeline to sidebar. 2017-12-19 15:24:38 -08:00
Brent Simmons
fcda565d91 Remove references to tags. Fix #259. 2017-12-18 18:20:13 -08:00
Brent Simmons
7d68e3322c Reuse account nodes, which should fix at least one cause of the bug where sometimes the On My Mac group item collapses when it shouldn’t. 2017-12-18 12:43:18 -08:00
Brent Simmons
c65757bab3 Delete appInfo stuff — it was confusing and overkill as a UserInfo helper. 2017-12-18 12:34:07 -08:00
Brent Simmons
e091f1c609 Skip fetching unread counts on changing sidebar selection. It’s not needed and it’s expensive. This provides a major performance boost when using my 2500-feed test. 2017-12-18 10:00:06 -08:00
Brent Simmons
ebe43c43f8 Draw template images with 0.75 alpha in the sidebar. 2017-12-17 10:52:31 -08:00
Brent Simmons
76f3fa7498 Use SmallIconProvider in SidebarViewController to get icons for sidebar objects. 2017-12-17 10:51:46 -08:00
Brent Simmons
f133b539ca Create SidebarStatusBarView. 2017-12-16 16:36:35 -08:00
Brent Simmons
59f06ea764 Create Smart Feeds group item in sidebar. Fix #216. 2017-12-16 11:16:32 -08:00
Brent Simmons
2efcd7ea0c Get rid of the window status bar. Put the current URL at the bottom of the detail view. 2017-12-16 10:18:02 -08:00
Brent Simmons
e6dee88e2e Update only the favicon in the sidebar when a favicon is downloaded — no need to update the rest of the cell. 2017-12-13 21:16:52 -08:00
Brent Simmons
bef77bc4a1 Create and use a plain-background NoSelectionView to display in the detail pane when there’s no current article. Fix #237. 2017-12-03 12:45:34 -08:00
Brent Simmons
05b158e92f Show a visual effect view, with behind-window-blending, when there is no selected Article. Fix #214.
After I check this in I’m going to reverse it, because it’s just too obtrusive. But this way there’s a record of having tried it, plus code.
2017-12-03 12:38:44 -08:00
Brent Simmons
4e05f35f6d Set userAgent on detail view webview. Fix #236. 2017-12-03 12:13:44 -08:00
Brent Simmons
c83e0ca68d Do quite a bit less work on resizing the timeline. Fix #175. 2017-12-02 22:18:43 -08:00
Brent Simmons
3da2521e8e When adding a feed, update it right away rather than waiting for the next Refresh. Fix #147. Fix #215. 2017-12-02 17:47:08 -08:00
Brent Simmons
ef988199cc Make main window title-less again — but allow for a hidden pref to change that: KafasisTitleMode. 2017-12-02 14:54:12 -08:00
Brent Simmons
6c135c80b0 Add TimelineHeaderView. 2017-11-29 13:35:25 -08:00
Brent Simmons
229a376a86 Don’t show avatars in the timeline (for now). Also: align to the top, and scale down-only (not up). This will allow us to use favicons when a bigger icon isn’t available. 2017-11-29 13:10:01 -08:00
Brent Simmons
dd05a24704 Do the first parts of showing feed avatars. 2017-11-28 21:39:09 -08:00
Brent Simmons
7bf8d51c38 Add stub for laying out avatar image view. 2017-11-27 13:16:08 -08:00
Brent Simmons
09926490a6 Add avatarImageView to timeline cell. 2017-11-27 13:10:57 -08:00
Brent Simmons
4e50529b16 Add FeaturedImageDownloader. 2017-11-26 19:57:45 -08:00
Brent Simmons
441a8f49b3 Add AuthorAvatarDownloader. 2017-11-26 13:16:32 -08:00
Brent Simmons
4052f85e10 Add avatar and featuredImage to TimelineCellData. 2017-11-25 21:27:35 -08:00
Brent Simmons
1047fa5a02 Use the proper index sets and so on to make deleting work from the sidebar again. Fix #192. 2017-11-25 17:44:54 -08:00
Brent Simmons
17662ef337 Simplify functions for applying functions to cells. 2017-11-25 16:16:03 -08:00
Brent Simmons
7b964e05f9 Avoid looking for favicon when updating only a cell’s unread count. Micro-optimization. 2017-11-25 15:21:35 -08:00
Brent Simmons
68c01491fc Note when feed settings change and update the sidebar cells. 2017-11-25 13:48:14 -08:00
Brent Simmons
5ddf9ea284 Update sidebar when favicon becomes available. Fix #125. 2017-11-25 11:14:42 -08:00
Brent Simmons
226a7d05b6 Use 97% white background for source list, since favicons look so very terrible on standard translucent sidebar background. 2017-11-24 22:05:10 -08:00
Brent Simmons
f7e3a4e914 Make progress on showing favicons in the source list. 2017-11-24 21:57:28 -08:00
Brent Simmons
4cf3f8dfe7 Create and use SidebarCellAppearance and SidebarCellLayout with SidebarCell. 2017-11-24 21:39:59 -08:00
Brent Simmons
b4ff1785ab Switch from download to downloadUsingCache where appropriate. 2017-11-23 10:29:00 -08:00
Brent Simmons
d6e436c47f Darken the splitview dividers. 2017-11-21 20:47:35 -08:00
Brent Simmons
1288309995 Make window have a title — this allows people to show labels for toolbar items. 2017-11-21 13:12:22 -08:00
Brent Simmons
8fc7445a7a Disallow selecting group items. Fix #193. 2017-11-19 21:01:16 -08:00
Brent Simmons
f885c918d2 Switch back to using a source list sidebar. We’ll see how it goes once we add favicons. 2017-11-19 20:42:37 -08:00
Brent Simmons
ffaa55c50c Implement mark-everywhere-as-read. 2017-11-19 16:28:26 -08:00
Brent Simmons
9c2dd9251f Move mark bulk read commands to Panic Buttons submenu. 2017-11-19 15:45:20 -08:00
Brent Simmons
55be38269f Treat Folder and Account as Container in SidebarTreeControllerDelegate. Also: add pseudo feeds. 2017-11-19 12:59:37 -08:00
Brent Simmons
911e992b76 Use a Swift name for rs_performSelectorCoalesced — make it performSelectorCoalesced:with:delay:. 2017-11-19 11:42:22 -08:00
Brent Simmons
197ceefea9 Expand group items by default. Fix #187. 2017-11-18 17:10:47 -08:00
Brent Simmons
23ae585b12 Add a group-style row for accounts. 2017-11-18 16:56:36 -08:00
Brent Simmons
b3b8c73f1c Set window title’s visibility to hidden. Fix #186. 2017-11-18 12:13:28 -08:00
Brent Simmons
cb434863e5 Lighten the split view divider color. 2017-11-18 12:08:18 -08:00
Brent Simmons
1f26a83ed8 Use a layer for background color for timeline table cell. Don’t use drawRect: for performance reasons. 2017-11-18 11:39:25 -08:00
Brent Simmons
c459bd1a4e Add Panic Button UI. 2017-11-16 18:23:07 -08:00
Brent Simmons
1e713e3bfd Update Account unread count when BatchUpdate did perform. 2017-11-15 13:26:10 -08:00
Brent Simmons
baaf9c1a02 Run the new-folder sheet on the frontmost window. 2017-11-15 13:13:40 -08:00
Brent Simmons
00ff9016bc Draw using proper background color when selected but not emphasized. Fix #152. 2017-11-12 12:16:27 -08:00
Brent Simmons
861afa06c7 Draw a background color for the timeline cell, and make it opaque, so it looks not-weird when dragging. 2017-11-11 21:53:43 -08:00
Brent Simmons
51825f8f05 Write dragged feeds with various UTI types, including a custom feed type. 2017-11-07 21:14:58 -08:00
Brent Simmons
06de21776a Allow article drag from timeline view to other apps. Write URL on dragging. 2017-11-06 22:06:42 -08:00
Brent Simmons
b79ded1eb9 Write the string plist for the article. 2017-11-06 13:29:53 -08:00
Brent Simmons
f452021bd2 Create an ArticlePasteboardWriter, and return it from the timeline’s data source delegate method pasteboardWriterForRow. 2017-11-06 13:20:29 -08:00
Brent Simmons
a7464daf15 Mark Read command now works. 2017-11-05 21:27:34 -08:00
Brent Simmons
11aa68fd6f When timeline reloads due to a change in sidebar selection, post the selection-did-change notification so that status bar view and detail view can go blank (instead of continuing to show the previous selection). 2017-11-05 20:59:30 -08:00
Brent Simmons
8401d0f2f9 Display the mouseover link in the status bar, and remove it on mouseexit. 2017-11-05 20:42:27 -08:00
Brent Simmons
3fcede7fb4 Add JavaScript and native message handler for getting mouseover urls from the detail view’s WKWebView. 2017-11-05 20:31:50 -08:00
Brent Simmons
9818278c9b Make undo deleting feeds/folders work. 2017-11-05 12:14:36 -08:00
Brent Simmons
57296279e4 Switch back to AnyObject from AnyHashable, because of http://openradar.appspot.com/34824398 2017-11-04 23:05:20 -07:00
Brent Simmons
e16911b363 Make deleting work. Can’t undo yet. But now everything is messed-up because of an AnyHashable casting bug. Don’t run this build. 2017-11-04 22:51:14 -07:00
Brent Simmons
c08bbaa970 Use AnyHashable instead of AnyObject as representedObject for tree nodes. 2017-11-04 15:27:32 -07:00
Brent Simmons
ef1d95341b Show feeds in Feed Directory sidebar. 2017-11-04 14:53:21 -07:00
Brent Simmons
0960477be6 Move undoable commands into TimelineViewController private extension. 2017-11-04 10:39:47 -07:00
Brent Simmons
b2ad739caf Move table view data source and delegate back to TimelineViewController — it’s simpler that way. 2017-11-04 10:35:34 -07:00
Brent Simmons
911e6b0879 Do some refactoring. 2017-11-01 22:40:28 -07:00
Brent Simmons
af3f41fbda Start ArticleArray.swift. 2017-11-01 20:45:38 -07:00
Brent Simmons
69718e2dde Fix some build errors. 2017-10-31 20:33:41 -07:00
Brent Simmons
b048e3fd58 Move the timeline table’s data source a separate file/class. 2017-10-30 08:23:01 -07:00
Brent Simmons
17b84ec57c Rename MarkAllReadCommand to MarkReadOrUnreadCommand and make it handle both cases. 2017-10-29 12:09:56 -07:00
Brent Simmons
9fbce42959 Clear undoableCommands when the articles array changes. 2017-10-29 11:44:35 -07:00
Brent Simmons
5f848f568a Begin support for clearing undo commands on sidebar selection change. 2017-10-29 11:28:45 -07:00
Brent Simmons
f9b3eeb4d7 Switch macOS deployment target to 10.13. Get MarkAllReadCommand working as an undoable command. 2017-10-29 11:14:10 -07:00
Brent Simmons
8d5e568cde Make folder.account weak and optional. 2017-10-21 16:37:40 -07:00
Brent Simmons
71e8a9131d Make progress on fixing adding feeds. 2017-10-21 15:56:01 -07:00
Brent Simmons
4118e4a2d5 Make progress on fixing adding feeds. 2017-10-21 15:04:59 -07:00
Brent Simmons
b74d2e1a3c Change AddFeedWIndowControllerDelegate to use Container instead of Folder. 2017-10-21 13:33:08 -07:00
Brent Simmons
ebf1e36f38 Removed an extraneous line of code. 2017-10-21 13:32:36 -07:00
Brent Simmons
595af2561d Use TreeController.normalizedSelectedNodes in the delete action. 2017-10-21 12:14:45 -07:00
Brent Simmons
e0f872a8c7 Differentiate between navigation keys and other keys-that-are-handled in keyDown. 2017-10-21 12:13:20 -07:00
Brent Simmons
f6f4680e10 Handle the Delete key in the sidebar. 2017-10-21 10:55:20 -07:00
Brent Simmons
4c017dab10 Update unread counts after fetching articles on changing selection in the sidebar. 2017-10-19 21:56:30 -07:00
Brent Simmons
5289a68433 Create and use childNodesForContainerNode, which replaces two functions doing the same thing. 2017-10-19 21:52:45 -07:00
Brent Simmons
1481d72ed1 Fix node duplication bug on rebuilding tree. 2017-10-19 21:38:50 -07:00
Brent Simmons
aca8acea7c Update sidebar when adding a folder. 2017-10-19 13:27:59 -07:00
Brent Simmons
3812c216b2 Show unread count in window title. 2017-10-18 21:53:45 -07:00
Brent Simmons
2383ecd480 Implement ensureFolder — it actually creates and adds a folder and makes sure account is saved to disk. 2017-10-18 19:46:35 -07:00
Brent Simmons
f5a5bf91b2 Update unread counts for feeds when statuses change. 2017-10-09 21:54:08 -07:00
Brent Simmons
106cedb638 Fix sort order in timeline. 2017-10-09 08:32:26 -07:00
Brent Simmons
6572631866 Update the timeline cell when an article’s status changes. 2017-10-08 21:06:25 -07:00
Brent Simmons
8aa3746cb8 Add code for fetching articles for the timeline. Doesn’t actually work yet, though, for some reason. 2017-10-08 18:58:15 -07:00
Brent Simmons
ca611623aa Simplify Container and its function implementations. 2017-10-07 21:41:21 -07:00
Brent Simmons
c6f683c34c Make Account, rather than its delegate, watch for refresh progress changes. This way the delegate doesn’t have to be inited with its Account. 2017-10-07 17:43:10 -07:00
Brent Simmons
b77569f38b Create and use CombinedRefreshProgress, which reports refresh progress across all accounts. Used by the status view. 2017-10-07 17:20:19 -07:00