 }
 
 class PlayItemCornerView : NSView {
-    @IBOutlet weak var playlistArrayController: NSDictionaryController!
+    @IBOutlet weak var playlistArrayController: NSArrayController!
 	@IBOutlet weak var playitemArrayController: NSArrayController!
     @IBOutlet weak var playitemTableView: PlayTableView!
+    var menuIconState: Bool = false
+    var menuIconName: String {
+        get {
+            if menuIconState {
+                return "NSTouchBarSearchTemplate"
+            }
+            else
+            {
+                return "NSRefreshTemplate"
+            }
+        }
+    }
     override func draw(_ dirtyRect: NSRect) {
-        let tote = NSImage.init(imageLiteralResourceName: "NSRefreshTemplate")
+        let tote = NSImage.init(imageLiteralResourceName: self.menuIconName)
         let alignRect = tote.alignmentRect
         
         NSGraphicsContext.saveGraphicsState()

    
    //  Start or forget observing any changes
    internal func setObserving(_ state: Bool) {
        for dict in playlists {
            let items: [PlayItem] = dict.value as! [PlayItem]
            self.observe(dict as AnyObject, keyArray: listIvars, observing: state)
            for item in items {
                self.observe(item, keyArray: itemIvars, observing: state)
            }
        }
    }
    
    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if let undo = self.undoManager {
            let oldValue = change?[NSKeyValueChangeKey(rawValue: "old")]
            let newValue = change?[NSKeyValueChangeKey(rawValue: "new")]
            
            undo.registerUndo(withTarget: self, handler: { [oldValue] (PlaylistViewController) -> () in

                (object as AnyObject).setValue(oldValue, forKey: keyPath!)
                if !undo.isUndoing {
                    undo.setActionName(String.init(format: "Edit %@", keyPath!))
                }
            })
            Swift.print(String.init(format: "%@ %@ -> %@", keyPath!, oldValue as! CVarArg, newValue as! CVarArg))
        }
    }
    
    //  MARK:- View lifecycle
    override func viewDidLoad() {
        let types = [kUTTypeData as String,
                     kUTTypeURL as String,
                     NSDictionaryControllerKeyValuePair.className(),
                     PlayItem.className(),
                     NSFilenamesPboardType,
                     NSFilesPromisePboardType,

        playitemTableView.doubleAction = #selector(playPlaylist(_:))
        
        //  Load playlists shared by all document; our delegate maintains history
        self.restorePlaylists(nil)

        NotificationCenter.default.addObserver(
            self,
