mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +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
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="18122"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19162"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
@@ -63,8 +63,10 @@
|
||||
<outlet property="authenticationPasswordTextField" destination="9rp-Vx-rvB" id="ZoC-DI-jzQ"/>
|
||||
<outlet property="connectedDevicesMenu" destination="KJ9-WY-pW1" id="Mcv-64-iFU"/>
|
||||
<outlet property="enableJITMenu" destination="la4-Sa-L3C" id="YrW-hR-uA7"/>
|
||||
<outlet property="installAltStoreMenuItem" destination="MJ8-Lt-SSV" id="KYp-c5-8Ru"/>
|
||||
<outlet property="installMailPluginMenuItem" destination="3CM-gV-X2G" id="lio-ha-z0S"/>
|
||||
<outlet property="launchAtLoginMenuItem" destination="IyR-FQ-upe" id="Fxn-EP-hwH"/>
|
||||
<outlet property="sideloadAppMenuItem" destination="x0e-zI-0A2" id="GJo-FY-1GO"/>
|
||||
<outlet property="sideloadIPAConnectedDevicesMenu" destination="IuI-bV-fTY" id="QQw-St-HfG"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
|
||||
Reference in New Issue
Block a user