 		}
 		return item as! Node
 	}
+
+	func nodeRepresentsDraggableItem(_ node: Node) -> Bool {
+		// Don’t allow PseudoFeed or Folder to be dragged.
+		// This will have to be revisited later. For instance,
+		// user-created smart feeds should be draggable, maybe.
+		// And we might allow dragging folders between accounts.
+		return node.representedObject is Feed
+	}
+
+	func validateLocalDrop(_ info: NSDraggingInfo, proposedItem item: Any?, proposedChildIndex index: Int) -> NSDragOperation {
+
+//		let node = nodeForItem(item)
+		return SidebarOutlineDataSource.dragOperationNone
+
+	}
 }


	func outlineView(_ outlineView: NSOutlineView, pasteboardWriterForItem item: Any) -> NSPasteboardWriting? {
		let node = nodeForItem(item as AnyObject?)

		guard !(node.representedObject is PseudoFeed) else {
			// We don’t allow the built-in smart feeds to be dragged.
			// This will have to be revisited later when there are user-created smart feeds that *can* be dragged.
			return nil
		}

		return (node.representedObject as? PasteboardWriterOwner)?.pasteboardWriter
	}

	// MARK: - Drag and Drop

	func outlineView(_ outlineView: NSOutlineView, validateDrop info: NSDraggingInfo, proposedItem item: Any?, proposedChildIndex index: Int) -> NSDragOperation {
//		let draggingSourceOutlineView = info.draggingSource() as? NSOutlineView
//		let isLocalDrop = draggingSourceOutlineView == outlineView
		return NSDragOperation(rawValue: 0)
	}

	func outlineView(_ outlineView: NSOutlineView, acceptDrop info: NSDraggingInfo, item: Any?, childIndex index: Int) -> Bool {

import RSTree
import Articles
import RSCore
import Account

@objc final class SidebarOutlineDataSource: NSObject, NSOutlineViewDataSource {

	let treeController: TreeController
	static let dragOperationNone = NSDragOperation(rawValue: 0)

	init(treeController: TreeController) {
		self.treeController = treeController
