Skip to content
This repository was archived by the owner on Sep 16, 2023. It is now read-only.

Commit 2ce390d

Browse files
svobsCarterLi
authored andcommitted
Fix bug: menu items with variable titles and values failed to reset to their defaults after their key bindings were removed
1 parent fa24401 commit 2ce390d

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

iina/MenuController.swift

+10-16
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,6 @@ class MenuController: NSObject, NSMenuDelegate {
207207
jumpTo.action = #selector(MainMenuActionHandler.menuJumpTo(_:))
208208

209209
// -- speed
210-
(speedUp.representedObject,
211-
speedUpSlightly.representedObject,
212-
speedDown.representedObject,
213-
speedDownSlightly.representedObject) = (2.0, 1.1, 0.5, 0.9)
214210
[speedUp, speedDown, speedUpSlightly, speedDownSlightly, speedReset].forEach { item in
215211
item?.action = #selector(MainMenuActionHandler.menuChangeSpeed(_:))
216212
}
@@ -314,20 +310,12 @@ class MenuController: NSObject, NSMenuDelegate {
314310
audioTrackMenu.delegate = self
315311

316312
// - volume
317-
(increaseVolume.representedObject,
318-
decreaseVolume.representedObject,
319-
increaseVolumeSlightly.representedObject,
320-
decreaseVolumeSlightly.representedObject) = (5, -5, 1, -1)
321313
[increaseVolume, decreaseVolume, increaseVolumeSlightly, decreaseVolumeSlightly].forEach { item in
322314
item?.action = #selector(MainMenuActionHandler.menuChangeVolume(_:))
323315
}
324316
mute.action = #selector(MainMenuActionHandler.menuToggleMute(_:))
325317

326318
// - audio delay
327-
(increaseAudioDelay.representedObject,
328-
increaseAudioDelaySlightly.representedObject,
329-
decreaseAudioDelay.representedObject,
330-
decreaseAudioDelaySlightly.representedObject) = (0.5, 0.1, -0.5, -0.1)
331319
[increaseAudioDelay, decreaseAudioDelay, increaseAudioDelaySlightly, decreaseAudioDelaySlightly].forEach { item in
332320
item?.action = #selector(MainMenuActionHandler.menuChangeAudioDelay(_:))
333321
}
@@ -360,10 +348,6 @@ class MenuController: NSObject, NSMenuDelegate {
360348
}
361349

362350
// - delay
363-
(increaseSubDelay.representedObject,
364-
increaseSubDelaySlightly.representedObject,
365-
decreaseSubDelay.representedObject,
366-
decreaseSubDelaySlightly.representedObject) = (0.5, 0.1, -0.5, -0.1)
367351
[increaseSubDelay, decreaseSubDelay, increaseSubDelaySlightly, decreaseSubDelaySlightly].forEach { item in
368352
item?.action = #selector(MainMenuActionHandler.menuChangeSubDelay(_:))
369353
}
@@ -733,9 +717,19 @@ class MenuController: NSObject, NSMenuDelegate {
733717
break
734718
}
735719
}
720+
736721
if !bound {
737722
menuItem.keyEquivalent = ""
738723
menuItem.keyEquivalentModifierMask = []
724+
725+
// Need to regenerate `title` and `representedObject` from their default values.
726+
// This is needed for the case where the menu item previously matched to a key binding, but now there is no match.
727+
// Obviously this is a little kludgey, but it avoids having to do a big refactor and/or writing a bunch of new code.
728+
let (_, value) = sameKeyAction(actions, actions, normalizeLastNum, numRange)
729+
if let value = value, let l10nKey = l10nKey {
730+
menuItem.title = String(format: NSLocalizedString("menu." + l10nKey, comment: ""), abs(value))
731+
menuItem.representedObject = value
732+
}
739733
}
740734
}
741735
}

0 commit comments

Comments
 (0)