Skip to content

Commit f5ea0f9

Browse files
committed
use show/hide instead of toggle
matches the sidebar
1 parent 42879aa commit f5ea0f9

File tree

4 files changed

+68
-3
lines changed

4 files changed

+68
-3
lines changed

Submariner.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
3E70B2DF2A2BDC55002C0B93 /* SBApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E70B2DE2A2BDC55002C0B93 /* SBApplication.swift */; };
5151
3E70B2E12A2D52A1002C0B93 /* SBPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E70B2E02A2D52A1002C0B93 /* SBPlayer.swift */; };
5252
3E7491972B6A1AE00052CBCE /* SBTracklistController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E7491962B6A1AE00052CBCE /* SBTracklistController.swift */; };
53+
3E8124272BEFF4F80060DDAF /* SBToggleNameTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E8124262BEFF4F80060DDAF /* SBToggleNameTransformer.swift */; };
5354
3E82701827E653F0007E5695 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E82701727E653F0007E5695 /* MediaPlayer.framework */; };
5455
3E87E90E2B43557400E85000 /* SBServerSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E87E90D2B43557400E85000 /* SBServerSearchController.swift */; };
5556
3E87E9102B4364CF00E85000 /* Collection+IndexSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E87E90F2B4364CF00E85000 /* Collection+IndexSet.swift */; };
@@ -207,6 +208,7 @@
207208
3E70B2DE2A2BDC55002C0B93 /* SBApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBApplication.swift; sourceTree = "<group>"; };
208209
3E70B2E02A2D52A1002C0B93 /* SBPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBPlayer.swift; sourceTree = "<group>"; };
209210
3E7491962B6A1AE00052CBCE /* SBTracklistController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBTracklistController.swift; sourceTree = "<group>"; };
211+
3E8124262BEFF4F80060DDAF /* SBToggleNameTransformer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBToggleNameTransformer.swift; sourceTree = "<group>"; };
210212
3E82701727E653F0007E5695 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
211213
3E87E90D2B43557400E85000 /* SBServerSearchController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBServerSearchController.swift; sourceTree = "<group>"; };
212214
3E87E90F2B4364CF00E85000 /* Collection+IndexSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Collection+IndexSet.swift"; sourceTree = "<group>"; };
@@ -387,6 +389,7 @@
387389
3EA929B829E4766900938582 /* SBVolumeIconTransformer.swift */,
388390
3E45201729F5DBDC00604079 /* SBTrackArtistNameTransformer.swift */,
389391
3EC5A6442A019B5C00025812 /* SBRepeatModeButtonStateTransformer.swift */,
392+
3E8124262BEFF4F80060DDAF /* SBToggleNameTransformer.swift */,
390393
);
391394
name = "Value Transformers";
392395
sourceTree = "<group>";
@@ -866,6 +869,7 @@
866869
3E5C42E029846E25009B9699 /* SBOnboardingController.swift in Sources */,
867870
3EC03B4A29F4F2E0001FDE50 /* SBLibrary.swift in Sources */,
868871
3EC03B3E29F4F2E0001FDE50 /* SBCover.swift in Sources */,
872+
3E8124272BEFF4F80060DDAF /* SBToggleNameTransformer.swift in Sources */,
869873
3EA929B729E4745600938582 /* SBRepeatIconTransformer.swift in Sources */,
870874
4CFB3E07139CEA76008DC01A /* NSOutlineView+Expand.m in Sources */,
871875
3E04F60F2B771C4500E24E56 /* SBEditServerController.swift in Sources */,

Submariner/SBAppDelegate.swift

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fileprivate let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, catego
1616

1717
// #MARK: - Initialization
1818

19-
let databaseController: SBDatabaseController
19+
@objc let databaseController: SBDatabaseController
2020
let preferencesController: SBPreferencesController
2121

2222
override init() {
@@ -53,6 +53,16 @@ fileprivate let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, catego
5353
let allTransName = NSValueTransformerName(rawValue: "SBRepeatModeAllTransformer")
5454
ValueTransformer.setValueTransformer(allTrans, forName: allTransName)
5555

56+
let tracklistTrans = SBToggleNameTransformer(name: "Tracklist")
57+
let tracklistTransName = NSValueTransformerName(rawValue: "SBToggleTracklistNameTransformer")
58+
ValueTransformer.setValueTransformer(tracklistTrans, forName: tracklistTransName)
59+
let serverUsersTrans = SBToggleNameTransformer(name: "Server Users")
60+
let serverUsersTransName = NSValueTransformerName(rawValue: "SBToggleServerUsersNameTransformer")
61+
ValueTransformer.setValueTransformer(serverUsersTrans, forName: serverUsersTransName)
62+
let inspectorTrans = SBToggleNameTransformer(name: "Inspector")
63+
let inspectorTransName = NSValueTransformerName(rawValue: "SBToggleInspectorNameTransformer")
64+
ValueTransformer.setValueTransformer(inspectorTrans, forName: inspectorTransName)
65+
5666
// #MARK: Init Core Data (managed object model)
5767
let modelURL = Bundle.main.url(forResource: "Submariner", withExtension: "momd")!
5868
self.managedObjectModel = NSManagedObjectModel(contentsOf: modelURL)!
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//
2+
// SBToggleNameTransformer.swift
3+
// Submariner
4+
//
5+
// Created by Calvin Buckley on 2024-05-11.
6+
//
7+
// Copyright (c) 2024 Calvin Buckley
8+
// SPDX-License-Identifier: BSD-3-Clause
9+
//
10+
11+
import Cocoa
12+
13+
@objc(SBToggleNameTransformer) class SBToggleNameTransformer: ValueTransformer {
14+
let name: String
15+
16+
init(name: String) {
17+
self.name = name
18+
super.init()
19+
}
20+
21+
override class func allowsReverseTransformation() -> Bool {
22+
return false
23+
}
24+
25+
override class func transformedValueClass() -> AnyClass {
26+
return NSString.self
27+
}
28+
29+
override func transformedValue(_ value: Any?) -> Any? {
30+
if let valueNumber = value as? NSNumber?, valueNumber == true {
31+
return "Hide \(name)"
32+
} else {
33+
return "Show \(name)"
34+
}
35+
}
36+
}

Submariner/en.lproj/MainMenu.xib

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
33
<dependencies>
44
<deployment identifier="macosx"/>
5-
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22689"/>
66
</dependencies>
77
<objects>
88
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
@@ -255,16 +255,31 @@ CA
255255
<menuItem title="Toggle Tracklist" keyEquivalent="t" id="542">
256256
<connections>
257257
<action selector="toogleTracklist:" target="494" id="543"/>
258+
<binding destination="494" name="title" keyPath="databaseController.isTracklistShown" id="JbC-6M-aWY">
259+
<dictionary key="options">
260+
<string key="NSValueTransformerName">SBToggleTracklistNameTransformer</string>
261+
</dictionary>
262+
</binding>
258263
</connections>
259264
</menuItem>
260265
<menuItem title="Toggle Server Users" keyEquivalent="u" id="QXo-h3-Ijg">
261266
<connections>
262267
<action selector="toggleServerUsers:" target="494" id="QuS-kO-6Ep"/>
268+
<binding destination="494" name="title" keyPath="databaseController.isServerUsersShown" id="QHk-o3-Uba">
269+
<dictionary key="options">
270+
<string key="NSValueTransformerName">SBToggleServerUsersNameTransformer</string>
271+
</dictionary>
272+
</binding>
263273
</connections>
264274
</menuItem>
265275
<menuItem title="Toggle Inspector" keyEquivalent="i" id="iey-02-CZw">
266276
<connections>
267277
<action selector="toggleInspector:" target="-1" id="dnq-Zg-KFV"/>
278+
<binding destination="494" name="title" keyPath="databaseController.isInspectorShown" id="96N-7Z-d9s">
279+
<dictionary key="options">
280+
<string key="NSValueTransformerName">SBToggleInspectorNameTransformer</string>
281+
</dictionary>
282+
</binding>
268283
</connections>
269284
</menuItem>
270285
<menuItem isSeparatorItem="YES" id="2b6-cD-4uz"/>

0 commit comments

Comments
 (0)