diff --git a/phpmon/AppDelegate.swift b/phpmon/AppDelegate.swift index 841325b..fe89504 100644 --- a/phpmon/AppDelegate.swift +++ b/phpmon/AppDelegate.swift @@ -24,20 +24,21 @@ class AppDelegate: NSObject, NSApplicationDelegate { // Start with the ducky self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!) // Perform environment boot checks - DispatchQueue.global(qos: .userInitiated).async { + DispatchQueue.global(qos: .userInitiated).async { [unowned self] in Environment.performBootChecks() + self.availablePhpVersions = Services.detectPhpVersions() + print("The following PHP versions were detected:") + print(self.availablePhpVersions) + self.updatePhpVersionInStatusBar() + // Schedule a request to fetch the PHP version every 15 seconds + Timer.scheduledTimer( + timeInterval: 15, + target: self, + selector: #selector(self.updatePhpVersionInStatusBar), + userInfo: nil, + repeats: true + ) } - // Check if the correct stuff is installed - self.availablePhpVersions = Services.detectPhpVersions() - self.updatePhpVersionInStatusBar() - // Schedule a request to fetch the PHP version every 15 seconds - Timer.scheduledTimer( - timeInterval: 15, - target: self, - selector: #selector(updatePhpVersionInStatusBar), - userInfo: nil, - repeats: true - ) } func setStatusBarImage(version: String) { @@ -58,11 +59,14 @@ class AppDelegate: NSObject, NSApplicationDelegate { @objc func updatePhpVersionInStatusBar() { self.version = PHPVersion() if (self.busy) { - self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!) + DispatchQueue.main.async { + self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!) + } } else { - self.setStatusBarImage(version: self.version!.short) + DispatchQueue.main.async { + self.setStatusBarImage(version: self.version!.short) + } } - self.updateMenu() } @@ -89,10 +93,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { menu.addItem(NSMenuItem(title: "Switching PHP versions...", action: nil, keyEquivalent: "")) menu.addItem(NSMenuItem.separator()) } - menu.addItem(NSMenuItem(title: Services.mysqlIsRunning() ? "You are running MySQL" : "MySQL is not active", action: nil, keyEquivalent: "")) - menu.addItem(NSMenuItem(title: Services.nginxIsRunning() ? "You are running nginx" : "nginx is not active", action: nil, keyEquivalent: "")) - menu.addItem(NSMenuItem.separator()) - // menu.addItem(NSMenuItem(title: "About phpmon", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "")) + menu.addItem(NSMenuItem(title: "About phpmon", action: #selector(self.openAbout), keyEquivalent: "")) menu.addItem(NSMenuItem(title: "Quit phpmon", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")) DispatchQueue.main.async { self.statusItem.menu = menu @@ -100,13 +101,20 @@ class AppDelegate: NSObject, NSApplicationDelegate { } } + @objc public func openAbout() { + NSApplication.shared.orderFrontStandardAboutPanel() + } + @objc public func switchToPhpVersion(sender: AnyObject) { + self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!) let index = sender.tag! let version = self.availablePhpVersions[index] self.busy = true - self.updatePhpVersionInStatusBar() - self.updateMenu() DispatchQueue.global(qos: .userInitiated).async { [unowned self] in + // Update the PHP version in the status bar + self.updatePhpVersionInStatusBar() + // Update the menu + self.updateMenu() // Switch the PHP version Services.switchToPhpVersion(version: version, availableVersions: self.availablePhpVersions) // Mark as no longer busy diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/Contents.json b/phpmon/Assets.xcassets/AppIcon.appiconset/Contents.json index 2db2b1c..7cd4f8e 100644 --- a/phpmon/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/phpmon/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,53 +1,63 @@ { "images" : [ { - "idiom" : "mac", "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16.png", "scale" : "1x" }, { - "idiom" : "mac", "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16@2x.png", "scale" : "2x" }, { - "idiom" : "mac", "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32.png", "scale" : "1x" }, { - "idiom" : "mac", "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32@2x.png", "scale" : "2x" }, { - "idiom" : "mac", "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128.png", "scale" : "1x" }, { - "idiom" : "mac", "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128@2x.png", "scale" : "2x" }, { - "idiom" : "mac", "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256.png", "scale" : "1x" }, { - "idiom" : "mac", "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256@2x.png", "scale" : "2x" }, { - "idiom" : "mac", "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512.png", "scale" : "1x" }, { - "idiom" : "mac", "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512@2x.png", "scale" : "2x" } ], diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000..092e0a5 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png new file mode 100644 index 0000000..ebd51b5 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000..402d687 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 0000000..2cc5091 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000..ebd51b5 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 0000000..06503d5 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 0000000..2cc5091 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000..5564b58 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 0000000..06503d5 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512.png differ diff --git a/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 0000000..0266f75 Binary files /dev/null and b/phpmon/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ diff --git a/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon.png b/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon.png index 0efe350..f3b5d88 100644 Binary files a/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon.png and b/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon.png differ diff --git a/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon@2x.png b/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon@2x.png index fe7a8a3..eee13d7 100644 Binary files a/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon@2x.png and b/phpmon/Assets.xcassets/StatusBarIcon.imageset/phpmon@2x.png differ diff --git a/phpmon/Info.plist b/phpmon/Info.plist index dc6fbab..ceb8071 100644 --- a/phpmon/Info.plist +++ b/phpmon/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.0 CFBundleVersion - 2 + 3 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement