From 23a1a2e8cfa4c243f89882607fe5432fb5ca6b34 Mon Sep 17 00:00:00 2001 From: Daniel Barber Date: Sat, 29 Jun 2019 12:27:40 -0400 Subject: [PATCH] Drag and drop works with detail view --- Persephone.xcodeproj/project.pbxproj | 4 +++ Persephone/Controllers/AlbumViewItem.swift | 18 ++++++------ Persephone/Models/DraggedAlbum.swift | 19 +++++++++++++ Persephone/Resources/AlbumViewItem.xib | 4 +-- Persephone/Views/AlbumCoverButton.swift | 32 ++++++++++++++++++++++ 5 files changed, 65 insertions(+), 12 deletions(-) create mode 100644 Persephone/Models/DraggedAlbum.swift create mode 100644 Persephone/Views/AlbumCoverButton.swift diff --git a/Persephone.xcodeproj/project.pbxproj b/Persephone.xcodeproj/project.pbxproj index 1fe455b..bfb1827 100644 --- a/Persephone.xcodeproj/project.pbxproj +++ b/Persephone.xcodeproj/project.pbxproj @@ -43,6 +43,7 @@ E43AC1F122C68E6A001E483C /* NSPasteboardItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43AC1F022C68E6A001E483C /* NSPasteboardItem.swift */; }; E43AC1F522C6A4F4001E483C /* DraggedAlbum.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43AC1F422C6A4F4001E483C /* DraggedAlbum.swift */; }; E43AC1F622C6AD0B001E483C /* AlbumViewController+NSCollectionViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43AC1F222C6A439001E483C /* AlbumViewController+NSCollectionViewDelegate.swift */; }; + E43AC1F822C7065A001E483C /* AlbumCoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43AC1F722C7065A001E483C /* AlbumCoverButton.swift */; }; E43B67AA22909793007DCF55 /* AlbumDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43B67A822909793007DCF55 /* AlbumDetailView.swift */; }; E43B67AB22909793007DCF55 /* AlbumDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E43B67A922909793007DCF55 /* AlbumDetailView.xib */; }; E43B67AD229194CD007DCF55 /* AlbumTracksDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43B67AC229194CD007DCF55 /* AlbumTracksDataSource.swift */; }; @@ -240,6 +241,7 @@ E43AC1F022C68E6A001E483C /* NSPasteboardItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSPasteboardItem.swift; sourceTree = ""; }; E43AC1F222C6A439001E483C /* AlbumViewController+NSCollectionViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AlbumViewController+NSCollectionViewDelegate.swift"; sourceTree = ""; }; E43AC1F422C6A4F4001E483C /* DraggedAlbum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraggedAlbum.swift; sourceTree = ""; }; + E43AC1F722C7065A001E483C /* AlbumCoverButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumCoverButton.swift; sourceTree = ""; }; E43B67A822909793007DCF55 /* AlbumDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumDetailView.swift; sourceTree = ""; }; E43B67A922909793007DCF55 /* AlbumDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AlbumDetailView.xib; sourceTree = ""; }; E43B67AC229194CD007DCF55 /* AlbumTracksDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumTracksDataSource.swift; sourceTree = ""; }; @@ -454,6 +456,7 @@ E47E2FD222205D2500F747E6 /* MainWindow.swift */, E423563F228623D2001216D6 /* QueueSongTitleView.swift */, E4120D6B22AD8139004CB1F8 /* QueueView.swift */, + E43AC1F722C7065A001E483C /* AlbumCoverButton.swift */, ); path = Views; sourceTree = ""; @@ -920,6 +923,7 @@ E41E52FD223BF87300173814 /* MPDClient+Connection.swift in Sources */, E450AD7E222620A10091BED3 /* Album.swift in Sources */, E408D3B6220DD8970006D9BE /* Notification.swift in Sources */, + E43AC1F822C7065A001E483C /* AlbumCoverButton.swift in Sources */, E45962C62241A78500FC1A1E /* MPDCommand.swift in Sources */, E408D3B9220DE98F0006D9BE /* NSUserInterfaceItemIdentifier.swift in Sources */, E4EB2379220F10B8008C70C0 /* MPDPair.swift in Sources */, diff --git a/Persephone/Controllers/AlbumViewItem.swift b/Persephone/Controllers/AlbumViewItem.swift index 39c65b4..18643ff 100644 --- a/Persephone/Controllers/AlbumViewItem.swift +++ b/Persephone/Controllers/AlbumViewItem.swift @@ -14,7 +14,7 @@ class AlbumViewItem: NSCollectionViewItem { override var isSelected: Bool { didSet { - //albumCoverBox.isHidden = !isSelected + albumCoverBox.layer?.borderWidth = isSelected ? 5 : 0 } } @@ -24,16 +24,12 @@ class AlbumViewItem: NSCollectionViewItem { albumCoverView.wantsLayer = true albumCoverView.layer?.cornerRadius = 3 albumCoverView.layer?.borderWidth = 1 - setAppearance() -// albumCoverBox.wantsLayer = true -// albumCoverBox.layer?.cornerRadius = 5 -// albumCoverBox.layer?.borderWidth = 8 -// if #available(OSX 10.14, *) { -// albumCoverBox.layer?.borderColor = NSColor.controlAccentColor.cgColor -// } else { -// albumCoverBox.layer?.borderColor = NSColor.selectedControlColor.cgColor -// } + albumCoverBox.wantsLayer = true + albumCoverBox.layer?.cornerRadius = 5 + albumCoverBox.layer?.borderWidth = 0 + + setAppearance() if #available(OSX 10.14, *) { observer = NSApp.observe(\.effectiveAppearance) { (app, _) in @@ -67,8 +63,10 @@ class AlbumViewItem: NSCollectionViewItem { [.darkAqua, .aqua]) == .darkAqua albumCoverView.layer?.borderColor = darkMode ? .albumBorderColorDark : .albumBorderColorLight + albumCoverBox.layer?.borderColor = NSColor.controlAccentColor.cgColor } else { albumCoverView.layer?.borderColor = .albumBorderColorLight + albumCoverBox.layer?.borderColor = NSColor.selectedControlColor.cgColor } } diff --git a/Persephone/Models/DraggedAlbum.swift b/Persephone/Models/DraggedAlbum.swift new file mode 100644 index 0000000..78e052f --- /dev/null +++ b/Persephone/Models/DraggedAlbum.swift @@ -0,0 +1,19 @@ +// +// DraggedAlbum.swift +// Persephone +// +// Created by Daniel Barber on 2019/6/28. +// Copyright © 2019 Dan Barber. All rights reserved. +// + +import AppKit +import CryptoSwift + +struct DraggedAlbum: Codable { + var title: String + var artist: String + + var hash: String { + return "\(title) - \(artist)".sha1() + } +} diff --git a/Persephone/Resources/AlbumViewItem.xib b/Persephone/Resources/AlbumViewItem.xib index 78a30ce..8d3fc78 100644 --- a/Persephone/Resources/AlbumViewItem.xib +++ b/Persephone/Resources/AlbumViewItem.xib @@ -27,13 +27,13 @@ -