OSDN Git Service

CollectionViewの実装から具体的なクラス名を排除
authormasakih <masakih@users.sourceforge.jp>
Sun, 5 Nov 2017 11:14:42 +0000 (20:14 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sun, 5 Nov 2017 11:14:42 +0000 (20:14 +0900)
KCD/CollectionView.swift
KCD/ScreenshotCollectionViewItem.swift

index 28b959f..52afda4 100644 (file)
@@ -9,6 +9,12 @@
 import Cocoa
 import Quartz
 
+protocol Previewable {
+    
+    var imageFrame: NSRect { get }
+    var view: NSView { get }
+}
+
 final class CollectionView: NSCollectionView {
     
     private var selectionObservation: NSKeyValueObservation?
@@ -144,7 +150,7 @@ extension CollectionView: QLPreviewPanelDataSource, QLPreviewPanelDelegate {
     
     func previewPanel(_ panel: QLPreviewPanel!, sourceFrameOnScreenFor item: QLPreviewItem!) -> NSRect {
         
-        guard let item = item as? ScreenshotCollectionViewItem else { return .zero }
+        guard let item = item as? Previewable else { return .zero }
         
         let frame = convert(item.imageFrame, from: item.view)
         let byWindow = convert(frame, to: nil)
index aba17c9..2a6c75e 100644 (file)
@@ -63,7 +63,7 @@ final class ScreenshotCollectionViewItem: NSCollectionViewItem {
     }
 }
 
-extension ScreenshotCollectionViewItem: QLPreviewItem {
+extension ScreenshotCollectionViewItem: QLPreviewItem, Previewable {
     
     var previewItemURL: URL! {