1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-11-08 05:30:05 +01:00

🔧 Learn more about presets

This commit is contained in:
2022-06-07 20:10:49 +02:00
parent f95eb7023f
commit 2229f01eb0
4 changed files with 72 additions and 17 deletions

View File

@@ -180,6 +180,20 @@ extension MainMenu {
}
}
@objc func showPresetHelp() {
BetterAlert().withInformation(
title: "preset_help_title".localized,
subtitle: "preset_help_info".localized,
description: "preset_help_desc".localized
)
.withPrimary(text: "OK")
.withTertiary(text: "", action: { alert in
NSWorkspace.shared.open(Constants.Urls.FrequentlyAskedQuestions)
alert.close(with: .OK)
})
.show()
}
@objc func openPhpInfo() {
var url: URL?

View File

@@ -66,13 +66,41 @@ extension StatusMenu {
func addPresetsMenuItem() {
if Preferences.custom.presets.isEmpty {
addEmptyPresetHelp()
return
}
let presets = NSMenuItem(title: "Configuration Presets", action: nil, keyEquivalent: "")
addLoadedPresets()
}
func addEmptyPresetHelp() {
let presets = NSMenuItem(title: "mi_presets_title".localized, action: nil, keyEquivalent: "")
let presetsMenu = NSMenu()
presetsMenu.addItem(NSMenuItem(title: "mi_no_presets".localized, action: nil, keyEquivalent: ""))
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(HeaderView.asMenuItem(text: "Apply Configuration Presets"))
presetsMenu.addItem(NSMenuItem(
title: "mi_set_up_presets".localized,
action: #selector(MainMenu.showPresetHelp),
keyEquivalent: "")
)
presetsMenu.items.forEach { $0.target = MainMenu.shared }
self.setSubmenu(presetsMenu, for: presets)
self.addItem(presets)
return
}
func addLoadedPresets() {
let presets = NSMenuItem(title: "mi_presets_title".localized, action: nil, keyEquivalent: "")
let presetsMenu = NSMenu()
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(HeaderView.asMenuItem(text: "mi_apply_presets_title".localized))
for preset in Preferences.custom.presets {
let presetMenuItem = PresetMenuItem(
@@ -86,13 +114,6 @@ extension StatusMenu {
options: [.documentType: NSAttributedString.DocumentType.html],
documentAttributes: nil
) {
/*
attributedString.addAttribute(
.font,
value: NSFont.systemFont(ofSize: 12),
range: NSRange(location: 0, length: attributedString.length)
)
*/
presetMenuItem.attributedTitle = attributedString
}
@@ -102,15 +123,17 @@ extension StatusMenu {
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "Revert to Previous Configuration...",
title: "mi_revert_to_prev_config".localized,
action: PresetHelper.rollbackPreset != nil
? #selector(MainMenu.rollbackPreset)
: nil,
? #selector(MainMenu.rollbackPreset)
: nil,
keyEquivalent: ""
))
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "\(Preferences.custom.presets.count) profiles loaded from configuration file",
title: "mi_profiles_loaded".localized(
Preferences.custom.presets.count
),
action: nil, keyEquivalent: "")
)
for item in presetsMenu.items {
@@ -133,7 +156,7 @@ extension StatusMenu {
let xdebugModesMenu = NSMenu()
let activeModes = Xdebug.activeModes
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "Available Modes"))
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "mi_xdebug_available_modes".localized))
for mode in Xdebug.modes {
let item = XdebugMenuItem(
@@ -147,9 +170,9 @@ extension StatusMenu {
xdebugModesMenu.addItem(item)
}
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "Actions"))
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "mi_xdebug_actions".localized))
xdebugModesMenu.addItem(
withTitle: "Disable All",
withTitle: "mi_xdebug_disable_all".localized,
action: #selector(MainMenu.disableAllXdebugModes),
keyEquivalent: ""
)

View File

@@ -63,6 +63,24 @@
"mi_quit" = "Quit PHP Monitor";
"mi_about" = "About PHP Monitor";
"mi_presets_title" = "Configuration Presets";
"mi_apply_presets_title" = "Apply Configuration Presets";
"mi_revert_to_prev_config" = "Revert to Previous Configuration...";
"mi_profiles_loaded" = "%i profiles loaded from configuration file";
"mi_no_presets" = "No presets available.";
"mi_set_up_presets" = "Learn more about presets...";
"mi_xdebug_available_modes" = "Available Modes";
"mi_xdebug_actions" = "Actions";
"mi_xdebug_disable_all" = "Disable All Modes";
// PRESET LOADING
"preset_help_title" = "Working with Configuration Presets";
"preset_help_info" = "You can set up configuration presets in the config.json file, located in ~/.config/phpmon/config.json. These presets can apply a selection of configuration values all at once. This is a powerful feature, but currently needs to be set up manually.";
"preset_help_desc" = "After restarting PHP Monitor, all presets found in the file will be loaded. If no presets appear, the file probably could not be parsed correctly.\n\nYou can click the question mark in this alert to go to the FAQ on GitHub, where you can find more information about this feature, including a sample file.";
// MENU ITEMS (if window is open)
"mm_add_folder_as_link" = "Add Folder as Link...";