From 943b5aa6afa5289bb6d780bb14081f2145c9959c Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Tue, 18 Jul 2023 19:51:31 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Code=20reorganization?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was necessary to do some summer cleaning. Here's what's changed: * First, I'm taking a new modular approach to Swift-based components that are part of PHP Monitor. * I've fixed the naming of various parts of the app. I plan on doing an even deeper check in the future. The following are affected: - "PHP Formulae Status" is now known as "PHP Version Manager". - "Warnings List" is now known as "PHP Doctor". - The associated window controllers have also been updated. (I've also added a new module: "PHP Config Editor". We'll see what that brings in the future... but the main purpose will be to edit key PHP configuration values without needing to go to the .ini files.) --- PHP Monitor.xcodeproj/project.pbxproj | 222 +++++++++++------- phpmon/Domain/App/App.swift | 4 +- phpmon/Domain/Menu/MainMenu.swift | 2 +- .../UI/ConfigManagerView.swift | 43 ++++ .../PHP Doctor/Data}/PhpConfigChecker.swift | 1 - .../Modules/PHP Doctor/Data}/Warning.swift | 0 .../PHP Doctor/Data}/WarningManager.swift | 0 .../PHP Doctor/UI}/NoWarningsView.swift | 0 .../PHP Doctor/UI/PhpDoctorView.swift} | 8 +- .../UI/PhpDoctorWindowController.swift} | 14 +- .../PHP Doctor/UI}/WarningView.swift | 0 .../Data/BrewFormula+UI.swift} | 2 +- .../Data/Fake}/FakeBrewFormulaeHandler.swift | 0 .../Data}/PhpFormulaeStatus.swift | 0 .../UI}/BlockingOverlayView.swift | 0 .../UI/PhpVersionManagerView.swift} | 12 +- .../PhpVersionManagerWindowController.swift} | 14 +- 17 files changed, 212 insertions(+), 110 deletions(-) create mode 100644 phpmon/Domain/SwiftUI/Modules/PHP Config Editor/UI/ConfigManagerView.swift rename phpmon/Domain/{Warnings/Services => SwiftUI/Modules/PHP Doctor/Data}/PhpConfigChecker.swift (99%) rename phpmon/Domain/{Warnings => SwiftUI/Modules/PHP Doctor/Data}/Warning.swift (100%) rename phpmon/Domain/{Warnings => SwiftUI/Modules/PHP Doctor/Data}/WarningManager.swift (100%) rename phpmon/Domain/SwiftUI/{Warning => Modules/PHP Doctor/UI}/NoWarningsView.swift (100%) rename phpmon/Domain/SwiftUI/{Warning/WarningListView.swift => Modules/PHP Doctor/UI/PhpDoctorView.swift} (94%) rename phpmon/Domain/{Warnings/WarningsWindowController.swift => SwiftUI/Modules/PHP Doctor/UI/PhpDoctorWindowController.swift} (68%) rename phpmon/Domain/SwiftUI/{Warning => Modules/PHP Doctor/UI}/WarningView.swift (100%) rename phpmon/Domain/SwiftUI/{PhpManager/BrewFormulaUI.swift => Modules/PHP Version Manager/Data/BrewFormula+UI.swift} (96%) rename phpmon/Domain/SwiftUI/{PhpManager => Modules/PHP Version Manager/Data/Fake}/FakeBrewFormulaeHandler.swift (100%) rename phpmon/Domain/SwiftUI/{PhpManager => Modules/PHP Version Manager/Data}/PhpFormulaeStatus.swift (100%) rename phpmon/Domain/SwiftUI/{PhpManager => Modules/PHP Version Manager/UI}/BlockingOverlayView.swift (100%) rename phpmon/Domain/SwiftUI/{PhpManager/PhpFormulaeView.swift => Modules/PHP Version Manager/UI/PhpVersionManagerView.swift} (97%) rename phpmon/Domain/SwiftUI/{PhpManager/PhpVersionManagerWC.swift => Modules/PHP Version Manager/UI/PhpVersionManagerWindowController.swift} (73%) diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index baddca0..cf4d50a 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -82,10 +82,10 @@ C40D725B2A018ACC0054A067 /* PhpFormulaeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */; }; C40D725C2A018ACC0054A067 /* PhpFormulaeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */; }; C40D725D2A018ACC0054A067 /* PhpFormulaeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */; }; - C40D725F2A018AE30054A067 /* BrewFormulaUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */; }; - C40D72602A018AE30054A067 /* BrewFormulaUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */; }; - C40D72612A018AE30054A067 /* BrewFormulaUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */; }; - C40D72622A018AE30054A067 /* BrewFormulaUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */; }; + C40D725F2A018AE30054A067 /* BrewFormula+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */; }; + C40D72602A018AE30054A067 /* BrewFormula+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */; }; + C40D72612A018AE30054A067 /* BrewFormula+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */; }; + C40D72622A018AE30054A067 /* BrewFormula+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */; }; C40F505628ECA64E004AD45B /* TestableConfigurations.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40F505428ECA64E004AD45B /* TestableConfigurations.swift */; }; C40FE737282ABA4F00A302C2 /* AppVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40FE736282ABA4F00A302C2 /* AppVersion.swift */; }; C40FE738282ABA4F00A302C2 /* AppVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40FE736282ABA4F00A302C2 /* AppVersion.swift */; }; @@ -122,7 +122,7 @@ C41F3D08298AED0D0042ACBF /* System.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D3660A29113F20006BD146 /* System.swift */; }; C4205A7E27F4D21800191A39 /* ValetProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4205A7D27F4D21800191A39 /* ValetProxy.swift */; }; C4205A7F27F4D21800191A39 /* ValetProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4205A7D27F4D21800191A39 /* ValetProxy.swift */; }; - C422DDAA28A2C49900CEAC97 /* WarningListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* WarningListView.swift */; }; + C422DDAA28A2C49900CEAC97 /* PhpDoctorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */; }; C4232EE52612526500158FC6 /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = C4232EE42612526500158FC6 /* Credits.html */; }; C42337A3281F19F000459A48 /* Xdebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42337A2281F19F000459A48 /* Xdebug.swift */; }; C42759672627662800093CAE /* NSMenuExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42759662627662800093CAE /* NSMenuExtension.swift */; }; @@ -141,10 +141,10 @@ C436B39E29F3C42500B6A64E /* PreferencesTabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C436B39C29F3C42500B6A64E /* PreferencesTabs.swift */; }; C436B39F29F3C42500B6A64E /* PreferencesTabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C436B39C29F3C42500B6A64E /* PreferencesTabs.swift */; }; C436B3A029F3C42500B6A64E /* PreferencesTabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C436B39C29F3C42500B6A64E /* PreferencesTabs.swift */; }; - C43931C529C4BD610069165B /* PhpFormulaeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpFormulaeView.swift */; }; - C43931C629C4BD610069165B /* PhpFormulaeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpFormulaeView.swift */; }; - C43931C729C4BD610069165B /* PhpFormulaeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpFormulaeView.swift */; }; - C43931C829C4BD610069165B /* PhpFormulaeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpFormulaeView.swift */; }; + C43931C529C4BD610069165B /* PhpVersionManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpVersionManagerView.swift */; }; + C43931C629C4BD610069165B /* PhpVersionManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpVersionManagerView.swift */; }; + C43931C729C4BD610069165B /* PhpVersionManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpVersionManagerView.swift */; }; + C43931C829C4BD610069165B /* PhpVersionManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C429C4BD610069165B /* PhpVersionManagerView.swift */; }; C43931CA29C4C03F0069165B /* Brew.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C929C4C03F0069165B /* Brew.swift */; }; C43931CB29C4C03F0069165B /* Brew.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C929C4C03F0069165B /* Brew.swift */; }; C43931CC29C4C03F0069165B /* Brew.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43931C929C4C03F0069165B /* Brew.swift */; }; @@ -185,6 +185,7 @@ C44CCD4127AFE2FC00CE40E5 /* AlertableError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44CCD3F27AFE2FC00CE40E5 /* AlertableError.swift */; }; C44CCD4927AFF3B700CE40E5 /* MainMenu+Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44CCD4827AFF3B700CE40E5 /* MainMenu+Async.swift */; }; C44CCD4A27AFF3BC00CE40E5 /* MainMenu+Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44CCD4827AFF3B700CE40E5 /* MainMenu+Async.swift */; }; + C44DFA7C2A67043000B98ED5 /* ConfigManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44DFA7B2A67043000B98ED5 /* ConfigManagerView.swift */; }; C44E985F29B23EBF0059F773 /* UpdateCheckTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44E985E29B23EBF0059F773 /* UpdateCheckTest.swift */; }; C44F868E2835BD8D005C353A /* phpmon-config.json in Resources */ = {isa = PBXBuildFile; fileRef = C44F868D2835BD8D005C353A /* phpmon-config.json */; }; C450C8C628C919EC002A2B4B /* PreferenceName.swift in Sources */ = {isa = PBXBuildFile; fileRef = C450C8C528C919EC002A2B4B /* PreferenceName.swift */; }; @@ -395,7 +396,7 @@ C471E86328F9BB650021E251 /* PMTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A81CA328C67101008DD9D1 /* PMTableView.swift */; }; C471E86428F9BB650021E251 /* Warning.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699F028A2F3150060FEB8 /* Warning.swift */; }; C471E86528F9BB650021E251 /* WarningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699EE28A2F2A30060FEB8 /* WarningManager.swift */; }; - C471E86628F9BB650021E251 /* WarningsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */; }; + C471E86628F9BB650021E251 /* PhpDoctorWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */; }; C471E86728F9BB650021E251 /* OnboardingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FACE82288F1F9700FC478F /* OnboardingWindowController.swift */; }; C471E86828F9BB650021E251 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4998F092617633900B2526E /* PreferencesWindowController.swift */; }; C471E86928F9BB650021E251 /* PreferencesWindowController+Hotkey.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FACE7F288F1C0D00FC478F /* PreferencesWindowController+Hotkey.swift */; }; @@ -417,7 +418,7 @@ C471E87D28F9BB650021E251 /* Preset.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40C5C9B2846A40600E28255 /* Preset.swift */; }; C471E87E28F9BB650021E251 /* PresetHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C463E37F284930EE00422731 /* PresetHelper.swift */; }; C471E87F28F9BB650021E251 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4297F7928970D59004C4630 /* WarningView.swift */; }; - C471E88028F9BB650021E251 /* WarningListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* WarningListView.swift */; }; + C471E88028F9BB650021E251 /* PhpDoctorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */; }; C471E88128F9BB650021E251 /* NoWarningsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C41C708C28AA7F7900E8D498 /* NoWarningsView.swift */; }; C471E88228F9BB650021E251 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E9D2BF2878B336008FFDAD /* OnboardingView.swift */; }; C471E88328F9BB650021E251 /* VersionPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44264BF2850BD2A007400F1 /* VersionPopoverView.swift */; }; @@ -483,7 +484,7 @@ C471E8C628F9BB8F0021E251 /* PMTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A81CA328C67101008DD9D1 /* PMTableView.swift */; }; C471E8C728F9BB8F0021E251 /* Warning.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699F028A2F3150060FEB8 /* Warning.swift */; }; C471E8C828F9BB8F0021E251 /* WarningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699EE28A2F2A30060FEB8 /* WarningManager.swift */; }; - C471E8C928F9BB8F0021E251 /* WarningsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */; }; + C471E8C928F9BB8F0021E251 /* PhpDoctorWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */; }; C471E8CA28F9BB8F0021E251 /* OnboardingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FACE82288F1F9700FC478F /* OnboardingWindowController.swift */; }; C471E8CB28F9BB8F0021E251 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4998F092617633900B2526E /* PreferencesWindowController.swift */; }; C471E8CC28F9BB8F0021E251 /* PreferencesWindowController+Hotkey.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FACE7F288F1C0D00FC478F /* PreferencesWindowController+Hotkey.swift */; }; @@ -505,7 +506,7 @@ C471E8E028F9BB8F0021E251 /* Preset.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40C5C9B2846A40600E28255 /* Preset.swift */; }; C471E8E128F9BB8F0021E251 /* PresetHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C463E37F284930EE00422731 /* PresetHelper.swift */; }; C471E8E228F9BB8F0021E251 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4297F7928970D59004C4630 /* WarningView.swift */; }; - C471E8E328F9BB8F0021E251 /* WarningListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* WarningListView.swift */; }; + C471E8E328F9BB8F0021E251 /* PhpDoctorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */; }; C471E8E428F9BB8F0021E251 /* NoWarningsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C41C708C28AA7F7900E8D498 /* NoWarningsView.swift */; }; C471E8E528F9BB8F0021E251 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E9D2BF2878B336008FFDAD /* OnboardingView.swift */; }; C471E8E628F9BB8F0021E251 /* VersionPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44264BF2850BD2A007400F1 /* VersionPopoverView.swift */; }; @@ -535,8 +536,8 @@ C481F79A26164A7C004FBCFF /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5420395E2613607600FB00FA /* Preferences.swift */; }; C485706D28BF450900539B36 /* NSMenuItemExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40508B028ADAB44008FAC1F /* NSMenuItemExtension.swift */; }; C485706E28BF451C00539B36 /* OnboardingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FACE82288F1F9700FC478F /* OnboardingWindowController.swift */; }; - C485706F28BF452300539B36 /* WarningsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */; }; - C485707028BF452300539B36 /* WarningsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */; }; + C485706F28BF452300539B36 /* PhpDoctorWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */; }; + C485707028BF452300539B36 /* PhpDoctorWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */; }; C485707128BF452E00539B36 /* WarningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699EE28A2F2A30060FEB8 /* WarningManager.swift */; }; C485707228BF453800539B36 /* SwiftUIHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44264BD2850B86C007400F1 /* SwiftUIHelper.swift */; }; C485707328BF454300539B36 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E9D2BF2878B336008FFDAD /* OnboardingView.swift */; }; @@ -546,7 +547,7 @@ C485707728BF455300539B36 /* HeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EB53E428551F9B006F9937 /* HeaderView.swift */; }; C485707828BF456300539B36 /* Warning.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699F028A2F3150060FEB8 /* Warning.swift */; }; C485707928BF456C00539B36 /* ArrayExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EB53E628553117006F9937 /* ArrayExtension.swift */; }; - C485707A28BF457800539B36 /* WarningListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* WarningListView.swift */; }; + C485707A28BF457800539B36 /* PhpDoctorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */; }; C485707B28BF458900539B36 /* VersionPopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44264BF2850BD2A007400F1 /* VersionPopoverView.swift */; }; C485707C28BF459500539B36 /* NoWarningsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C41C708C28AA7F7900E8D498 /* NoWarningsView.swift */; }; C485707D28BF45A200539B36 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4297F7928970D59004C4630 /* WarningView.swift */; }; @@ -707,10 +708,10 @@ C4D4CB3829C109CF00DB9F93 /* InternalSwitcher+Valet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D4CB3629C109CF00DB9F93 /* InternalSwitcher+Valet.swift */; }; C4D4CB3929C109CF00DB9F93 /* InternalSwitcher+Valet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D4CB3629C109CF00DB9F93 /* InternalSwitcher+Valet.swift */; }; C4D4CB3A29C109CF00DB9F93 /* InternalSwitcher+Valet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D4CB3629C109CF00DB9F93 /* InternalSwitcher+Valet.swift */; }; - C4D5576429C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */; }; - C4D5576529C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */; }; - C4D5576629C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */; }; - C4D5576729C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */; }; + C4D5576429C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; + C4D5576529C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; + C4D5576629C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; + C4D5576729C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; C4D5CFCA27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; C4D5CFCB27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; C4D8016622B1584700C6DA1B /* Startup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D8016522B1584700C6DA1B /* Startup.swift */; }; @@ -880,7 +881,7 @@ C40C7F2727721FF600DDDCDC /* Valet+Alerts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Valet+Alerts.swift"; sourceTree = ""; }; C40C7F2F27722E8D00DDDCDC /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpFormulaeStatus.swift; sourceTree = ""; }; - C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrewFormulaUI.swift; sourceTree = ""; }; + C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BrewFormula+UI.swift"; sourceTree = ""; }; C40F505428ECA64E004AD45B /* TestableConfigurations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestableConfigurations.swift; sourceTree = ""; }; C40FE736282ABA4F00A302C2 /* AppVersion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppVersion.swift; sourceTree = ""; }; C40FE739282ABB2E00A302C2 /* AppVersionTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppVersionTest.swift; sourceTree = ""; }; @@ -907,8 +908,8 @@ C41CD0282628D8EE0065BBED /* GlobalKeybindPreference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalKeybindPreference.swift; sourceTree = ""; }; C41E87192763D42300161EE0 /* DomainListVC+ContextMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DomainListVC+ContextMenu.swift"; sourceTree = ""; }; C4205A7D27F4D21800191A39 /* ValetProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValetProxy.swift; sourceTree = ""; }; - C422DDA928A2C49900CEAC97 /* WarningListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningListView.swift; sourceTree = ""; }; - C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningsWindowController.swift; sourceTree = ""; }; + C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpDoctorView.swift; sourceTree = ""; }; + C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpDoctorWindowController.swift; sourceTree = ""; }; C4232EE42612526500158FC6 /* Credits.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = Credits.html; sourceTree = ""; }; C42337A2281F19F000459A48 /* Xdebug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Xdebug.swift; sourceTree = ""; }; C42759662627662800093CAE /* NSMenuExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSMenuExtension.swift; sourceTree = ""; }; @@ -921,7 +922,7 @@ C42F26752805FEE200938AC7 /* nginx-secure-proxy.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "nginx-secure-proxy.test"; sourceTree = ""; }; C436039F275E67610028EFC6 /* AppDelegate+Notifications.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+Notifications.swift"; sourceTree = ""; }; C436B39C29F3C42500B6A64E /* PreferencesTabs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesTabs.swift; sourceTree = ""; }; - C43931C429C4BD610069165B /* PhpFormulaeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpFormulaeView.swift; sourceTree = ""; }; + C43931C429C4BD610069165B /* PhpVersionManagerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpVersionManagerView.swift; sourceTree = ""; }; C43931C929C4C03F0069165B /* Brew.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Brew.swift; sourceTree = ""; }; C43A8A1925D9CD1000591B77 /* Utility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utility.swift; sourceTree = ""; }; C43A8A1F25D9D1D700591B77 /* brew-formula.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "brew-formula.json"; sourceTree = ""; }; @@ -942,6 +943,7 @@ C44C1990276E44CB0072762D /* ProgressWindow.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = ProgressWindow.storyboard; sourceTree = ""; }; C44CCD3F27AFE2FC00CE40E5 /* AlertableError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertableError.swift; sourceTree = ""; }; C44CCD4827AFF3B700CE40E5 /* MainMenu+Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+Async.swift"; sourceTree = ""; }; + C44DFA7B2A67043000B98ED5 /* ConfigManagerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigManagerView.swift; sourceTree = ""; }; C44E985E29B23EBF0059F773 /* UpdateCheckTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateCheckTest.swift; sourceTree = ""; }; C44F868D2835BD8D005C353A /* phpmon-config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "phpmon-config.json"; sourceTree = ""; }; C450C8C528C919EC002A2B4B /* PreferenceName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferenceName.swift; sourceTree = ""; }; @@ -1049,7 +1051,7 @@ C4D36614291160A1006BD146 /* WIP.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WIP.swift; sourceTree = ""; }; C4D36619291173EA006BD146 /* DictionaryExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtension.swift; sourceTree = ""; }; C4D4CB3629C109CF00DB9F93 /* InternalSwitcher+Valet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "InternalSwitcher+Valet.swift"; sourceTree = ""; }; - C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpVersionManagerWC.swift; sourceTree = ""; }; + C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpVersionManagerWindowController.swift; sourceTree = ""; }; C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NginxConfigurationFile.swift; sourceTree = ""; }; C4D8016522B1584700C6DA1B /* Startup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Startup.swift; sourceTree = ""; }; C4D89BC52783C99400A02B68 /* ComposerJson.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerJson.swift; sourceTree = ""; }; @@ -1365,7 +1367,6 @@ C4D9ADBD27761084007277F4 /* PHP */, C47331A0247093AC009A0597 /* Menu */, C464ADAA275A7A25003FCD53 /* DomainList */, - C422DDAB28A2DAA100CEAC97 /* Warnings */, C44A874628905B8500498BC4 /* Onboarding */, 5420395726135DB800FB00FA /* Preferences */, C44C198F276E3A380072762D /* Progress */, @@ -1376,17 +1377,6 @@ path = Domain; sourceTree = ""; }; - C422DDAB28A2DAA100CEAC97 /* Warnings */ = { - isa = PBXGroup; - children = ( - C43FDBE729A9329A003D85EC /* Services */, - C47699F028A2F3150060FEB8 /* Warning.swift */, - C47699EE28A2F2A30060FEB8 /* WarningManager.swift */, - C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */, - ); - path = Warnings; - sourceTree = ""; - }; C42337A1281F19DC00459A48 /* Extensions */ = { isa = PBXGroup; children = ( @@ -1395,35 +1385,22 @@ path = Extensions; sourceTree = ""; }; - C4297F7828970D4E004C4630 /* Warning */ = { + C4297F7828970D4E004C4630 /* PHP Doctor */ = { isa = PBXGroup; children = ( - C4297F7928970D59004C4630 /* WarningView.swift */, - C422DDA928A2C49900CEAC97 /* WarningListView.swift */, - C41C708C28AA7F7900E8D498 /* NoWarningsView.swift */, + C44DFA822A67066B00B98ED5 /* Data */, + C44DFA812A67063000B98ED5 /* UI */, ); - path = Warning; + path = "PHP Doctor"; sourceTree = ""; }; - C43931C329C4BD510069165B /* PhpManager */ = { + C43931C329C4BD510069165B /* PHP Version Manager */ = { isa = PBXGroup; children = ( - C4D5576329C77CC5001A44CD /* PhpVersionManagerWC.swift */, - C43931C429C4BD610069165B /* PhpFormulaeView.swift */, - C48DDD0C29C75C9E00D032D9 /* BlockingOverlayView.swift */, - C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */, - C40D725E2A018AE30054A067 /* BrewFormulaUI.swift */, - C489E0BA2A220A4200323F5E /* FakeBrewFormulaeHandler.swift */, + C44DFA7F2A6705A100B98ED5 /* Data */, + C44DFA7D2A67058900B98ED5 /* UI */, ); - path = PhpManager; - sourceTree = ""; - }; - C43FDBE729A9329A003D85EC /* Services */ = { - isa = PBXGroup; - children = ( - C43FDBE829A932B0003D85EC /* PhpConfigChecker.swift */, - ); - path = Services; + path = "PHP Version Manager"; sourceTree = ""; }; C44067F327E256560045BD4E /* Cells */ = { @@ -1474,6 +1451,89 @@ path = Errors; sourceTree = ""; }; + C44DFA7A2A6703FD00B98ED5 /* PHP Config Editor */ = { + isa = PBXGroup; + children = ( + C44DFA842A6706C900B98ED5 /* Data */, + C44DFA802A6705BA00B98ED5 /* UI */, + ); + path = "PHP Config Editor"; + sourceTree = ""; + }; + C44DFA7D2A67058900B98ED5 /* UI */ = { + isa = PBXGroup; + children = ( + C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */, + C43931C429C4BD610069165B /* PhpVersionManagerView.swift */, + C48DDD0C29C75C9E00D032D9 /* BlockingOverlayView.swift */, + ); + path = UI; + sourceTree = ""; + }; + C44DFA7E2A67059700B98ED5 /* Fake */ = { + isa = PBXGroup; + children = ( + C489E0BA2A220A4200323F5E /* FakeBrewFormulaeHandler.swift */, + ); + path = Fake; + sourceTree = ""; + }; + C44DFA7F2A6705A100B98ED5 /* Data */ = { + isa = PBXGroup; + children = ( + C40D72592A018ACC0054A067 /* PhpFormulaeStatus.swift */, + C40D725E2A018AE30054A067 /* BrewFormula+UI.swift */, + C44DFA7E2A67059700B98ED5 /* Fake */, + ); + path = Data; + sourceTree = ""; + }; + C44DFA802A6705BA00B98ED5 /* UI */ = { + isa = PBXGroup; + children = ( + C44DFA7B2A67043000B98ED5 /* ConfigManagerView.swift */, + ); + path = UI; + sourceTree = ""; + }; + C44DFA812A67063000B98ED5 /* UI */ = { + isa = PBXGroup; + children = ( + C422DDAC28A2DAC600CEAC97 /* PhpDoctorWindowController.swift */, + C422DDA928A2C49900CEAC97 /* PhpDoctorView.swift */, + C4297F7928970D59004C4630 /* WarningView.swift */, + C41C708C28AA7F7900E8D498 /* NoWarningsView.swift */, + ); + path = UI; + sourceTree = ""; + }; + C44DFA822A67066B00B98ED5 /* Data */ = { + isa = PBXGroup; + children = ( + C47699EE28A2F2A30060FEB8 /* WarningManager.swift */, + C47699F028A2F3150060FEB8 /* Warning.swift */, + C43FDBE829A932B0003D85EC /* PhpConfigChecker.swift */, + ); + path = Data; + sourceTree = ""; + }; + C44DFA832A6706A200B98ED5 /* Modules */ = { + isa = PBXGroup; + children = ( + C44DFA7A2A6703FD00B98ED5 /* PHP Config Editor */, + C4297F7828970D4E004C4630 /* PHP Doctor */, + C43931C329C4BD510069165B /* PHP Version Manager */, + ); + path = Modules; + sourceTree = ""; + }; + C44DFA842A6706C900B98ED5 /* Data */ = { + isa = PBXGroup; + children = ( + ); + path = Data; + sourceTree = ""; + }; C44F868C2835BD60005C353A /* phpmon */ = { isa = PBXGroup; children = ( @@ -1938,12 +1998,11 @@ C4EE55B027708BB2001DF387 /* SwiftUI */ = { isa = PBXGroup; children = ( - C43931C329C4BD510069165B /* PhpManager */, - C490E3A329BC92E6006D2DE6 /* Progress */, - C4297F7828970D4E004C4630 /* Warning */, + C44DFA832A6706A200B98ED5 /* Modules */, C4E9D2BE2878B32D008FFDAD /* Onboarding */, C4B609182853AAA700C95265 /* Domains */, C4B609172853AA9E00C95265 /* Menu */, + C490E3A329BC92E6006D2DE6 /* Progress */, C4B609162853AA9A00C95265 /* Common */, ); path = SwiftUI; @@ -2333,7 +2392,7 @@ C4F2E43A2752F7D00020E974 /* PhpInstallation.swift in Sources */, C4D9F24B280B69E100DCD39A /* AddProxyVC.swift in Sources */, C45B914E295608E300F4EC78 /* ValetServicesManager.swift in Sources */, - C4D5576429C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */, + C4D5576429C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */, C4E49DED28F764A00026AC4E /* TestableCommand.swift in Sources */, C41E871A2763D42300161EE0 /* DomainListVC+ContextMenu.swift in Sources */, C40C7F2827721FF600DDDCDC /* Valet+Alerts.swift in Sources */, @@ -2365,7 +2424,7 @@ C4C3643928AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */, C4AC51FC27E27F47008528CA /* DomainListKindCell.swift in Sources */, C4CDA893288F1A71007CE25F /* Keys.swift in Sources */, - C43931C529C4BD610069165B /* PhpFormulaeView.swift in Sources */, + C43931C529C4BD610069165B /* PhpVersionManagerView.swift in Sources */, C40175B82903108900763A68 /* ValetInteractor.swift in Sources */, C4ACE9E129F84EDD00110766 /* PhpGuard.swift in Sources */, C4F361612836BFD9003598CC /* MainMenu+Actions.swift in Sources */, @@ -2379,6 +2438,7 @@ C4CE3BB827B31F2E0086CA49 /* MainMenu+Switcher.swift in Sources */, C415937F27A1B54F00D2E1B7 /* PhpFrameworks.swift in Sources */, C4811D2422D70A4700B5F6B3 /* App.swift in Sources */, + C44DFA7C2A67043000B98ED5 /* ConfigManagerView.swift in Sources */, C40934A2298EEB2C00D25014 /* CaskFile.swift in Sources */, C495F5AF28A42E080087F70A /* EnvironmentCheck.swift in Sources */, C46EBC4428DB95F0007ACC74 /* ShellProtocol.swift in Sources */, @@ -2409,7 +2469,7 @@ C415D3E82770F692005EF286 /* AppDelegate+InterApp.swift in Sources */, C41C1B3722B0097F00E7CF16 /* AppDelegate.swift in Sources */, C42759672627662800093CAE /* NSMenuExtension.swift in Sources */, - C422DDAA28A2C49900CEAC97 /* WarningListView.swift in Sources */, + C422DDAA28A2C49900CEAC97 /* PhpDoctorView.swift in Sources */, C469E6FE294CF7B200A82AB2 /* FakeValetProxy.swift in Sources */, C490E3B629BCA367006D2DE6 /* App+BrewWatch.swift in Sources */, C464ADAF275A7A69003FCD53 /* DomainListVC.swift in Sources */, @@ -2439,7 +2499,7 @@ C474B00624C0E98C00066A22 /* LocalNotification.swift in Sources */, C4D5CFCA27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */, C4D36615291160A1006BD146 /* WIP.swift in Sources */, - C485707028BF452300539B36 /* WarningsWindowController.swift in Sources */, + C485707028BF452300539B36 /* PhpDoctorWindowController.swift in Sources */, C4CE3BBA27B31F670086CA49 /* ComposerWindow.swift in Sources */, C40D725A2A018ACC0054A067 /* PhpFormulaeStatus.swift in Sources */, C4D9ADC8277611A0007277F4 /* InternalSwitcher.swift in Sources */, @@ -2459,7 +2519,7 @@ C4C3ED412783497000AB15D8 /* MainMenu+Startup.swift in Sources */, C40508AF28ADA23D008FAC1F /* NoDomainResultsView.swift in Sources */, C4B79ECB29CA475900A483EE /* RemovePhpVersionCommand.swift in Sources */, - C40D725F2A018AE30054A067 /* BrewFormulaUI.swift in Sources */, + C40D725F2A018AE30054A067 /* BrewFormula+UI.swift in Sources */, C4D89BC62783C99400A02B68 /* ComposerJson.swift in Sources */, C43BCD4429FBEF40001547BC /* InstallAndUpgradeCommand.swift in Sources */, C4E2E84A28FC1E70003B070C /* DataExtension.swift in Sources */, @@ -2541,7 +2601,7 @@ C4E2E86628FC2F1B003B070C /* XCPMApplication.swift in Sources */, C471E85F28F9BB650021E251 /* DomainListVC+Actions.swift in Sources */, C490E3B429BC9FEA006D2DE6 /* ProgressWindowView.swift in Sources */, - C4D5576629C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */, + C4D5576629C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */, C4ACE9E329F84EDD00110766 /* PhpGuard.swift in Sources */, C471E86028F9BB650021E251 /* SelectionVC.swift in Sources */, C471E86128F9BB650021E251 /* AddSiteVC.swift in Sources */, @@ -2549,11 +2609,11 @@ C471E86328F9BB650021E251 /* PMTableView.swift in Sources */, C471E86428F9BB650021E251 /* Warning.swift in Sources */, C40175BA2903108900763A68 /* ValetInteractor.swift in Sources */, - C43931C729C4BD610069165B /* PhpFormulaeView.swift in Sources */, + C43931C729C4BD610069165B /* PhpVersionManagerView.swift in Sources */, C4463FCE29804BCB007B93D5 /* RCFile.swift in Sources */, C45B9150295608E300F4EC78 /* ValetServicesManager.swift in Sources */, C471E86528F9BB650021E251 /* WarningManager.swift in Sources */, - C471E86628F9BB650021E251 /* WarningsWindowController.swift in Sources */, + C471E86628F9BB650021E251 /* PhpDoctorWindowController.swift in Sources */, C471E86728F9BB650021E251 /* OnboardingWindowController.swift in Sources */, C471E86828F9BB650021E251 /* PreferencesWindowController.swift in Sources */, C471E86928F9BB650021E251 /* PreferencesWindowController+Hotkey.swift in Sources */, @@ -2582,7 +2642,7 @@ C471E87D28F9BB650021E251 /* Preset.swift in Sources */, C471E87E28F9BB650021E251 /* PresetHelper.swift in Sources */, C471E87F28F9BB650021E251 /* WarningView.swift in Sources */, - C471E88028F9BB650021E251 /* WarningListView.swift in Sources */, + C471E88028F9BB650021E251 /* PhpDoctorView.swift in Sources */, C471E88128F9BB650021E251 /* NoWarningsView.swift in Sources */, C471E88228F9BB650021E251 /* OnboardingView.swift in Sources */, C471E88328F9BB650021E251 /* VersionPopoverView.swift in Sources */, @@ -2620,7 +2680,7 @@ C471E82628F9BB2E0021E251 /* ComposerJson.swift in Sources */, C471E82428F9BB2E0021E251 /* PhpFrameworks.swift in Sources */, C471E7E828F9BAC20021E251 /* Actions.swift in Sources */, - C40D72612A018AE30054A067 /* BrewFormulaUI.swift in Sources */, + C40D72612A018AE30054A067 /* BrewFormula+UI.swift in Sources */, C471E82528F9BB2E0021E251 /* ComposerWindow.swift in Sources */, C471E80828F9BAD40021E251 /* PhpExtension.swift in Sources */, C471E7F928F9BACB0021E251 /* PhpSwitcher.swift in Sources */, @@ -2730,7 +2790,7 @@ C4E2E86A28FC3002003B070C /* Utility.swift in Sources */, C471E8BF28F9BB8F0021E251 /* DomainListWindowController.swift in Sources */, C471E8C028F9BB8F0021E251 /* DomainListVC.swift in Sources */, - C4D5576729C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */, + C4D5576729C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */, C471E8C128F9BB8F0021E251 /* DomainListVC+ContextMenu.swift in Sources */, C4BF56AE2949381100379603 /* FakeValetInteractor.swift in Sources */, C471E8C228F9BB8F0021E251 /* DomainListVC+Actions.swift in Sources */, @@ -2742,7 +2802,7 @@ C471E8C628F9BB8F0021E251 /* PMTableView.swift in Sources */, C471E8C728F9BB8F0021E251 /* Warning.swift in Sources */, C471E8C828F9BB8F0021E251 /* WarningManager.swift in Sources */, - C471E8C928F9BB8F0021E251 /* WarningsWindowController.swift in Sources */, + C471E8C928F9BB8F0021E251 /* PhpDoctorWindowController.swift in Sources */, C41ADCEB2970CCC700120423 /* FSNotifier.swift in Sources */, C471E8CA28F9BB8F0021E251 /* OnboardingWindowController.swift in Sources */, C4D4CB3A29C109CF00DB9F93 /* InternalSwitcher+Valet.swift in Sources */, @@ -2766,12 +2826,12 @@ C471E8DE28F9BB8F0021E251 /* App+ConfigWatch.swift in Sources */, C471E8DF28F9BB8F0021E251 /* PhpConfigWatcher.swift in Sources */, C4CB250529B28BB800CA4492 /* MainMenuTest.swift in Sources */, - C40D72622A018AE30054A067 /* BrewFormulaUI.swift in Sources */, + C40D72622A018AE30054A067 /* BrewFormula+UI.swift in Sources */, C4B79ECE29CA475900A483EE /* RemovePhpVersionCommand.swift in Sources */, C471E8E028F9BB8F0021E251 /* Preset.swift in Sources */, C471E8E128F9BB8F0021E251 /* PresetHelper.swift in Sources */, C471E8E228F9BB8F0021E251 /* WarningView.swift in Sources */, - C471E8E328F9BB8F0021E251 /* WarningListView.swift in Sources */, + C471E8E328F9BB8F0021E251 /* PhpDoctorView.swift in Sources */, C471E8E428F9BB8F0021E251 /* NoWarningsView.swift in Sources */, C471E8E528F9BB8F0021E251 /* OnboardingView.swift in Sources */, C4B79EBF29CA38DB00A483EE /* BrewCommand.swift in Sources */, @@ -2820,7 +2880,7 @@ C471E82228F9BB2E0021E251 /* ComposerWindow.swift in Sources */, C4D3660E29113F20006BD146 /* System.swift in Sources */, C471E80428F9BAD40021E251 /* PhpExtension.swift in Sources */, - C43931C829C4BD610069165B /* PhpFormulaeView.swift in Sources */, + C43931C829C4BD610069165B /* PhpVersionManagerView.swift in Sources */, C471E7F728F9BACB0021E251 /* PhpSwitcher.swift in Sources */, C4463FCF29804BCB007B93D5 /* RCFile.swift in Sources */, C471E82C28F9BB340021E251 /* ValetListable.swift in Sources */, @@ -2903,7 +2963,7 @@ C4F780CE25D80B75000DBC97 /* LocalNotification.swift in Sources */, C41ADCE92970CCC700120423 /* FSNotifier.swift in Sources */, C40C7F2927721FF600DDDCDC /* Valet+Alerts.swift in Sources */, - C485707A28BF457800539B36 /* WarningListView.swift in Sources */, + C485707A28BF457800539B36 /* PhpDoctorView.swift in Sources */, C4C0E8E827F88B41002D32A9 /* DomainScanner.swift in Sources */, C449B4F027EE7FB800C47E8A /* DomainListTLSCell.swift in Sources */, C4FBFC532616485F00CDB8E1 /* PhpVersionDetectionTest.swift in Sources */, @@ -2921,13 +2981,13 @@ C47DF1B0299D5A3B0007055D /* LoginItemManager.swift in Sources */, C4F780C025D80B6E000DBC97 /* Startup.swift in Sources */, C45B914A295607F400F4EC78 /* Service.swift in Sources */, - C43931C629C4BD610069165B /* PhpFormulaeView.swift in Sources */, + C43931C629C4BD610069165B /* PhpVersionManagerView.swift in Sources */, C4C0E8E327F88B13002D32A9 /* ValetDomainScanner.swift in Sources */, C4CCBA6D275C567B008C7055 /* PMWindowController.swift in Sources */, C4B5635F276AB09000F12CCB /* VersionExtractor.swift in Sources */, C463E381284930EE00422731 /* PresetHelper.swift in Sources */, C46FA98C2822F08F00D78807 /* PhpConfigurationTest.swift in Sources */, - C4D5576529C77CC5001A44CD /* PhpVersionManagerWC.swift in Sources */, + C4D5576529C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */, C4BF90C127C57C220054E78C /* MainMenu+FixMyValet.swift in Sources */, C4E49DEB28F7643D0026AC4E /* CommandProtocol.swift in Sources */, C4F2E4382752F08D0020E974 /* BrewDiagnostics.swift in Sources */, @@ -2942,7 +3002,7 @@ C450C8C728C919EC002A2B4B /* PreferenceName.swift in Sources */, C40D725B2A018ACC0054A067 /* PhpFormulaeStatus.swift in Sources */, C48D6C75279CD3E400F26D7E /* PhpVersionNumberTest.swift in Sources */, - C40D72602A018AE30054A067 /* BrewFormulaUI.swift in Sources */, + C40D72602A018AE30054A067 /* BrewFormula+UI.swift in Sources */, C485707B28BF458900539B36 /* VersionPopoverView.swift in Sources */, C4E2E85D28FC282B003B070C /* TestableConfiguration.swift in Sources */, C485706E28BF451C00539B36 /* OnboardingWindowController.swift in Sources */, @@ -3042,7 +3102,7 @@ C44CCD4A27AFF3BC00CE40E5 /* MainMenu+Async.swift in Sources */, C449B4F327EE7FC600C47E8A /* DomainListTypeCell.swift in Sources */, C48D6C71279CD2AC00F26D7E /* VersionNumber.swift in Sources */, - C485706F28BF452300539B36 /* WarningsWindowController.swift in Sources */, + C485706F28BF452300539B36 /* PhpDoctorWindowController.swift in Sources */, C46FA9892822EFDC00D78807 /* PhpConfigurationFile.swift in Sources */, C43931CB29C4C03F0069165B /* Brew.swift in Sources */, C41C02AB27E61CB3009F26CB /* FakeValetSite.swift in Sources */, diff --git a/phpmon/Domain/App/App.swift b/phpmon/Domain/App/App.swift index a73922a..f991591 100644 --- a/phpmon/Domain/App/App.swift +++ b/phpmon/Domain/App/App.swift @@ -75,10 +75,10 @@ class App { var onboardingWindowController: OnboardingWindowController? /** The window controller of the warnings window. */ - var warningsWindowController: WarningsWindowController? + var phpDoctorWindowController: PhpDoctorWindowController? /** The window controller of the warnings window. */ - var versionManagerWindowController: PhpVersionManagerWindowController? + var phpVersionManagerWindowController: PhpVersionManagerWindowController? /** List of detected (installed) applications that PHP Monitor can work with. */ var detectedApplications: [Application] = [] diff --git a/phpmon/Domain/Menu/MainMenu.swift b/phpmon/Domain/Menu/MainMenu.swift index 91d536c..dcc0c09 100644 --- a/phpmon/Domain/Menu/MainMenu.swift +++ b/phpmon/Domain/Menu/MainMenu.swift @@ -203,7 +203,7 @@ class MainMenu: NSObject, NSWindowDelegate, NSMenuDelegate, PhpSwitcherDelegate } @objc func openWarnings() { - WarningsWindowController.show() + PhpDoctorWindowController.show() } @objc func openDomainList() { diff --git a/phpmon/Domain/SwiftUI/Modules/PHP Config Editor/UI/ConfigManagerView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Config Editor/UI/ConfigManagerView.swift new file mode 100644 index 0000000..015bc33 --- /dev/null +++ b/phpmon/Domain/SwiftUI/Modules/PHP Config Editor/UI/ConfigManagerView.swift @@ -0,0 +1,43 @@ +// +// LimitManager.swift +// PHP Monitor +// +// Created by Nico Verbruggen on 18/07/2023. +// Copyright © 2023 Nico Verbruggen. All rights reserved. +// + +import Foundation +import SwiftUI + +struct ConfigManagerView: View { + var body: some View { + VStack { + HStack(alignment: .center, spacing: 15) { + Image(systemName: "square.and.pencil.circle.fill") + .resizable() + .frame(width: 40, height: 40) + .foregroundColor(Color.blue) + .padding(12) + VStack(alignment: .leading, spacing: 5) { + Text("config_manager.description".localizedForSwiftUI) + .font(.system(size: 12)) + .frame(maxWidth: .infinity, alignment: .leading) + Text("config_manager.disclaimer".localizedForSwiftUI) + .font(.system(size: 12)) + .frame(maxWidth: .infinity, alignment: .leading) + } + } + .padding(10) + + Divider() + } + } +} + +struct ConfigManagerView_Previews: PreviewProvider { + static var previews: some View { + ConfigManagerView() + .frame(width: 600, height: 480) + .previewDisplayName("Config Manager") + } +} diff --git a/phpmon/Domain/Warnings/Services/PhpConfigChecker.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/PhpConfigChecker.swift similarity index 99% rename from phpmon/Domain/Warnings/Services/PhpConfigChecker.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/PhpConfigChecker.swift index 6ba9e7f..23acdf0 100644 --- a/phpmon/Domain/Warnings/Services/PhpConfigChecker.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/PhpConfigChecker.swift @@ -14,7 +14,6 @@ struct FileExistenceCheck { } class PhpConfigChecker { - public static var shared = PhpConfigChecker() var missing: [String] = [] diff --git a/phpmon/Domain/Warnings/Warning.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/Warning.swift similarity index 100% rename from phpmon/Domain/Warnings/Warning.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/Warning.swift diff --git a/phpmon/Domain/Warnings/WarningManager.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/WarningManager.swift similarity index 100% rename from phpmon/Domain/Warnings/WarningManager.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/Data/WarningManager.swift diff --git a/phpmon/Domain/SwiftUI/Warning/NoWarningsView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/NoWarningsView.swift similarity index 100% rename from phpmon/Domain/SwiftUI/Warning/NoWarningsView.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/NoWarningsView.swift diff --git a/phpmon/Domain/SwiftUI/Warning/WarningListView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorView.swift similarity index 94% rename from phpmon/Domain/SwiftUI/Warning/WarningListView.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorView.swift index b664d8c..fff18b3 100644 --- a/phpmon/Domain/SwiftUI/Warning/WarningListView.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorView.swift @@ -1,5 +1,5 @@ // -// WarningListView.swift +// PhpDoctorView.swift // PHP Monitor // // Created by Nico Verbruggen on 09/08/2022. @@ -8,7 +8,7 @@ import SwiftUI -struct WarningListView: View { +struct PhpDoctorView: View { @ObservedObject var warningManager: WarningManager init(empty: Bool = false, fake: Bool = false, manager: WarningManager? = nil) { @@ -96,11 +96,11 @@ struct WarningListView: View { struct WarningListView_Previews: PreviewProvider { static var previews: some View { - WarningListView(empty: true, fake: true, manager: WarningManager()) + PhpDoctorView(empty: true, fake: true, manager: WarningManager()) .frame(width: 600, height: 480) .previewDisplayName("Empty List") - WarningListView(empty: false, fake: true, manager: WarningManager()) + PhpDoctorView(empty: false, fake: true, manager: WarningManager()) .frame(width: 600, height: 480) .previewDisplayName("List With All Warnings") } diff --git a/phpmon/Domain/Warnings/WarningsWindowController.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorWindowController.swift similarity index 68% rename from phpmon/Domain/Warnings/WarningsWindowController.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorWindowController.swift index 4cc87e4..f7b128d 100644 --- a/phpmon/Domain/Warnings/WarningsWindowController.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/PhpDoctorWindowController.swift @@ -1,5 +1,5 @@ // -// WarningsWindowController.swift +// PhpDoctorWindowController.swift // PHP Monitor // // Created by Nico Verbruggen on 09/08/2022. @@ -9,7 +9,7 @@ import Cocoa import SwiftUI -class WarningsWindowController: PMWindowController { +class PhpDoctorWindowController: PMWindowController { // MARK: - Window Identifier @@ -26,19 +26,19 @@ class WarningsWindowController: PMWindowController { window.styleMask = [.titled, .closable, .miniaturizable] window.titlebarAppearsTransparent = true window.delegate = delegate ?? windowController - window.contentView = NSHostingView(rootView: WarningListView()) + window.contentView = NSHostingView(rootView: PhpDoctorView()) window.setContentSize(NSSize(width: 600, height: 480)) - App.shared.warningsWindowController = windowController + App.shared.phpDoctorWindowController = windowController } public static func show(delegate: NSWindowDelegate? = nil) { - if App.shared.warningsWindowController == nil { + if App.shared.phpDoctorWindowController == nil { Self.create(delegate: delegate) } - App.shared.warningsWindowController?.showWindow(self) - App.shared.warningsWindowController?.window?.setCenterPosition(offsetY: 70) + App.shared.phpDoctorWindowController?.showWindow(self) + App.shared.phpDoctorWindowController?.window?.setCenterPosition(offsetY: 70) NSApp.activate(ignoringOtherApps: true) } diff --git a/phpmon/Domain/SwiftUI/Warning/WarningView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/WarningView.swift similarity index 100% rename from phpmon/Domain/SwiftUI/Warning/WarningView.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Doctor/UI/WarningView.swift diff --git a/phpmon/Domain/SwiftUI/PhpManager/BrewFormulaUI.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/BrewFormula+UI.swift similarity index 96% rename from phpmon/Domain/SwiftUI/PhpManager/BrewFormulaUI.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/BrewFormula+UI.swift index 907ad86..80d8a34 100644 --- a/phpmon/Domain/SwiftUI/PhpManager/BrewFormulaUI.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/BrewFormula+UI.swift @@ -1,5 +1,5 @@ // -// BrewFormulaUI.swift +// BrewFormula+UI.swift // PHP Monitor // // Created by Nico Verbruggen on 02/05/2023. diff --git a/phpmon/Domain/SwiftUI/PhpManager/FakeBrewFormulaeHandler.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/Fake/FakeBrewFormulaeHandler.swift similarity index 100% rename from phpmon/Domain/SwiftUI/PhpManager/FakeBrewFormulaeHandler.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/Fake/FakeBrewFormulaeHandler.swift diff --git a/phpmon/Domain/SwiftUI/PhpManager/PhpFormulaeStatus.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/PhpFormulaeStatus.swift similarity index 100% rename from phpmon/Domain/SwiftUI/PhpManager/PhpFormulaeStatus.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/Data/PhpFormulaeStatus.swift diff --git a/phpmon/Domain/SwiftUI/PhpManager/BlockingOverlayView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/BlockingOverlayView.swift similarity index 100% rename from phpmon/Domain/SwiftUI/PhpManager/BlockingOverlayView.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/BlockingOverlayView.swift diff --git a/phpmon/Domain/SwiftUI/PhpManager/PhpFormulaeView.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerView.swift similarity index 97% rename from phpmon/Domain/SwiftUI/PhpManager/PhpFormulaeView.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerView.swift index 83c8ffc..94a190a 100644 --- a/phpmon/Domain/SwiftUI/PhpManager/PhpFormulaeView.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerView.swift @@ -1,5 +1,5 @@ // -// PhpFormulaeView.swift +// PhpVersionManagerView.swift // PHP Monitor // // Created by Nico Verbruggen on 17/03/2023. @@ -10,7 +10,7 @@ import Foundation import SwiftUI // swiftlint:disable type_body_length -struct PhpFormulaeView: View { +struct PhpVersionManagerView: View { @ObservedObject var formulae: BrewFormulaeObservable @ObservedObject var status: PhpFormulaeStatus var handler: HandlesBrewFormulae @@ -267,7 +267,7 @@ struct PhpFormulaeView: View { } Alert.confirm( - onWindow: App.shared.versionManagerWindowController!.window!, + onWindow: App.shared.phpVersionManagerWindowController!.window!, messageText: "phpman.warnings.removal.title".localized(formula.displayName), informativeText: "phpman.warnings.removal.desc".localized(formula.displayName), buttonTitle: "phpman.warnings.removal.button".localized, @@ -332,7 +332,7 @@ struct PhpFormulaeView: View { style: NSAlert.Style = .critical ) { Alert.confirm( - onWindow: App.shared.versionManagerWindowController!.window!, + onWindow: App.shared.phpVersionManagerWindowController!.window!, messageText: title, informativeText: description, buttonTitle: button, @@ -350,9 +350,9 @@ struct PhpFormulaeView: View { } // swiftlint:enable type_body_length -struct PhpFormulaeView_Previews: PreviewProvider { +struct PhpVersionManagerView_Previews: PreviewProvider { static var previews: some View { - PhpFormulaeView( + PhpVersionManagerView( formulae: Brew.shared.formulae, handler: FakeBrewFormulaeHandler() ).frame(width: 600, height: 600) diff --git a/phpmon/Domain/SwiftUI/PhpManager/PhpVersionManagerWC.swift b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerWindowController.swift similarity index 73% rename from phpmon/Domain/SwiftUI/PhpManager/PhpVersionManagerWC.swift rename to phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerWindowController.swift index e786a30..57f45c9 100644 --- a/phpmon/Domain/SwiftUI/PhpManager/PhpVersionManagerWC.swift +++ b/phpmon/Domain/SwiftUI/Modules/PHP Version Manager/UI/PhpVersionManagerWindowController.swift @@ -14,16 +14,16 @@ class PhpVersionManagerWindowController: PMWindowController { // MARK: - Window Identifier - var view: PhpFormulaeView! + var view: PhpVersionManagerView! override var windowName: String { - return "PhpFormulaeView" + return "PhpVersionManager" } public static func create(delegate: NSWindowDelegate?) { let windowController = Self() windowController.window = NSWindow() - windowController.view = PhpFormulaeView( + windowController.view = PhpVersionManagerView( formulae: Brew.shared.formulae, handler: BrewFormulaeHandler() ) @@ -36,16 +36,16 @@ class PhpVersionManagerWindowController: PMWindowController { window.contentView = NSHostingView(rootView: windowController.view) window.setContentSize(NSSize(width: 600, height: 800)) - App.shared.versionManagerWindowController = windowController + App.shared.phpVersionManagerWindowController = windowController } public static func show(delegate: NSWindowDelegate? = nil) { - if App.shared.versionManagerWindowController == nil { + if App.shared.phpVersionManagerWindowController == nil { Self.create(delegate: delegate) } - App.shared.versionManagerWindowController?.showWindow(self) - App.shared.versionManagerWindowController?.positionWindowInTopLeftCorner() + App.shared.phpVersionManagerWindowController?.showWindow(self) + App.shared.phpVersionManagerWindowController?.positionWindowInTopLeftCorner() NSApp.activate(ignoringOtherApps: true) }