Write dragged feeds with various UTI types, including a custom feed type.

This commit is contained in:
Brent Simmons
2017-11-07 21:14:58 -08:00
parent 06de21776a
commit 51825f8f05
4 changed files with 117 additions and 3 deletions

View File

@@ -27,7 +27,9 @@ import RSCore
override func viewDidLoad() {
outlineView.sidebarViewController = self
outlineView.setDraggingSourceOperationMask(.move, forLocal: true)
outlineView.setDraggingSourceOperationMask(.copy, forLocal: false)
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(containerChildrenDidChange(_:)), name: .ChildrenDidChange, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(userDidAddFeed(_:)), name: .UserDidAddFeed, object: nil)
@@ -140,7 +142,7 @@ import RSCore
}
}
//MARK: NSOutlineViewDataSource
// MARK: NSOutlineViewDataSource
func outlineView(_ outlineView: NSOutlineView, numberOfChildrenOfItem item: Any?) -> Int {
@@ -156,6 +158,15 @@ import RSCore
return nodeForItem(item as AnyObject?).canHaveChildNodes
}
func outlineView(_ outlineView: NSOutlineView, pasteboardWriterForItem item: Any) -> NSPasteboardWriting? {
let node = nodeForItem(item as AnyObject?)
if let feed = node.representedObject as? Feed {
return FeedPasteboardWriter(feed: feed)
}
return nil
}
}
//MARK: - Private