private var updaters: [() -> Void] = []
private var didLoadedMainMenu = false
- var screenShotSaveDirectory: String {
-
- get {
-
- return UserDefaults.standard[.screenShotSaveDirectory] ?? ApplicationDirecrories.pictures.path
- }
- set {
-
- UserDefaults.standard[.screenShotSaveDirectory] = newValue
- }
- }
-
- var screenShotSaveDirectoryURL: URL {
-
- return URL(fileURLWithPath: screenShotSaveDirectory)
- }
-
@objc dynamic var monospaceSystemFont11: NSFont {
return NSFont.monospacedDigitSystemFont(ofSize: 11, weight: .regular)
extension ApplicationDirecrories {
- static let screenshotSaveDirectoryURL: URL = {
+ var screenshotSaveDirectoryURL: URL {
- let parentURL = URL(fileURLWithPath: AppDelegate.shared.screenShotSaveDirectory)
+ let parentURL = URL(fileURLWithPath: screenShotSaveDirectory)
let url = parentURL.appendingPathComponent(localizedAppName())
- let fm = FileManager.default
- var isDir: ObjCBool = false
- do {
-
- if !fm.fileExists(atPath: url.path, isDirectory: &isDir) {
-
- try fm.createDirectory(at: url, withIntermediateDirectories: false)
-
- } else if !isDir.boolValue {
-
- print("\(url) is regular file, not direcory.")
-
- return parentURL
- }
-
- } catch {
-
- print("Can not create screenshot save directory.")
-
- return parentURL
- }
+ guard checkDirectory(url, create: true) else { return parentURL }
return url
- }()
+ }
+
+ var screenShotSaveDirectory: String {
+
+ return UserDefaults.standard[.screenShotSaveDirectory] ?? ApplicationDirecrories.pictures.path
+ }
+
+ func setScreenshotDirectory(_ newValue: String) {
+
+ UserDefaults.standard[.screenShotSaveDirectory] = newValue
+ }
}
webView.cacheDisplay(in: frame, to: rep)
- ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ ScreenshotRegister(ApplicationDirecrories.shared.screenshotSaveDirectoryURL)
.registerScreenshot(rep, name: localizedAppName())
}
rep.size = NSSize(width: 800, height: 480)
}
- ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ ScreenshotRegister(ApplicationDirecrories.shared.screenshotSaveDirectoryURL)
.registerScreenshot(rep, name: localizedAppName())
}
private(set) var screenShotSaveDirectory: String {
- get { return AppDelegate.shared.screenShotSaveDirectory }
+ get { return ApplicationDirecrories.shared.screenShotSaveDirectory }
set {
- AppDelegate.shared.screenShotSaveDirectory = newValue
+ ApplicationDirecrories.shared.setScreenshotDirectory(newValue)
let index = screenShotSaveDirectoryPopUp
.indexOfItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
super.windowDidLoad()
- screenShotSaveDirectory = AppDelegate.shared.screenShotSaveDirectory
+ screenShotSaveDirectory = ApplicationDirecrories.shared.screenShotSaveDirectory
guard let window = window else {
return name
}
- private var screenshotSaveDirectoryURL: URL {
-
- let parentURL = URL(fileURLWithPath: AppDelegate.shared.screenShotSaveDirectory)
- let url = parentURL.appendingPathComponent(dirName)
- let fm = FileManager.default
- var isDir: ObjCBool = false
-
- do {
-
- if !fm.fileExists(atPath: url.path, isDirectory: &isDir) {
-
- try fm.createDirectory(at: url, withIntermediateDirectories: false)
-
- } else if !isDir.boolValue {
-
- Logger.shared.log("\(url) is regular file, not direcory.")
-
- return parentURL
- }
-
- } catch {
-
- Logger.shared.log("Can not create screenshot save directory.")
-
- return parentURL
- }
-
- return url
- }
-
var indexPathsOfItemsBeingDragged: Set<IndexPath>?
// MARK: - Function
Future<[ScreenshotInformation]> {
- ScreenshotLoader(self.screenshotSaveDirectoryURL).merge(screenshots: [])
+ ScreenshotLoader(ApplicationDirecrories.shared.screenshotSaveDirectoryURL)
+ .merge(screenshots: [])
}
.onSuccess { screenshots in
func registerScreenshot(_ image: NSBitmapImageRep) {
- ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ ScreenshotRegister(ApplicationDirecrories.shared.screenshotSaveDirectoryURL)
.registerScreenshot(image, name: localizedAppName())
}
.flatMap { NSBitmapImageRep(data: $0) }
.map {
- ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ ScreenshotRegister(ApplicationDirecrories.shared.screenshotSaveDirectoryURL)
.registerScreenshot($0, name: localizedAppName())
}
}