Skip to content

Commit

Permalink
complete main menu delegate refactor, eliminate superfluous window ma…
Browse files Browse the repository at this point in the history
…nager, add button to show equalizer along bottom of main window
  • Loading branch information
jcm93 committed Nov 29, 2017
1 parent 0c0cef9 commit 6d23d60
Show file tree
Hide file tree
Showing 9 changed files with 69 additions and 92 deletions.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "jmc/Delegate:Main Window Controller/MainWindowController.swift"
timestampString = "533417346.889552"
timestampString = "533607510.239328"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "323"
endingLineNumber = "323"
startingLineNumber = "335"
endingLineNumber = "335"
landmarkName = "tempBreak(_:)"
landmarkType = "7">
</BreakpointContent>
Expand Down
53 changes: 22 additions & 31 deletions jmc/Base.lproj/MainMenu.xib
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@
<customObject id="76H-Is-DYh" customClass="MainWindowController" customModule="jmc" customModuleProvider="target"/>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="jmc" customModuleProvider="target">
<connections>
<outlet property="equalizerWindowMenuItem" destination="yTZ-KO-ido" id="ybf-3H-nKU"/>
<outlet property="jmcWindowMenuItem" destination="uQV-fL-2eI" id="kRj-pa-2Fj"/>
<outlet property="menuDelegate" destination="a4U-cM-VOZ" id="y40-ZZ-old"/>
<outlet property="repeatMenuItem" destination="2KZ-Mz-PQy" id="OpJ-kz-a3W"/>
<outlet property="shuffleMenuItem" destination="b4e-W9-bct" id="9w2-aV-btF"/>
</connections>
</customObject>
<customObject id="a4U-cM-VOZ" userLabel="Menu Delegate" customClass="MainMenuDelegate" customModule="jmc" customModuleProvider="target"/>
<customObject id="a4U-cM-VOZ" userLabel="Menu Delegate" customClass="MainMenuDelegate" customModule="jmc" customModuleProvider="target">
<connections>
<outlet property="repeatMenuItem" destination="2KZ-Mz-PQy" id="r3i-Sp-MFX"/>
<outlet property="shuffleMenuItem" destination="b4e-W9-bct" id="ZeS-zi-te4"/>
</connections>
</customObject>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
Expand Down Expand Up @@ -83,33 +86,33 @@
<items>
<menuItem title="Playlist" keyEquivalent="n" id="KjC-22-qhT">
<connections>
<action selector="newPlaylist:" target="Voe-Tx-rLC" id="5pM-TJ-jdv"/>
<action selector="newPlaylist:" target="a4U-cM-VOZ" id="LtE-FN-O7a"/>
</connections>
</menuItem>
<menuItem title="Playlist From Selection" keyEquivalent="N" id="tAA-MA-JD3">
<connections>
<action selector="newPlaylistFromSelection:" target="Voe-Tx-rLC" id="fos-br-JsV"/>
<action selector="newPlaylistFromSelection:" target="a4U-cM-VOZ" id="IZI-Rc-cI1"/>
</connections>
</menuItem>
<menuItem title="Smart Playlist..." keyEquivalent="n" id="wj2-JD-Uje">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="newSmartPlaylist:" target="Voe-Tx-rLC" id="zkM-6j-ts7"/>
<action selector="newSmartPlaylist:" target="a4U-cM-VOZ" id="qxw-V4-nlx"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Add to Library..." keyEquivalent="o" id="qMV-Bb-1Lb">
<connections>
<action selector="addToLibrary:" target="Voe-Tx-rLC" id="CPH-2g-kqO"/>
<action selector="openFiles:" target="a4U-cM-VOZ" id="dx2-TL-k0x"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
<menuItem title="Import iTunes Library..." id="T9K-M0-CcC">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="openImportWindow:" target="Voe-Tx-rLC" id="Z3F-f1-zAZ"/>
<action selector="openImportWindow:" target="a4U-cM-VOZ" id="Io0-rq-VOl"/>
</connections>
</menuItem>
</items>
Expand Down Expand Up @@ -339,18 +342,18 @@
</menuItem>
<menuItem title="Jump to Current Song" keyEquivalent="l" id="5Oc-Sz-LBf" userLabel="Jump to Current Song">
<connections>
<action selector="jumpToCurrentSong:" target="Voe-Tx-rLC" id="jbc-N3-Rgx"/>
<action selector="jumpToCurrentSong:" target="a4U-cM-VOZ" id="H9z-tM-DfH"/>
</connections>
</menuItem>
<menuItem title="Jump to Selection" keyEquivalent="l" id="bmP-UI-9z3">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="jumpToSelection:" target="Voe-Tx-rLC" id="ABi-VT-gkf"/>
<action selector="jumpToSelection:" target="a4U-cM-VOZ" id="A7k-KA-cgN"/>
</connections>
</menuItem>
<menuItem title="Album Art" keyEquivalent="t" id="hYx-vO-dOM">
<connections>
<action selector="toggleAlbumArt:" target="Voe-Tx-rLC" id="ny8-8K-Gun"/>
<action selector="toggleAlbumArt:" target="a4U-cM-VOZ" id="K8M-BL-A1G"/>
</connections>
</menuItem>
</items>
Expand All @@ -362,7 +365,7 @@
<items>
<menuItem title="Manage Library..." keyEquivalent="L" id="bBy-Ti-uZG">
<connections>
<action selector="openLibraryManager:" target="Voe-Tx-rLC" id="OlN-XK-LQX"/>
<action selector="openLibraryManager:" target="a4U-cM-VOZ" id="MQI-j8-jX8"/>
</connections>
</menuItem>
</items>
Expand All @@ -375,39 +378,39 @@
<menuItem title="Pause" id="CUH-bU-TD7">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="pauseMenuItemAction:" target="Voe-Tx-rLC" id="Vfg-te-K5f"/>
<action selector="pauseMenuItemAction:" target="a4U-cM-VOZ" id="kyx-fy-HrO"/>
</connections>
</menuItem>
<menuItem title="Play" id="FED-Mj-mou">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="playMenuItemAction:" target="Voe-Tx-rLC" id="Q41-X1-9X3"/>
<action selector="playMenuItemAction:" target="a4U-cM-VOZ" id="cWI-jW-Bdl"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="oUl-bH-bXi"/>
<menuItem title="Next" id="ifz-C1-1yU">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="nextMenuItemAction:" target="Voe-Tx-rLC" id="EQi-dp-60B"/>
<action selector="nextMenuItemAction:" target="a4U-cM-VOZ" id="Pqd-uz-ReQ"/>
</connections>
</menuItem>
<menuItem title="Previous" id="Ezj-5Q-6Kd">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="previousMenuItemAction:" target="Voe-Tx-rLC" id="kmv-Ac-g30"/>
<action selector="previousMenuItemAction:" target="a4U-cM-VOZ" id="zIi-y5-PMV"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="Neq-FW-kKB"/>
<menuItem title="Shuffle" id="b4e-W9-bct">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="shuffleMenuItemAction:" target="Voe-Tx-rLC" id="9u7-S6-CUS"/>
<action selector="shuffleMenuItemAction:" target="a4U-cM-VOZ" id="SDa-uv-zev"/>
</connections>
</menuItem>
<menuItem title="Repeat" id="2KZ-Mz-PQy">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="repeatMenuItemAction:" target="Voe-Tx-rLC" id="04r-MM-Jiy"/>
<action selector="repeatMenuItemAction:" target="a4U-cM-VOZ" id="Jj0-D3-zJm"/>
</connections>
</menuItem>
</items>
Expand All @@ -429,18 +432,6 @@
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="JXu-Wd-CrQ"/>
<menuItem title="jmc" id="uQV-fL-2eI">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showMainWindow:" target="Voe-Tx-rLC" id="Y9p-w9-GYJ"/>
</connections>
</menuItem>
<menuItem title="Equalizer" keyEquivalent="e" id="yTZ-KO-ido">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="testyThing:" target="Voe-Tx-rLC" id="edV-gV-vdN"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="l6d-n2-K0h"/>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
Expand Down
39 changes: 3 additions & 36 deletions jmc/Delegate:Main Window Controller/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
var addFilesQueueLoop: AddFilesQueueLoop?
var lastFMDelegate: LastFMDelegate?
var mediaKeyListener: MediaKeyListener?

@IBOutlet weak var jmcWindowMenuItem: NSMenuItem!
@IBOutlet weak var equalizerWindowMenuItem: NSMenuItem!

@IBOutlet weak var shuffleMenuItem: NSMenuItem!
@IBOutlet weak var repeatMenuItem: NSMenuItem!
@IBOutlet var menuDelegate: MainMenuDelegate!


func alertForErrors(_ errors: [Error]) {
Expand All @@ -60,8 +55,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
//self.serviceBrowser = ConnectivityManager(delegate: self, slvc: mainWindowController!.sourceListViewController!)
let defaultsEQOnState = UserDefaults.standard.integer(forKey: DEFAULTS_IS_EQ_ENABLED_STRING)
audioModule.toggleEqualizer(defaultsEQOnState)
NotificationCenter.default.addObserver(self, selector: #selector(mainWindowDidClose), name: NSWindow.willCloseNotification, object: mainWindowController!.window)
jmcWindowMenuItem.state = NSControl.StateValue.on
}

func launchAddFilesDialog() {
Expand Down Expand Up @@ -123,41 +116,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
preferencesWindowController = PreferencesWindowController(windowNibName: NSNib.Name(rawValue: "PreferencesWindowController"))
preferencesWindowController?.showWindow(self)
}

func showEqualizer() {
print("show equalizer called")
if self.equalizerWindowController == nil {
self.equalizerWindowController = EqualizerWindowController(windowNibName: NSNib.Name(rawValue: "EqualizerWindowController"))
self.equalizerWindowController?.audioModule = self.audioModule
}
if self.equalizerWindowController?.window?.isVisible == nil || self.equalizerWindowController?.window?.isVisible == false {
self.equalizerWindowController?.showWindow(self)
}
NotificationCenter.default.addObserver(self, selector: #selector(equalizerDidClose), name: NSWindow.willCloseNotification, object: equalizerWindowController!.window)
equalizerWindowMenuItem.state = NSControl.StateValue.on
}


@IBAction func showAdvancedFilter(_ sender: AnyObject) {
if let item = sender as? NSMenuItem {
item.state = item.state == NSControl.StateValue.on ? NSControl.StateValue.off : NSControl.StateValue.on
}
mainWindowController?.advancedFilterButtonPressed(self)
}

@IBAction func testyThing(_ sender: AnyObject) {
showEqualizer()
}

@objc func mainWindowDidClose() {
print("main window did close called")
jmcWindowMenuItem.state = NSControl.StateValue.off
}

@objc func equalizerDidClose() {
print("equalizer did close called")
equalizerWindowMenuItem.state = NSControl.StateValue.off
}

func applicationDidFinishLaunching(_ aNotification: Notification) {
for fetchRequest in BATCH_PURGE_NETWORK_FETCH_REQUESTS {
do {
Expand All @@ -183,6 +149,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
//NotificationCenter.default.addObserver(self, selector: #selector(managedObjectsDidChangeDebug), name: Notification.Name.NSManagedObjectContextObjectsDidChange, object: managedObjectContext)
NotificationCenter.default.addObserver(self, selector: #selector(managedObjectsDidUndo), name: Notification.Name.NSUndoManagerDidUndoChange, object: managedObjectContext.undoManager)
self.mediaKeyListener = MediaKeyListener(self)
self.menuDelegate.delegate = self
}

@objc func managedObjectsDidUndo() {
Expand Down
20 changes: 16 additions & 4 deletions jmc/Delegate:Main Window Controller/MainWindowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,18 @@ class MainWindowController: NSWindowController, NSSearchFieldDelegate, NSWindowD
}
}

@IBAction func toggleEqualizer(_ sender: Any) {
print("show equalizer called")
if self.delegate.equalizerWindowController == nil {
self.delegate.equalizerWindowController = EqualizerWindowController(windowNibName: NSNib.Name(rawValue: "EqualizerWindowController"))
self.delegate.equalizerWindowController?.audioModule = self.delegate.audioModule
}
if self.delegate.equalizerWindowController?.window?.isVisible == nil || self.delegate.equalizerWindowController?.window?.isVisible == false {
self.delegate.equalizerWindowController?.showWindow(self)
}
self.delegate.equalizerWindowController?.window?.makeKeyAndOrderFront(nil)
}

func launchGetInfo(_ tracks: [Track]) {
self.tagWindowController = TagEditorWindow(windowNibName: NSNib.Name(rawValue: "TagEditorWindow"))
self.tagWindowController?.mainWindowController = self
Expand Down Expand Up @@ -307,12 +319,12 @@ class MainWindowController: NSWindowController, NSSearchFieldDelegate, NSWindowD
self.will_repeat = true
UserDefaults.standard.set(false, forKey: DEFAULTS_REPEAT_STRING)
}
delegate?.repeatMenuItem.state = repeatButton.state
delegate?.menuDelegate.repeatMenuItem.state = repeatButton.state
}

@IBAction func shuffleButtonPressed(_ sender: AnyObject) {
trackQueueViewController?.shufflePressed(shuffleButton.state.rawValue)
delegate?.shuffleMenuItem.state = shuffleButton.state
delegate?.menuDelegate.shuffleMenuItem.state = shuffleButton.state
}

@IBAction func skipBackward(_ sender: Any) {
Expand Down Expand Up @@ -897,8 +909,8 @@ class MainWindowController: NSWindowController, NSSearchFieldDelegate, NSWindowD
clickRecognizer.numberOfClicksRequired = 1
clickRecognizer.action = #selector(durationLabelOnClick)
durationLabel.addGestureRecognizer(clickRecognizer)
delegate?.shuffleMenuItem.state = shuffleButton.state
delegate?.repeatMenuItem.state = repeatButton.state
delegate?.menuDelegate.shuffleMenuItem.state = shuffleButton.state
delegate?.menuDelegate.repeatMenuItem.state = repeatButton.state
self.window?.isMovableByWindowBackground = true
UserDefaults.standard.set(false, forKey: jmcDarkAppearanceOption)
if UserDefaults.standard.bool(forKey: jmcDarkAppearanceOption) {
Expand Down
Loading

0 comments on commit 6d23d60

Please sign in to comment.