OSDN Git Service

不要となっていたプロパティを削除
[kcd/KCD.git] / KCD / AppDelegate.swift
index 65fde46..f4fba39 100644 (file)
@@ -8,29 +8,18 @@
 
 import Cocoa
 
-fileprivate extension Selector {
-    
-    static let fireInAppDelegate = #selector(AppDelegate.fire(_:))
-    
-    static let saveLocalData = #selector(AppDelegate.saveLocalData(_:))
-    static let loadLocalData = #selector(AppDelegate.loadLocalData(_:))
-    
-    static let removeDatabaseFile = #selector(AppDelegate.removeDatabaseFile(_:))
-}
-
 @NSApplicationMain
 final class AppDelegate: NSObject {
     
     static var shared: AppDelegate {
         
-        // swiftlint:disable force_cast
-        return NSApplication.shared().delegate as! AppDelegate
+        return NSApplication.shared.delegate as! AppDelegate    // swiftlint:disable:this force_cast
     }
+        
+    let appNameForUserAgent: String = "KCD(1.9b36) is not Safari/604.4.7"
+    private(set) var fleetManager: FleetManager?
     
-    let appNameForUserAgent: String = "KCD(1.9b16) is not Safari/603.3.8"
-    let fleetManager: FleetManager = FleetManager()
-    
-    let windowManager = WindowManager()
+    private let windowManager = WindowManager()
     
     private let historyCleanNotifer = PeriodicNotifier(hour: 0, minutes: 7)
     private let jsonTracker = JSONTracker()
@@ -38,8 +27,8 @@ final class AppDelegate: NSObject {
     private let resourceHistory = ResourceHistoryManager()
     
     // MARK: - Variable
-    @IBOutlet var debugMenuItem: NSMenuItem!
-    @IBOutlet var billingWindowMenuItem: NSMenuItem!
+    @IBOutlet private var debugMenuItem: NSMenuItem!
+    @IBOutlet private var billingWindowMenuItem: NSMenuItem!
     
     var jsonViewWindowController: JSONViewWindowController? {
         
@@ -48,15 +37,17 @@ final class AppDelegate: NSObject {
     
     private var browserWindowControllers: [ExternalBrowserWindowController] = []
     private var updaters: [() -> Void] = []
-    fileprivate var logedJSONViewWindowController: JSONViewWindowController?
+    private var logedJSONViewWindowController: JSONViewWindowController?
     private var didLoadedMainMenu = false
     
     var screenShotSaveDirectory: String {
         
         get {
+            
             return UserDefaults.standard[.screenShotSaveDirectory] ?? ApplicationDirecrories.pictures.path
         }
         set {
+            
             UserDefaults.standard[.screenShotSaveDirectory] = newValue
         }
     }
@@ -66,28 +57,33 @@ final class AppDelegate: NSObject {
         return URL(fileURLWithPath: screenShotSaveDirectory)
     }
     
-    dynamic var monospaceSystemFont11: NSFont {
+    @objc dynamic var monospaceSystemFont11: NSFont {
         
-        return NSFont.monospacedDigitSystemFont(ofSize: 11, weight: NSFontWeightRegular)
+        return NSFont.monospacedDigitSystemFont(ofSize: 11, weight: .regular)
     }
     
-    dynamic var monospaceSystemFont12: NSFont {
+    @objc dynamic var monospaceSystemFont12: NSFont {
         
-        return NSFont.monospacedDigitSystemFont(ofSize: 12, weight: NSFontWeightRegular)
+        return NSFont.monospacedDigitSystemFont(ofSize: 12, weight: .regular)
     }
     
-    dynamic var monospaceSystemFont13: NSFont {
+    @objc dynamic var monospaceSystemFont13: NSFont {
         
-        return NSFont.monospacedDigitSystemFont(ofSize: 13, weight: NSFontWeightRegular)
+        return NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular)
     }
     
     // MARK: - Function
     override func awakeFromNib() {
         
-        if didLoadedMainMenu { return }
+        if didLoadedMainMenu {
+            
+            return
+        }
         
         didLoadedMainMenu = true
         
+        fleetManager = FleetManager()
+        
         ValueTransformerRegister.registerAll()
         UserDefaults.standard.register(defaults: DefaultKeys.defaults)
         CustomHTTPProtocol.start()
@@ -95,7 +91,10 @@ final class AppDelegate: NSObject {
         
         windowManager.prepair()
         
-        if !UserDefaults.standard[.showsDebugMenu] { debugMenuItem.isHidden = true }
+        if !UserDefaults.standard[.showsDebugMenu] {
+            
+            debugMenuItem.isHidden = true
+        }
         
         NotificationCenter.default
             .addObserver(forName: .Periodic, object: historyCleanNotifer, queue: nil) { _ in
@@ -118,16 +117,6 @@ final class AppDelegate: NSObject {
         
         return windowManager.createNewBrowser()
     }
-    
-    func registerScreenshot(_ image: NSBitmapImageRep, fromOnScreen: NSRect) {
-        
-        windowManager.registerScreenshot(image, fromOnScreen: fromOnScreen)
-    }
-    
-    func fire(_ timer: Timer) {
-        
-        updaters.forEach { $0() }
-    }
 }
 
 // MARK: - IBActions
@@ -180,8 +169,13 @@ extension AppDelegate {
     
     @IBAction func removeDatabaseFile(_ sender: AnyObject?) {
         
-        guard let path = Bundle.main.path(forResource: "RemoveDatabaseFileAndRestart", ofType: "app")
-            else { return print("Can not find RemoveDatabaseFileAndRestart.app") }
+        guard let path = Bundle.main.path(forResource: "RemoveDatabaseFileAndRestart", ofType: "app") else {
+            
+            Logger.shared.log("Can not find RemoveDatabaseFileAndRestart.app")
+            
+            return
+        }
+        
         let process = Process()
         process.launchPath = "/usr/bin/open"
         process.arguments = [path]
@@ -240,19 +234,28 @@ extension AppDelegate {
     
     override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
         
-        guard let action = menuItem.action else { return false }
+        guard let action = menuItem.action else {
+            
+            return false
+        }
         
         switch action {
-        case Selector.saveLocalData, Selector.loadLocalData:
+            
+        case #selector(AppDelegate.saveLocalData(_:)),
+             #selector(AppDelegate.loadLocalData(_:)):
+            
             return true
             
-        case Selector.removeDatabaseFile:
+        case #selector(AppDelegate.removeDatabaseFile(_:)):
+            
             return true
             
         case #selector(openInDeckBuilder(_:)):
+            
             return true
             
         default:
+            
             return windowManager.validateMenuItem(menuItem)
         }
     }
@@ -262,12 +265,17 @@ extension AppDelegate: NSApplicationDelegate {
     
     func applicationWillFinishLaunching(_ notification: Notification) {
         
-        NSUserNotificationCenter.default.delegate = self
-        Timer.scheduledTimer(timeInterval: 0.33,
-                             target: self,
-                             selector: .fireInAppDelegate,
-                             userInfo: nil,
-                             repeats: true)
+        if NSEvent.modifierFlags == .option {
+            
+            removeDatabaseFile(nil)
+            
+            exit(0)
+        }
+        
+        Timer.scheduledTimer(withTimeInterval: 0.33, repeats: true) { [weak self] _ in
+            
+            self?.updaters.forEach { $0() }
+        }
     }
     
     func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
@@ -285,12 +293,12 @@ extension AppDelegate: NSUserNotificationCenterDelegate {
 }
 
 @available(OSX 10.12.2, *)
-fileprivate var objectForTouchBar: [Int: NSTouchBar] = [:]
+private var objectForTouchBar: [Int: NSTouchBar] = [:]
 
 @available(OSX 10.12.2, *)
 extension AppDelegate: NSTouchBarProvider {
     
-    @IBOutlet var mainTouchBar: NSTouchBar? {
+    @IBOutlet private var mainTouchBar: NSTouchBar? {
         
         get { return objectForTouchBar[hash] }
         set { objectForTouchBar[hash] = newValue }
@@ -299,11 +307,18 @@ extension AppDelegate: NSTouchBarProvider {
     var touchBar: NSTouchBar? {
         
         get {
-            if windowManager.isMainWindowMostFront { return nil }
-            if let _ = mainTouchBar { return mainTouchBar }
             
-            var topLevel: NSArray = []
-            Bundle.main.loadNibNamed("MainTouchBar", owner: self, topLevelObjects: &topLevel)
+            if windowManager.isMainWindowMostFront {
+                
+                return nil
+            }
+            if let _ = mainTouchBar {
+                
+                return mainTouchBar
+            }
+            
+            var topLevel: NSArray?
+            Bundle.main.loadNibNamed(NSNib.Name("MainTouchBar"), owner: self, topLevelObjects: &topLevel)
             
             return mainTouchBar
         }