mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-13 08:43:27 +01:00
[AltServer] Hides "Sideload .ipa" menu item by default
Manual sideloading is intended to be a fallback for situations where AltStore cannot be used. To emphasize this, we hide the option by default unless the user holds the Option key.
This commit is contained in:
@@ -41,6 +41,8 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
@IBOutlet private var launchAtLoginMenuItem: NSMenuItem!
|
||||
@IBOutlet private var installMailPluginMenuItem: NSMenuItem!
|
||||
@IBOutlet private var installAltStoreMenuItem: NSMenuItem!
|
||||
@IBOutlet private var sideloadAppMenuItem: NSMenuItem!
|
||||
|
||||
private weak var authenticationAppleIDTextField: NSTextField?
|
||||
private weak var authenticationPasswordTextField: NSSecureTextField?
|
||||
@@ -67,6 +69,9 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
self.appMenu.delegate = self
|
||||
|
||||
self.sideloadAppMenuItem.keyEquivalentModifierMask = .option
|
||||
self.sideloadAppMenuItem.isAlternate = true
|
||||
|
||||
let placeholder = NSLocalizedString("No Connected Devices", comment: "")
|
||||
|
||||
self.connectedDevicesMenuController = MenuController<ALTDevice>(menu: self.connectedDevicesMenu, items: [])
|
||||
@@ -491,6 +496,28 @@ extension AppDelegate: NSMenuDelegate
|
||||
// Clearing _jitAppListMenuControllers now prevents action handler from being called.
|
||||
// self._jitAppListMenuControllers = []
|
||||
}
|
||||
|
||||
func menu(_ menu: NSMenu, willHighlight item: NSMenuItem?)
|
||||
{
|
||||
guard menu == self.appMenu else { return }
|
||||
|
||||
// The submenu won't update correctly if the user holds/releases
|
||||
// the Option key while the submenu is visible.
|
||||
// Workaround: temporarily set submenu to nil to dismiss it,
|
||||
// which will then cause the correct submenu to appear.
|
||||
|
||||
let previousItem: NSMenuItem
|
||||
switch item
|
||||
{
|
||||
case self.sideloadAppMenuItem: previousItem = self.installAltStoreMenuItem
|
||||
case self.installAltStoreMenuItem: previousItem = self.sideloadAppMenuItem
|
||||
default: return
|
||||
}
|
||||
|
||||
let submenu = previousItem.submenu
|
||||
previousItem.submenu = nil
|
||||
previousItem.submenu = submenu
|
||||
}
|
||||
}
|
||||
|
||||
extension AppDelegate: NSTextFieldDelegate
|
||||
|
||||
Reference in New Issue
Block a user