| | |
| | | private var statusItem: NSStatusItem? |
| | | private var verticalWaterfallViewModeMenuItems: [NSMenuItem] = [] |
| | | private var horizontalWaterfallViewModeMenuItems: [NSMenuItem] = [] |
| | | private let performanceDiagnosticsExporter = PerformanceDiagnosticsExporter() |
| | | |
| | | func applicationDidFinishLaunching(_ notification: Notification) { |
| | | let bundlePathSummary = DevelopmentDiagnostics.pathSummary(Bundle.main.bundlePath) |
| | |
| | | menu.addItem(menuItem(title: "Settings...", action: #selector(showSettingsFromMenu), keyEquivalent: "")) |
| | | menu.addItem(.separator()) |
| | | menu.addItem(menuItem(title: "Check Permissions...", action: #selector(showPermissions), keyEquivalent: "")) |
| | | menu.addItem(menuItem(title: "Export Performance Diagnostics...", action: #selector(exportPerformanceDiagnostics), keyEquivalent: "")) |
| | | menu.addItem(.separator()) |
| | | menu.addItem(menuItem(title: "Show Quick Switch", action: #selector(showQuickSwitchFromMenu), keyEquivalent: "")) |
| | | menu.addItem(menuItem(title: "Hide Quick Switch", action: #selector(hideQuickSwitchFromMenu), keyEquivalent: "")) |
| | |
| | | appMenu.addItem(menuItem(title: "Settings...", action: #selector(showSettingsFromMenu), keyEquivalent: ",")) |
| | | appMenu.addItem(.separator()) |
| | | appMenu.addItem(menuItem(title: "Check Permissions...", action: #selector(showPermissions), keyEquivalent: "")) |
| | | appMenu.addItem(menuItem(title: "Export Performance Diagnostics...", action: #selector(exportPerformanceDiagnostics), keyEquivalent: "")) |
| | | appMenu.addItem(menuItem(title: "Show Quick Switch", action: #selector(showQuickSwitchFromMenu), keyEquivalent: "")) |
| | | appMenu.addItem(menuItem(title: "Hide Quick Switch", action: #selector(hideQuickSwitchFromMenu), keyEquivalent: "")) |
| | | appMenu.addItem(quickSwitchViewModeMenuItem()) |
| | |
| | | return [ |
| | | "hasAboutItem": statusItem?.menu?.item(withTitle: "About Aligner...") != nil, |
| | | "hasSettingsItem": statusItem?.menu?.item(withTitle: "Settings...") != nil, |
| | | "hasExportPerformanceDiagnosticsItem": statusItem?.menu?.item(withTitle: "Export Performance Diagnostics...") != nil, |
| | | "hasQuickSwitchViewSubmenu": statusItem?.menu?.item(withTitle: "Quick Switch View")?.submenu != nil, |
| | | "hasVerticalColumnsItem": verticalItem != nil, |
| | | "hasHorizontalWaterfallItem": horizontalItem != nil, |
| | |
| | | "hasAppMenu": appMenu != nil, |
| | | "hasAboutItem": appMenu?.item(withTitle: "About Aligner...") != nil, |
| | | "hasSettingsItem": appMenu?.item(withTitle: "Settings...") != nil, |
| | | "hasExportPerformanceDiagnosticsItem": appMenu?.item(withTitle: "Export Performance Diagnostics...") != nil, |
| | | "settingsKeyEquivalent": appMenu?.item(withTitle: "Settings...")?.keyEquivalent ?? "", |
| | | "hasQuickSwitchViewSubmenuInAppMenu": appMenu?.item(withTitle: "Quick Switch View")?.submenu != nil, |
| | | "hasQuickSwitchViewSubmenuInViewMenu": viewMenu?.item(withTitle: "Quick Switch View")?.submenu != nil |
| | |
| | | openSettingsWindow(source: "menu") |
| | | } |
| | | |
| | | @objc private func exportPerformanceDiagnostics() { |
| | | let versionBuild = appVersionBuild() |
| | | let preferences = preferenceStore.read() |
| | | let quickSwitch = quickSwitchSessionController?.performanceDiagnosticSummary() ?? [ |
| | | "snapshotLoaded": false, |
| | | "quickSwitchVisible": false, |
| | | "applicationCount": 0, |
| | | "windowCount": 0, |
| | | "applications": [] |
| | | ] |
| | | performanceDiagnosticsExporter.export( |
| | | version: versionBuild.version, |
| | | build: versionBuild.build, |
| | | preferences: preferences, |
| | | accessibility: permissionStatusString(accessibilityStatus()), |
| | | screenRecording: permissionStatusString(screenRecordingStatus()), |
| | | quickSwitch: quickSwitch |
| | | ) |
| | | } |
| | | |
| | | private func showSettingsFromQuickSwitch() { |
| | | openSettingsWindow(source: "quickSwitch") |
| | | } |