diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 02c96fb..9da93f6 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 553; + CURRENT_PROJECT_VERSION = 560; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -1227,7 +1227,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 11.0; - MARKETING_VERSION = "5.0-rc4"; + MARKETING_VERSION = "5.0-rc5"; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1243,7 +1243,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 553; + CURRENT_PROJECT_VERSION = 560; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -1252,7 +1252,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 11.0; - MARKETING_VERSION = "5.0-rc4"; + MARKETING_VERSION = "5.0-rc5"; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/phpmon-common/Core/Constants.swift b/phpmon-common/Core/Constants.swift index 6bb3f62..1c67126 100644 --- a/phpmon-common/Core/Constants.swift +++ b/phpmon-common/Core/Constants.swift @@ -51,4 +51,9 @@ class Constants { "8.2" ] + /** + The URL that people can visit if they wish to help support the project. + */ + static let DonationUrl = URL(string: "https://nicoverbruggen.be/sponsor#pay-now")! + } diff --git a/phpmon/Domain/Core/AppDelegate+MenuOutlets.swift b/phpmon/Domain/Core/AppDelegate+MenuOutlets.swift index 3d13d92..123dc94 100644 --- a/phpmon/Domain/Core/AppDelegate+MenuOutlets.swift +++ b/phpmon/Domain/Core/AppDelegate+MenuOutlets.swift @@ -7,6 +7,7 @@ // import Foundation +import AppKit /** Any outlets connected to the app's main menu (not the menu that shows when the icon in @@ -24,6 +25,13 @@ extension AppDelegate { // MARK: - Menu Interactions + @IBAction func addSiteLinkPressed(_ sender: Any) { + SiteListVC.show() + + guard let windowController = App.shared.siteListWindowController else { return } + windowController.pressedAddLink(nil) + } + @IBAction func reloadSiteListPressed(_ sender: Any) { let vc = App.shared.siteListWindowController? .window?.contentViewController as? SiteListVC @@ -37,4 +45,11 @@ extension AppDelegate { } } + @IBAction func focusSearchField(_ sender: Any) { + SiteListVC.show() + + guard let windowController = App.shared.siteListWindowController else { return } + windowController.searchToolbarItem.searchField.becomeFirstResponder() + } + } diff --git a/phpmon/Domain/Core/Base.lproj/Main.storyboard b/phpmon/Domain/Core/Base.lproj/Main.storyboard index e1169a3..0c0973a 100644 --- a/phpmon/Domain/Core/Base.lproj/Main.storyboard +++ b/phpmon/Domain/Core/Base.lproj/Main.storyboard @@ -50,11 +50,31 @@ - + + + + + + + + + + + + + + + + + + + + + @@ -299,7 +319,7 @@ - + @@ -589,6 +609,10 @@ Gw + + + + @@ -776,7 +800,7 @@ Gw - + @@ -786,7 +810,7 @@ Gw - + diff --git a/phpmon/Domain/Extensions/NSMenuExtension.swift b/phpmon/Domain/Extensions/NSMenuExtension.swift index adff639..9ba1a31 100644 --- a/phpmon/Domain/Extensions/NSMenuExtension.swift +++ b/phpmon/Domain/Extensions/NSMenuExtension.swift @@ -16,3 +16,14 @@ extension NSMenu { } } + +@IBDesignable class LocalizedMenuItem: NSMenuItem { + + @IBInspectable + var localizationKey: String? { + didSet { + self.title = localizationKey?.localized ?? self.title + } + } + +} diff --git a/phpmon/Domain/Integrations/Composer/PhpFrameworks.swift b/phpmon/Domain/Integrations/Composer/PhpFrameworks.swift index 1ee0513..25e7f9d 100644 --- a/phpmon/Domain/Integrations/Composer/PhpFrameworks.swift +++ b/phpmon/Domain/Integrations/Composer/PhpFrameworks.swift @@ -34,7 +34,7 @@ struct PhpFrameworks { "october/october": "OctoberCMS", "sculpin/sculpin": "Sculpin", "statamic/cms": "Statamic", - "johnpbloch/wordpress-core": "Wordpress", + "johnpbloch/wordpress-core": "WordPress", "zendframework/zendframework": "Zend", "zendframework/zend-mvc": "Zend" diff --git a/phpmon/Domain/Menu/MainMenu.swift b/phpmon/Domain/Menu/MainMenu.swift index 02b2b07..7f09176 100644 --- a/phpmon/Domain/Menu/MainMenu.swift +++ b/phpmon/Domain/Menu/MainMenu.swift @@ -361,6 +361,10 @@ class MainMenu: NSObject, NSWindowDelegate, NSMenuDelegate { SiteListVC.show() } + @objc func openDonate() { + NSWorkspace.shared.open(Constants.DonationUrl) + } + @objc func terminateApp() { NSApplication.shared.terminate(nil) } diff --git a/phpmon/Domain/Preferences/Stats.swift b/phpmon/Domain/Preferences/Stats.swift index ef24e86..f8449e0 100644 --- a/phpmon/Domain/Preferences/Stats.swift +++ b/phpmon/Domain/Preferences/Stats.swift @@ -70,6 +70,21 @@ class Stats { ) } + /** + Determine if the sponsor message should be displayed. + + The rationale behind this is simple, some of the stats + increasing beyond a certain point indicate the app + is being used. + + We evaluate, first: + - Successful version switches + OR + - Successful starts of the application + + AND, of course, you must never have seen the alert before. + (see `didSeeSponsorEncouragement`) + */ public static func evaluateSponsorMessageShouldBeDisplayed() { if Bundle.main.bundleIdentifier?.contains("beta") ?? false { return Log.info("Sponsor messages never apply to beta builds.") @@ -92,8 +107,7 @@ class Stats { style: .informational) if donate { Log.info("The user is an absolute badass for choosing this option. Thank you.") - guard let url = URL(string: "https://nicoverbruggen.be/sponsor#pay-now") else { return } - NSWorkspace.shared.open(url) + NSWorkspace.shared.open(Constants.DonationUrl) } UserDefaults.standard.set(true, forKey: InternalStats.didSeeSponsorEncouragement.rawValue) } diff --git a/phpmon/Localizable.strings b/phpmon/Localizable.strings index 04e3bc1..2b48bef 100644 --- a/phpmon/Localizable.strings +++ b/phpmon/Localizable.strings @@ -52,9 +52,16 @@ "mi_sitelist" = "View Linked and Parked Domains..."; "mi_preferences" = "Preferences..."; +"mi_donate" = "Donate..."; "mi_quit" = "Quit PHP Monitor"; "mi_about" = "About PHP Monitor"; +// MENU ITEMS (if window is open) + +"mm_add_folder_as_link" = "Add Folder as Link..."; +"mm_reload_site_list" = "Reload Site List"; +"mm_find_in_site_list" = "Search in Site List"; + // SITE LIST "site_list.title" = "Domains";