From 5bf458f12a157c37f50c5acf3cd776fd840aba89 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Mon, 8 Jul 2019 21:05:55 +0200 Subject: [PATCH] added dock icon visibility in preferences --- Stats/AppDelegate.swift | 5 +++++ Stats/MenuBar.swift | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Stats/AppDelegate.swift b/Stats/AppDelegate.swift index 29c74897..4b46408a 100755 --- a/Stats/AppDelegate.swift +++ b/Stats/AppDelegate.swift @@ -70,6 +70,11 @@ class AppDelegate: NSObject, NSApplicationDelegate { labelForChart << true } + if defaults.object(forKey: "dockIcon") != nil { + let dockIconStatus = defaults.bool(forKey: "dockIcon") ? NSApplication.ActivationPolicy.regular : NSApplication.ActivationPolicy.accessory + NSApp.setActivationPolicy(dockIconStatus) + } + if isRunning { DistributedNotificationCenter.default().post(name: .killLauncher, object: Bundle.main.bundleIdentifier!) } diff --git a/Stats/MenuBar.swift b/Stats/MenuBar.swift index 27abbc0f..0c4c9d4e 100644 --- a/Stats/MenuBar.swift +++ b/Stats/MenuBar.swift @@ -70,11 +70,16 @@ class MenuBar { chartLabels.target = self preferencesMenu.addItem(chartLabels) - let runAtLogin = NSMenuItem(title: "Run at login", action: #selector(toggleMenu), keyEquivalent: "") + let runAtLogin = NSMenuItem(title: "Start at login", action: #selector(toggleMenu), keyEquivalent: "") runAtLogin.state = defaults.bool(forKey: "runAtLogin") || defaults.object(forKey: "runAtLogin") == nil ? NSControl.StateValue.on : NSControl.StateValue.off runAtLogin.target = self preferencesMenu.addItem(runAtLogin) + let dockIcon = NSMenuItem(title: "Show icon in dock", action: #selector(toggleMenu), keyEquivalent: "") + dockIcon.state = defaults.bool(forKey: "dockIcon") ? NSControl.StateValue.on : NSControl.StateValue.off + dockIcon.target = self + preferencesMenu.addItem(dockIcon) + preferences.submenu = preferencesMenu menu.addItem(preferences) @@ -116,6 +121,11 @@ class MenuBar { case "Run at login": SMLoginItemSetEnabled(launcherId as CFString, !status) self.defaults.set(status, forKey: "runAtLogin") + case "Show icon in dock": + self.defaults.set(status, forKey: "dockIcon") + let iconStatus = status ? NSApplication.ActivationPolicy.regular : NSApplication.ActivationPolicy.accessory + NSApp.setActivationPolicy(iconStatus) + return case "Colors": self.defaults.set(status, forKey: "colors") colors << status