|
@@ -12,6 +12,8 @@ class KMHomeRightView: BaseXibView {
|
|
|
@IBOutlet var rightScrollView: NSScrollView!
|
|
|
@IBOutlet var rightCollectionView: NSCollectionView!
|
|
|
|
|
|
+ var filesHeaderView: KMHomeFilesHeaderView = KMHomeFilesHeaderView()
|
|
|
+
|
|
|
//MARK: - func
|
|
|
override func draw(_ dirtyRect: NSRect) {
|
|
|
super.draw(dirtyRect)
|
|
@@ -50,6 +52,7 @@ class KMHomeRightView: BaseXibView {
|
|
|
rightCollectionView.layer?.backgroundColor = NSColor.clear.cgColor
|
|
|
rightCollectionView.delegate = self
|
|
|
rightCollectionView.dataSource = self
|
|
|
+ rightCollectionView.allowsEmptySelection = true
|
|
|
|
|
|
rightCollectionView.register(KMHistoryFileThumbItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHistoryFileThumbItem"))
|
|
|
rightCollectionView.register(KMHistoryFileListItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHistoryFileListItem"))
|
|
@@ -58,14 +61,28 @@ class KMHomeRightView: BaseXibView {
|
|
|
rightCollectionView.register(KMHomeQuickToolsView.self, forSupplementaryViewOfKind: NSCollectionView.elementKindSectionHeader, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "kmHomeQuickToolsView"))
|
|
|
rightCollectionView.register(KMHomeFilesHeaderView.self, forSupplementaryViewOfKind: NSCollectionView.elementKindSectionHeader, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "kmHomeFilesHeaderView"))
|
|
|
|
|
|
+ rightCollectionView.register(KMHomeFilesEmptyHeaderView.self, forSupplementaryViewOfKind: NSCollectionView.elementKindSectionHeader, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHomeFilesEmptyHeaderView"))
|
|
|
rightCollectionView.register(KMHomeFilesEmptyHeaderView.self, forSupplementaryViewOfKind: NSCollectionView.elementKindSectionFooter, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHomeFilesEmptyHeaderView"))
|
|
|
-
|
|
|
}
|
|
|
|
|
|
func reloadData() {
|
|
|
self.rightCollectionView.reloadData()
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ private func collectionViewSelectedChanged() {
|
|
|
+ let indexs = rightCollectionView.selectionIndexPaths
|
|
|
+ HistoryFilesManager.manager.selectFiles.removeAll()
|
|
|
+ if indexs.count >= 0 {
|
|
|
+ for index in indexs {
|
|
|
+ let url = HistoryFilesManager.manager.files[index.item]
|
|
|
+ HistoryFilesManager.manager.selectFiles.append(url)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ filesHeaderView.updateDeleteButtonState()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//MARK: - NSCollectionViewDelegate, NSCollectionViewDataSource
|
|
@@ -79,26 +96,27 @@ extension KMHomeRightView: NSCollectionViewDelegate, NSCollectionViewDataSource,
|
|
|
if section == 0 {
|
|
|
return 0
|
|
|
}
|
|
|
- return 10
|
|
|
+ return HistoryFilesManager.manager.files.count
|
|
|
}
|
|
|
|
|
|
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
|
|
|
+ if indexPath.item >= HistoryFilesManager.manager.files.count {
|
|
|
+ return NSCollectionViewItem()
|
|
|
+ }
|
|
|
+
|
|
|
if HistoryFilesManager.manager.showMode == .Thumbnail {
|
|
|
let item: KMHistoryFileThumbItem = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHistoryFileThumbItem"), for: indexPath) as! KMHistoryFileThumbItem
|
|
|
|
|
|
return item
|
|
|
} else if HistoryFilesManager.manager.showMode == .List {
|
|
|
let item: KMHistoryFileListItem = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMHistoryFileListItem"), for: indexPath) as! KMHistoryFileListItem
|
|
|
-
|
|
|
+ item.fileURL = HistoryFilesManager.manager.files[indexPath.item]
|
|
|
+ item.reloadData()
|
|
|
return item
|
|
|
}
|
|
|
return NSCollectionViewItem()
|
|
|
}
|
|
|
|
|
|
- func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
|
|
|
if HistoryFilesManager.manager.showMode == .Thumbnail {
|
|
|
return CGSize(width: 226, height: 248)
|
|
@@ -121,10 +139,10 @@ extension KMHomeRightView: NSCollectionViewDelegate, NSCollectionViewDataSource,
|
|
|
|
|
|
} else if indexPath.section == 1 {
|
|
|
//Recently
|
|
|
- let view = collectionView.makeSupplementaryView(ofKind: kind, withIdentifier: NSUserInterfaceItemIdentifier("kmHomeFilesHeaderView"), for: indexPath) as! KMHomeFilesHeaderView
|
|
|
- view.delegate = self
|
|
|
+ filesHeaderView = collectionView.makeSupplementaryView(ofKind: kind, withIdentifier: NSUserInterfaceItemIdentifier("kmHomeFilesHeaderView"), for: indexPath) as! KMHomeFilesHeaderView
|
|
|
+ filesHeaderView.delegate = self
|
|
|
|
|
|
- return view
|
|
|
+ return filesHeaderView
|
|
|
}
|
|
|
} else if kind == NSCollectionView.elementKindSectionFooter {
|
|
|
let view = collectionView.makeSupplementaryView(ofKind: kind, withIdentifier: NSUserInterfaceItemIdentifier("KMHomeFilesEmptyHeaderView"), for: indexPath) as! KMHomeFilesEmptyHeaderView
|
|
@@ -166,6 +184,16 @@ extension KMHomeRightView: NSCollectionViewDelegate, NSCollectionViewDataSource,
|
|
|
return NSEdgeInsetsMake(12, 40, 0, 40)
|
|
|
}
|
|
|
|
|
|
+ func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
|
|
|
+ self.collectionViewSelectedChanged()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ func collectionView(_ collectionView: NSCollectionView, didDeselectItemsAt indexPaths: Set<IndexPath>) {
|
|
|
+ self.collectionViewSelectedChanged()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|