Skip to content

Commit

Permalink
馃憣 Prototype (non-functional) for presets
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoverbruggen committed May 18, 2022
1 parent e7f80eb commit 40e404f
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 0 deletions.
12 changes: 12 additions & 0 deletions PHP Monitor.xcodeproj/project.pbxproj
Expand Up @@ -117,6 +117,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 */; };
C44F868E2835BD8D005C353A /* phpmon-config.json in Resources */ = {isa = PBXBuildFile; fileRef = C44F868D2835BD8D005C353A /* phpmon-config.json */; };
C459B4BD27F6093700E9B4B4 /* nginx-proxy.test in Resources */ = {isa = PBXBuildFile; fileRef = C459B4BC27F6093700E9B4B4 /* nginx-proxy.test */; };
C464ADAC275A7A3F003FCD53 /* DomainListWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C464ADAB275A7A3F003FCD53 /* DomainListWC.swift */; };
C464ADAD275A7A3F003FCD53 /* DomainListWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C464ADAB275A7A3F003FCD53 /* DomainListWC.swift */; };
Expand Down Expand Up @@ -349,6 +350,7 @@
C44C1990276E44CB0072762D /* ProgressWindow.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = ProgressWindow.storyboard; sourceTree = "<group>"; };
C44CCD3F27AFE2FC00CE40E5 /* AlertableError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertableError.swift; sourceTree = "<group>"; };
C44CCD4827AFF3B700CE40E5 /* MainMenu+Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+Async.swift"; sourceTree = "<group>"; };
C44F868D2835BD8D005C353A /* phpmon-config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "phpmon-config.json"; sourceTree = "<group>"; };
C459B4BC27F6093700E9B4B4 /* nginx-proxy.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "nginx-proxy.test"; sourceTree = "<group>"; };
C464ADAB275A7A3F003FCD53 /* DomainListWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListWC.swift; sourceTree = "<group>"; };
C464ADAE275A7A69003FCD53 /* DomainListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainListVC.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -549,6 +551,7 @@
C40C7F1C27720E1400DDDCDC /* Test Files */ = {
isa = PBXGroup;
children = (
C44F868C2835BD60005C353A /* phpmon */,
C459B4C127F6097E00E9B4B4 /* php */,
C459B4C027F6096300E9B4B4 /* valet */,
C459B4BF27F6094100E9B4B4 /* brew */,
Expand Down Expand Up @@ -678,6 +681,14 @@
path = Errors;
sourceTree = "<group>";
};
C44F868C2835BD60005C353A /* phpmon */ = {
isa = PBXGroup;
children = (
C44F868D2835BD8D005C353A /* phpmon-config.json */,
);
path = phpmon;
sourceTree = "<group>";
};
C459B4BE27F6093A00E9B4B4 /* nginx */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1117,6 +1128,7 @@
C42CFB1827DFDFDC00862737 /* nginx-site-isolated.test in Resources */,
C4F780A825D80AE8000DBC97 /* php.ini in Resources */,
C4068CA527B0780A00544CD5 /* CheckboxPreferenceView.xib in Resources */,
C44F868E2835BD8D005C353A /* phpmon-config.json in Resources */,
C43A8A2025D9D1D700591B77 /* brew-formula.json in Resources */,
C4AF9F72275445FF00D44ED0 /* valet-config.json in Resources */,
C44C1992276E44CB0072762D /* ProgressWindow.storyboard in Resources */,
Expand Down
24 changes: 24 additions & 0 deletions phpmon-tests/Test Files/phpmon/phpmon-config.json
@@ -0,0 +1,24 @@
{
"scan_apps": [],
"presets": [
{
"name": "Default PHP",
"extensions": {
"xdebug": false
},
"ini": {
"memory_limit": "128M"
}
},
{
"name": "Personal Website",
"extensions": {
"xdebug": true
},
"ini": {
"xdebug.mode": "coverage",
"memory_limit": "512M"
}
}
]
}
31 changes: 31 additions & 0 deletions phpmon/Domain/Menu/StatusMenu.swift
Expand Up @@ -69,6 +69,7 @@ class StatusMenu: NSMenu {
self.addItem(NSMenuItem.separator())

self.addXdebugMenuItem()
self.addPresetsMenuItem()

self.addFirstAidAndServicesMenuItems()
}
Expand Down Expand Up @@ -140,6 +141,36 @@ class StatusMenu: NSMenu {
}
}

func addPresetsMenuItem() {
let presets = NSMenuItem(title: "Configuration Presets", action: nil, keyEquivalent: "")
let presetsMenu = NSMenu()
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(HeaderView.asMenuItem(text: "Apply Configuration Presets"))
presetsMenu.addItem(NSMenuItem(
title: "Default Configuration (1 extension, 1 pref)",
action: #selector(MainMenu.restartDnsMasq), keyEquivalent: "")
)
presetsMenu.addItem(NSMenuItem(
title: "Personal Website (1 extension, 2 prefs)",
action: #selector(MainMenu.restartDnsMasq), keyEquivalent: "")
)
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "Revert to Previous Configuration...",
action: #selector(MainMenu.restartDnsMasq), keyEquivalent: "")
)
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "2 profiles loaded from configuration file",
action: nil, keyEquivalent: "")
)
for item in presetsMenu.items {
item.target = MainMenu.shared
}
self.setSubmenu(presetsMenu, for: presets)
self.addItem(presets)
}

func addXdebugMenuItem() {
if !Xdebug.enabled {
return
Expand Down

0 comments on commit 40e404f

Please sign in to comment.