From bdb718598ee35d182784bb9774c8ddbfffb3b602 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Fri, 23 Sep 2022 16:46:13 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Various=20bugfixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixes issue with `scanApps` being non-optional in custom configuration - Fixes issue with position of separator if Xdebug is not detected - Ensure that `isRunningSwiftUIPreview` modifier always return false for debug builds --- phpmon/Domain/Menu/MainMenu+Startup.swift | 4 ++-- phpmon/Domain/Menu/StatusMenu+Items.swift | 4 ++-- phpmon/Domain/Menu/StatusMenu.swift | 3 ++- phpmon/Domain/Preferences/CustomPrefs.swift | 2 +- phpmon/Domain/SwiftUI/Common/SwiftUIHelper.swift | 9 +++++++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/phpmon/Domain/Menu/MainMenu+Startup.swift b/phpmon/Domain/Menu/MainMenu+Startup.swift index 6cc8e4b1..08072a83 100644 --- a/phpmon/Domain/Menu/MainMenu+Startup.swift +++ b/phpmon/Domain/Menu/MainMenu+Startup.swift @@ -155,11 +155,11 @@ extension MainMenu { App.shared.detectedApplications = Application.detectPresetApplications() - let customApps = Preferences.custom.scanApps.map { appName in + let customApps = Preferences.custom.scanApps?.map { appName in return Application(appName, .user_supplied) }.filter { app in return app.isInstalled() - } + } ?? [] App.shared.detectedApplications.append(contentsOf: customApps) diff --git a/phpmon/Domain/Menu/StatusMenu+Items.swift b/phpmon/Domain/Menu/StatusMenu+Items.swift index 07a28d74..1bc29715 100644 --- a/phpmon/Domain/Menu/StatusMenu+Items.swift +++ b/phpmon/Domain/Menu/StatusMenu+Items.swift @@ -216,14 +216,14 @@ extension StatusMenu { } addItems([ - NSMenuItem.separator(), NSMenuItem(title: "mi_xdebug_mode".localized, submenu: [ HeaderView.asMenuItem(text: "mi_xdebug_available_modes".localized) ] + Xdebug.asMenuItems() + [ HeaderView.asMenuItem(text: "mi_xdebug_actions".localized), NSMenuItem(title: "mi_xdebug_disable_all".localized, action: #selector(MainMenu.disableAllXdebugModes)) - ], target: MainMenu.shared) + ], target: MainMenu.shared), + NSMenuItem.separator() ], target: MainMenu.shared) } diff --git a/phpmon/Domain/Menu/StatusMenu.swift b/phpmon/Domain/Menu/StatusMenu.swift index 70d5d18a..2dd9da94 100644 --- a/phpmon/Domain/Menu/StatusMenu.swift +++ b/phpmon/Domain/Menu/StatusMenu.swift @@ -48,8 +48,9 @@ class StatusMenu: NSMenu { if Preferences.isEnabled(.displayExtensions) { addExtensionsMenuItems() - addXdebugMenuItem() NSMenuItem.separator() + + addXdebugMenuItem() } addPhpDoctorMenuItem() diff --git a/phpmon/Domain/Preferences/CustomPrefs.swift b/phpmon/Domain/Preferences/CustomPrefs.swift index 22d2c242..f56dcd4b 100644 --- a/phpmon/Domain/Preferences/CustomPrefs.swift +++ b/phpmon/Domain/Preferences/CustomPrefs.swift @@ -9,7 +9,7 @@ import Foundation struct CustomPrefs: Decodable { - let scanApps: [String] + let scanApps: [String]? let presets: [Preset]? let services: [String]? let environmentVariables: [String: String]? diff --git a/phpmon/Domain/SwiftUI/Common/SwiftUIHelper.swift b/phpmon/Domain/SwiftUI/Common/SwiftUIHelper.swift index 332cc833..35988367 100644 --- a/phpmon/Domain/SwiftUI/Common/SwiftUIHelper.swift +++ b/phpmon/Domain/SwiftUI/Common/SwiftUIHelper.swift @@ -10,8 +10,13 @@ import Foundation import SwiftUI var isRunningSwiftUIPreview: Bool { - return ProcessInfo.processInfo - .environment["XCODE_RUNNING_FOR_PREVIEWS"] != nil + #if DEBUG + // If running SwiftUI *and* when debugging + return ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] != nil + #else + // Release builds should always return false here + return false + #endif } extension Color {