From c602ca334a64cf09d3529aaf3a42a3a8068f3ca8 Mon Sep 17 00:00:00 2001 From: Qiu Yuzhou Date: Fri, 23 Oct 2026 19:43:25 +0800 Subject: [PATCH] feat(menu): add diagnostics window entry --- ShadowsocksX-NG2/App/Composition/MainApp.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ShadowsocksX-NG2/App/Composition/MainApp.swift b/ShadowsocksX-NG2/App/Composition/MainApp.swift index 1f50b785..d86d4741 100644 --- a/ShadowsocksX-NG2/App/Composition/MainApp.swift +++ b/ShadowsocksX-NG2/App/Composition/MainApp.swift @@ -74,6 +74,9 @@ struct ShadowsocksXNG2App: App { workspaceContent .modifier(WindowActivationPolicy(coordinator: windowActivation)) } + .commands { + DiagnosticsCommands() + } .defaultLaunchBehavior(launchPresentation) .defaultSize(width: 960, height: 640) .windowToolbarLabelStyle($toolbarLabelStyle) @@ -112,6 +115,19 @@ struct ShadowsocksXNG2App: App { } } +/// 应用名称菜单中的诊断窗口入口。 +private struct DiagnosticsCommands: Commands { + @Environment(\.openWindow) private var openWindow + + var body: some Commands { + CommandGroup(after: .appInfo) { + Button("诊断…") { + openWindow(id: DiagnosticsWindowState.sceneID) + } + } + } +} + /// 随窗激活策略与激活重试的真实 NSApp 落点。 @MainActor private final class NSAppWindowActivationApplier: WindowActivationPolicyApplying {