- trailing_whitespace
file_length:
warning: 500
-line_length: 500
variable_name:
max_length:
warning: 40
updatePlaneSegment()
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
guard keyPath == "content" else {
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
willSet {
if controlSize == newValue { return }
var frame = view.frame
- frame.size.height = newValue == .regular ? AncherageRepairTimerViewController.regularHeight : AncherageRepairTimerViewController.smallHeight
+ frame.size.height = (newValue == .regular ? type(of: self).regularHeight : type(of: self).smallHeight)
view.frame = frame
var buttonFrame = screenshotButton.frame
view.trackingAreas.forEach {
view.removeTrackingArea($0)
}
- trackingArea = NSTrackingArea(rect: screenshotButton.frame, options: [.mouseEnteredAndExited, .activeInActiveApp], owner: self, userInfo: nil)
+ trackingArea = NSTrackingArea(rect: screenshotButton.frame,
+ options: [.mouseEnteredAndExited, .activeInActiveApp],
+ owner: self,
+ userInfo: nil)
view.addTrackingArea(trackingArea!)
}
@IBOutlet var debugMenuItem: NSMenuItem!
@IBOutlet var billingWindowMenuItem: NSMenuItem!
- private lazy var historyWindowController: HistoryWindowController = { HistoryWindowController() }()
- private lazy var slotItemWindowController: SlotItemWindowController = { SlotItemWindowController() }()
- private lazy var preferencePanelController: PreferencePanelController = { PreferencePanelController() }()
- private lazy var upgradableShipWindowController: UpgradableShipsWindowController = { UpgradableShipsWindowController() }()
- private lazy var airBaseWindowController: AirBaseWindowController = { AirBaseWindowController() }()
- private lazy var browserContentAdjuster: BrowserContentAdjuster = { BrowserContentAdjuster() }()
+ private lazy var historyWindowController: HistoryWindowController = {
+ HistoryWindowController()
+ }()
+ private lazy var slotItemWindowController: SlotItemWindowController = {
+ SlotItemWindowController()
+ }()
+ private lazy var preferencePanelController: PreferencePanelController = {
+ PreferencePanelController()
+ }()
+ private lazy var upgradableShipWindowController: UpgradableShipsWindowController = {
+ UpgradableShipsWindowController()
+ }()
+ private lazy var airBaseWindowController: AirBaseWindowController = {
+ AirBaseWindowController()
+ }()
+ private lazy var browserContentAdjuster: BrowserContentAdjuster = {
+ BrowserContentAdjuster()
+ }()
private(set) lazy var screenshotListWindowController: ScreenshotListWindowController = {
let wc = ScreenshotListWindowController()
let _ = wc.window
return wc
}()
- private lazy var shipWindowController: ShipWindowController = { ShipWindowController() }()
- private lazy var shipMDWindowController: ShipMasterDetailWindowController = { ShipMasterDetailWindowController() } ()
- private lazy var equipmentWindowController: EquipmentWindowController = { EquipmentWindowController() }()
- private lazy var mapWindowController: MapWindowController = { MapWindowController() }()
+ private lazy var shipWindowController: ShipWindowController = {
+ ShipWindowController()
+ }()
+ private lazy var shipMDWindowController: ShipMasterDetailWindowController = {
+ ShipMasterDetailWindowController()
+ } ()
+ private lazy var equipmentWindowController: EquipmentWindowController = {
+ EquipmentWindowController()
+ }()
+ private lazy var mapWindowController: MapWindowController = {
+ MapWindowController()
+ }()
private var browserWindowControllers: [ExternalBrowserWindowController] = []
private var updaters: [() -> Void] = []
browser.window?.makeKeyAndOrderFront(nil)
var token: NSObjectProtocol! = nil
token = NotificationCenter.default
- .addObserver(forName: .NSWindowWillClose, object: browser.window, queue: nil) { [unowned self] notification in
+ .addObserver(forName: .NSWindowWillClose,
+ object: browser.window,
+ queue: nil) { [unowned self] notification in
NotificationCenter.default.removeObserver(token)
if let obj = notification.object as? NSWindow,
let index = self.browserWindowControllers.index(where: { $0.window == obj })
}
extension AppDelegate: NSUserNotificationCenterDelegate {
- func userNotificationCenter(_ center: NSUserNotificationCenter, shouldPresent notification: NSUserNotification) -> Bool {
+ func userNotificationCenter(_ center: NSUserNotificationCenter,
+ shouldPresent notification: NSUserNotification) -> Bool {
return true
}
}
struct ApplicationDirecrories {
static let support: URL = {
- let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
+ let url = FileManager
+ .default
+ .urls(for: .applicationSupportDirectory,
+ in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
return url.appendingPathComponent("com.masakih.KCD")
}()
- static let documents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
- static let pictures = FileManager.default.urls(for: .picturesDirectory, in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
+ static let documents = FileManager
+ .default
+ .urls(for: .documentDirectory,
+ in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
+ static let pictures = FileManager
+ .default
+ .urls(for: .picturesDirectory,
+ in: .userDomainMask).last ?? URL(fileURLWithPath: NSHomeDirectory())
}
else { return nil }
return objects[row]
}
- func tableView(_ tableView: NSTableView, draggingSession session: NSDraggingSession, willBeginAt screenPoint: NSPoint, forRowIndexes rowIndexes: IndexSet) {
+ func tableView(_ tableView: NSTableView,
+ draggingSession session: NSDraggingSession,
+ willBeginAt screenPoint: NSPoint,
+ forRowIndexes rowIndexes: IndexSet) {
guard let first = rowIndexes.first,
let last = rowIndexes.last
else { return }
objectRange = first...last
}
- func tableView(_ tableView: NSTableView, draggingSession session: NSDraggingSession, endedAt screenPoint: NSPoint, operation: NSDragOperation) {
+ func tableView(_ tableView: NSTableView,
+ draggingSession session: NSDraggingSession,
+ endedAt screenPoint: NSPoint,
+ operation: NSDragOperation) {
objectRange = 0...0
}
- func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableViewDropOperation) -> NSDragOperation {
+ func tableView(_ tableView: NSTableView,
+ validateDrop info: NSDraggingInfo,
+ proposedRow row: Int,
+ proposedDropOperation dropOperation: NSTableViewDropOperation) -> NSDragOperation {
guard dropOperation == .above,
!(objectRange ~= row),
let tableView = info.draggingSource() as? NSTableView,
else { return [] }
return .move
}
- func tableView(_ tableView: NSTableView, acceptDrop info: NSDraggingInfo, row: Int, dropOperation: NSTableViewDropOperation) -> Bool {
+ func tableView(_ tableView: NSTableView,
+ acceptDrop info: NSDraggingInfo,
+ row: Int,
+ dropOperation: NSTableViewDropOperation) -> Bool {
tableView.beginUpdates()
defer { tableView.endUpdates() }
}
bookmarks.forEach {
- let item = NSMenuItem(title: $0.name, action: #selector(ExternalBrowserWindowController.selectBookmark(_:)), keyEquivalent: "")
+ let item = NSMenuItem(title: $0.name,
+ action: #selector(ExternalBrowserWindowController.selectBookmark(_:)),
+ keyEquivalent: "")
item.representedObject = $0
bookmarkMenu.addItem(item)
}
}
}
extension BridgeViewController: NSSharingServiceDelegate {
- func sharingServicePicker(_ sharingServicePicker: NSSharingServicePicker, delegateFor sharingService: NSSharingService) -> NSSharingServiceDelegate? {
+ func sharingServicePicker(_ sharingServicePicker: NSSharingServicePicker,
+ delegateFor sharingService: NSSharingService) -> NSSharingServiceDelegate? {
return self
}
func sharingService(_ sharingService: NSSharingService, sourceFrameOnScreenForShareItem item: Any) -> NSRect {
return self.view.window?.convertToScreen(contentRect) ?? .zero
}
- func sharingService(_ sharingService: NSSharingService, transitionImageForShareItem item: Any, contentRect: UnsafeMutablePointer<NSRect>) -> NSImage? {
+ func sharingService(_ sharingService: NSSharingService,
+ transitionImageForShareItem item: Any,
+ contentRect: UnsafeMutablePointer<NSRect>) -> NSImage? {
return item as? NSImage
}
- func sharingService(_ sharingService: NSSharingService, sourceWindowForShareItems items: [Any], sharingContentScope: UnsafeMutablePointer<NSSharingContentScope>) -> NSWindow? {
+ func sharingService(_ sharingService: NSSharingService,
+ sourceWindowForShareItems items: [Any],
+ sharingContentScope: UnsafeMutablePointer<NSSharingContentScope>) -> NSWindow? {
return view.window
}
}
case .below:
flashY = contentHeight - flashRect.height
case .divided:
- flashY = contentHeight - flashRect.height - fleetViewController.upsideHeight - BroserWindowController.margin
+ flashY = contentHeight
+ - flashRect.height
+ - fleetViewController.upsideHeight
+ - BroserWindowController.margin
case .oldStyle:
flashY = contentHeight - flashRect.height - BroserWindowController.flashTopMargin
}
fleetViewY = contentHeight - fleetViewHeight
case .below:
fleetViewHeight = fleetViewController.normalHeight
- fleetViewY = contentHeight - fleetViewHeight - flashRect.height - BroserWindowController.margin
+ fleetViewY = contentHeight
+ - fleetViewHeight
+ - flashRect.height
+ - BroserWindowController.margin
case .divided:
- fleetViewHeight = fleetViewController.normalHeight + flashRect.height + BroserWindowController.margin + BroserWindowController.margin
+ fleetViewHeight = fleetViewController.normalHeight
+ + flashRect.height
+ + BroserWindowController.margin
+ + BroserWindowController.margin
fleetViewY = contentHeight - fleetViewHeight
case .oldStyle:
fleetViewHeight = FleetViewController.oldStyleFleetViewHeight
- fleetViewY = contentHeight - fleetViewHeight - flashRect.height - BroserWindowController.margin - BroserWindowController.flashTopMargin
+ fleetViewY = contentHeight
+ - fleetViewHeight
+ - flashRect.height
+ - BroserWindowController.margin
+ - BroserWindowController.flashTopMargin
}
fleetListRect.size.height = fleetViewHeight
fleetListRect.origin.y = fleetViewY
var array: NSArray = []
Bundle.main.loadNibNamed("BroswerTouchBar", owner: self, topLevelObjects: &array)
- shipTypeSegment.bind(NSSelectedIndexBinding, to: tabViewItemViewControllers[0], withKeyPath: "selectedShipType", options: nil)
+ shipTypeSegment.bind(NSSelectedIndexBinding,
+ to: tabViewItemViewControllers[0],
+ withKeyPath: "selectedShipType",
+ options: nil)
let o = selectedMainTabIndex
selectedMainTabIndex = o
guard let button = self.shipTypeButton.view as? NSButton else { return }
let vc = self.tabViewItemViewControllers[newValue]
button.isHidden = !vc.hasShipTypeSelector
- self.shipTypeSegment.bind(NSSelectedIndexBinding, to: vc, withKeyPath: "selectedShipType", options: nil)
+ self.shipTypeSegment.bind(NSSelectedIndexBinding,
+ to: vc,
+ withKeyPath: "selectedShipType",
+ options: nil)
}
}
return mainTouchBar
self.removeObserver(self, forKeyPath: "selectionIndexPaths")
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
if let o = object as? CollectionView, o == self {
if !QLPreviewPanel.sharedPreviewPanelExists() { return }
if !QLPreviewPanel.shared().isVisible { return }
}
private class MocGenerater {
- class func genarate(_ info: CoreDataIntormation) throws -> (model: NSManagedObjectModel, coordinator: NSPersistentStoreCoordinator, moc: NSManagedObjectContext) {
- do {
- let model = try createManagedObjectModel(info)
- let coordinator = try createPersistentStoreCoordinator(info, model)
- let moc = createManagedObjectContext(coordinator)
- return (model: model, coordinator: coordinator, moc: moc)
- } catch {
- throw error
- }
+ class func genarate(_ info: CoreDataIntormation) throws ->
+ (model: NSManagedObjectModel, coordinator: NSPersistentStoreCoordinator, moc: NSManagedObjectContext) {
+ do {
+ let model = try createManagedObjectModel(info)
+ let coordinator = try createPersistentStoreCoordinator(info, model)
+ let moc = createManagedObjectContext(coordinator)
+ return (model: model, coordinator: coordinator, moc: moc)
+ } catch {
+ throw error
+ }
}
private class func createManagedObjectModel(_ info: CoreDataIntormation) throws -> NSManagedObjectModel {
}
return model
}
-
- private class func createPersistentStoreCoordinator(_ info: CoreDataIntormation, _ model: NSManagedObjectModel) throws -> NSPersistentStoreCoordinator {
+ // swiftlint:disable:next line_length function_body_length
+ private class func createPersistentStoreCoordinator(_ info: CoreDataIntormation, _ model: NSManagedObjectModel)
+ throws -> NSPersistentStoreCoordinator {
var failError: NSError? = nil
var shouldFail = false
var failureReason = "There was an error creating or loading the application's saved data."
do {
let p = try ApplicationDirecrories.support.resourceValues(forKeys: [.isDirectoryKey])
if !p.isDirectory! {
+ // swiftlint:disable:next line_length
failureReason = "Expected a folder to store application data, found a file \(ApplicationDirecrories.support.path)."
shouldFail = true
}
let nserror = error as NSError
if nserror.code == NSFileReadNoSuchFileError {
do {
- try FileManager.default.createDirectory(at: ApplicationDirecrories.support, withIntermediateDirectories: false, attributes: nil)
+ try FileManager
+ .default
+ .createDirectory(at: ApplicationDirecrories.support,
+ withIntermediateDirectories: false,
+ attributes: nil)
} catch {
failError = nserror
}
coordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
let url = ApplicationDirecrories.support.appendingPathComponent(info.storeFileName)
do {
- try coordinator!.addPersistentStore(ofType: info.storeType, configurationName: nil, at: url, options: info.storeOptions)
+ try coordinator!.addPersistentStore(ofType: info.storeType,
+ configurationName: nil,
+ at: url,
+ options: info.storeOptions)
} catch {
failError = error as NSError
// Data Modelが更新されていたらストアファイルを削除してもう一度
- if failError?.domain == NSCocoaErrorDomain && (failError?.code == 134130 || failError?.code == 134110) && info.deleteAndRetry {
+ if failError?.domain == NSCocoaErrorDomain,
+ (failError?.code == 134130 || failError?.code == 134110),
+ info.deleteAndRetry {
self.removeDatabaseFile(info)
do {
- try coordinator!.addPersistentStore(ofType: info.storeType, configurationName: nil, at: url, options: info.storeOptions)
+ try coordinator!.addPersistentStore(ofType: info.storeType,
+ configurationName: nil,
+ at: url,
+ options: info.storeOptions)
failError = nil
} catch {
failError = error as NSError
}
return coordinator!
}
+ // swiftlint:disable:next line_length
private class func createManagedObjectContext(_ coordinator: NSPersistentStoreCoordinator) -> NSManagedObjectContext {
let moc = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
moc.persistentStoreCoordinator = coordinator
func object(with objectId: NSManagedObjectID) -> NSManagedObject {
return managedObjectContext.object(with: objectId)
}
- func objects<T>(with entity: Entity<T>, sortDescriptors: [NSSortDescriptor]? = nil, predicate: NSPredicate? = nil) throws -> [T] {
+ func objects<T>(with entity: Entity<T>,
+ sortDescriptors: [NSSortDescriptor]? = nil,
+ predicate: NSPredicate? = nil) throws -> [T] {
let req = NSFetchRequest<T>(entityName: entity.name)
req.sortDescriptors = sortDescriptors
req.predicate = predicate
#endif
}
- class func dump<T>(_ value: T, name: String? = nil, indent: Int = 0, maxDepth: Int = Int.max, maxItems: Int = Int.max) -> T {
+ class func dump<T>(_ value: T,
+ name: String? = nil,
+ indent: Int = 0,
+ maxDepth: Int = Int.max,
+ maxItems: Int = Int.max) -> T {
#if DEBUG
return Swift.dump(value, name: name, indent: indent, maxDepth: maxDepth, maxItems: maxItems)
#else
return String(format: format, arguments: [fleetName, areaName, areaNumber])
}
if isBossCell {
- let format = NSLocalizedString("%@ battle against the enemy main fleet at %@ war zone in %@ (%@) now", comment: "Sortie")
+ let format = NSLocalizedString("%@ battle against the enemy main fleet at %@ war zone in %@ (%@) now",
+ comment: "Sortie")
return String(format: format, arguments: [fleetName, battleCellNumber as NSNumber, areaName, areaNumber])
}
let format = NSLocalizedString("%@ battle at %@ war zone in %@ (%@) now", comment: "Sortie")
#endif
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == "selection" || keyPath == "content.battleCell" {
willChangeValue(forKey: "sortieString")
didChangeValue(forKey: "sortieString")
self.secondsShipNames = secondsShipNames
super.init()
}
- func replace(identifier: String? = nil, weekday: Int? = nil, equipmentType: EquipmentType? = nil, targetEquipment: String? = nil, remodelEquipment: String? = nil, requiredEquipments: RequiredEquipmentSet? = nil, secondsShipNames: [String]? = nil) -> EnhancementListItem {
+ func replace(identifier: String? = nil,
+ weekday: Int? = nil,
+ equipmentType: EquipmentType? = nil,
+ targetEquipment: String? = nil,
+ remodelEquipment: String? = nil,
+ requiredEquipments: RequiredEquipmentSet? = nil,
+ secondsShipNames: [String]? = nil) -> EnhancementListItem {
return EnhancementListItem(identifier: identifier ?? self.identifier,
weekday: weekday ?? self.weekday,
equipmentType: equipmentType ?? self.equipmentType,
webView.applicationNameForUserAgent = AppDelegate.shared.appNameForUserAgent
webView.frameLoadDelegate = self
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == "canGoBack" {
goSegment.setEnabled(webView.canGoBack, forSegment: 0)
return
}
func webView(_ sender: WebView!, didFinishLoadFor frame: WebFrame!) {
if let waitingBookmarkItem = waitingBookmarkItem {
- Timer.scheduledTimer(timeInterval: waitingBookmarkItem.scrollDelay, target: self, selector: .updateContentVisibleRect, userInfo: waitingBookmarkItem, repeats: false)
+ Timer.scheduledTimer(timeInterval: waitingBookmarkItem.scrollDelay,
+ target: self,
+ selector: .updateContentVisibleRect,
+ userInfo: waitingBookmarkItem,
+ repeats: false)
}
waitingBookmarkItem = nil
}
- func webView(_ webView: WebView!, decidePolicyForNavigationAction actionInformation: [AnyHashable: Any]!, request: URLRequest!, frame: WebFrame!, decisionListener listener: WebPolicyDecisionListener!) {
+ func webView(_ webView: WebView!,
+ decidePolicyForNavigationAction actionInformation: [AnyHashable: Any]!,
+ request: URLRequest!,
+ frame: WebFrame!,
+ decisionListener listener: WebPolicyDecisionListener!) {
if actionInformation?[WebActionNavigationTypeKey] as? WebNavigationType == .linkClicked {
if canMovePage {
listener.use()
deckController.managedObjectContext = ServerDataStore.default.managedObjectContext
deckController.fetchPredicate = NSPredicate(format: "id = %ld", number)
let req = NSFetchRequest<NSFetchRequestResult>()
- req.entity = NSEntityDescription.entity(forEntityName: Deck.entityName, in: deckController.managedObjectContext!)
+ req.entity = NSEntityDescription.entity(forEntityName: Deck.entityName,
+ in: deckController.managedObjectContext!)
req.predicate = deckController.fetchPredicate
do {
try deckController.fetch(with: req, merge: false)
subscript(_ index: Int) -> Ship? { return deck?[index] }
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
if context == &pDeckContext {
ships = (0..<6).flatMap { return self[$0] }
return
private(set) var fleets: [Fleet] = []
private var fleetController: NSArrayController!
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == "arrangedObjects.ships" {
setNewFleetNumberToShip()
return
let date = DateFormatter.localizedString(from: untilDate!, dateStyle: .none, timeStyle: .medium)
let alert = NSAlert()
alert.messageText = NSLocalizedString("Reload interval is too short?", comment: "")
- alert.informativeText = String(format: NSLocalizedString("Reload interval is too short.\nWait until %@.", comment: ""), date)
+ let format = NSLocalizedString("Reload interval is too short.\nWait until %@.", comment: "")
+ alert.informativeText = String(format: format, date)
alert.runModal()
return
}
}
- func webView(_ sender: WebView!, contextMenuItemsForElement element: [AnyHashable: Any]!, defaultMenuItems: [Any]!) -> [Any]! {
+ func webView(_ sender: WebView!,
+ contextMenuItemsForElement element: [AnyHashable: Any]!,
+ defaultMenuItems: [Any]!) -> [Any]! {
guard let menuItems = defaultMenuItems as? [NSMenuItem] else { return [] }
return menuItems.flatMap {
GameViewController.excludeMenuItemTag.contains($0.tag) ? nil : $0
else { return nil }
return kenzoMarks.first
}
- func kenzoMark(fuel: Int, bull: Int, steel: Int, bauxite: Int, kaihatusizai: Int, kDockId: Int, shipId: Int) -> KenzoMark? {
+ func kenzoMark(fuel: Int,
+ bull: Int,
+ steel: Int,
+ bauxite: Int,
+ kaihatusizai: Int,
+ kDockId: Int,
+ shipId: Int) -> KenzoMark? {
+ // swiftlint:disable:next line_length
let predicate = NSPredicate(format: "fuel = %ld AND bull = %ld AND steel = %ld AND bauxite = %ld AND kaihatusizai = %ld AND kDockId = %ld AND created_ship_id = %ld",
fuel, bull, steel, bauxite, kaihatusizai, kDockId, shipId)
guard let kenzoMarks = try? objects(with: KenzoMark.entity, predicate: predicate)
guard let nextNotifyDate = Calendar.current.date(from: currentDay)
else { fatalError("Can not create time of notify") }
let nextNotifyTime = nextNotifyDate.timeIntervalSinceNow + 0.1
- Timer.scheduledTimer(timeInterval: nextNotifyTime, target: self, selector: .notifyIfNeeded, userInfo: nil, repeats: false)
+ Timer.scheduledTimer(timeInterval: nextNotifyTime,
+ target: self,
+ selector: .notifyIfNeeded,
+ userInfo: nil,
+ repeats: false)
}
}
shipController.addObserver(self, forKeyPath: NSSortDescriptorsBinding, context: nil)
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == NSSortDescriptorsBinding {
UserDefaults.standard.powerupSupportSortDecriptors = shipController.sortDescriptors
return
set {
AppDelegate.shared.screenShotSaveDirectory = newValue
- let index = screenShotSaveDirectoryPopUp.indexOfItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
+ let index = screenShotSaveDirectoryPopUp
+ .indexOfItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
guard let item = screenShotSaveDirectoryPopUp.item(at: index)
else { return }
panel.canChooseDirectories = true
panel.canChooseFiles = false
panel.beginSheetModal(for: window) {
- self.screenShotSaveDirectoryPopUp.selectItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
+ self.screenShotSaveDirectoryPopUp
+ .selectItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
guard $0 != NSModalResponseCancel,
let path = panel.url?.path
else { return }
updateSelections()
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == NSSelectionIndexesBinding {
updateSelections()
return
doneButton.action = .done
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == NSSelectionIndexesBinding {
updateSelections()
return
guard let originalImage = NSImage(contentsOf: $0.url) else { return nil }
let trimedImage = NSImage(size: self.currentTrimInfo.rect.size)
trimedImage.lockFocus()
- originalImage.draw(at: .zero, from: self.currentTrimInfo.rect, operation: NSCompositeCopy, fraction: 1.0)
+ originalImage.draw(at: .zero,
+ from: self.currentTrimInfo.rect,
+ operation: NSCompositeCopy,
+ fraction: 1.0)
trimedImage.unlockFocus()
return trimedImage
let scrollView = collectionView.enclosingScrollView
nc.addObserver(forName: .NSViewFrameDidChange, object: collectionView, queue: nil, using: viewFrameDidChange)
- nc.addObserver(forName: .NSScrollViewDidLiveScroll, object: collectionView.enclosingScrollView, queue: nil) { _ in
+ nc.addObserver(forName: .NSScrollViewDidLiveScroll,
+ object: collectionView.enclosingScrollView, queue: nil) { _ in
let visibleItems = self.collectionView.indexPathsForVisibleItems()
self.collectionVisibleDidChangeHandler?(visibleItems)
}
DispatchQueue.main
.asyncAfter(deadline: .now() + 0.0001 ) { self.reloadData() }
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
if let object = object as? NSCollectionView,
object == collectionView {
let selections = collectionView.selectionIndexPaths
}
private func reloadData() {
- guard let f = try? FileManager.default.contentsOfDirectory(at: screenshotSaveDirectoryURL, includingPropertiesForKeys: nil) else {
+ guard let f = try? FileManager
+ .default
+ .contentsOfDirectory(at: screenshotSaveDirectoryURL, includingPropertiesForKeys: nil) else {
print("can not read list of screenshot directory")
return
}
}
extension ScreenshotListViewController: NSCollectionViewDelegateFlowLayout {
- func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
+ func collectionView(_ collectionView: NSCollectionView,
+ layout collectionViewLayout: NSCollectionViewLayout,
+ sizeForItemAt indexPath: IndexPath) -> NSSize {
let f = realFromZoom(zoom: zoom)
return NSSize(width: f, height: f)
}
@available(OSX 10.12.2, *)
extension ScreenshotListViewController: NSTouchBarDelegate {
- static let ServicesItemIdentifier: NSTouchBarItemIdentifier = NSTouchBarItemIdentifier(rawValue: "com.masakih.sharingTouchBarItem")
+ static let ServicesItemIdentifier: NSTouchBarItemIdentifier
+ = NSTouchBarItemIdentifier(rawValue: "com.masakih.sharingTouchBarItem")
@IBOutlet var screenshotTouchBar: NSTouchBar! {
get { return kTouchBars[hashValue] }
override func makeTouchBar() -> NSTouchBar? {
var array: NSArray = []
Bundle.main.loadNibNamed("ScreenshotTouchBar", owner: self, topLevelObjects: &array)
- let identifiers = self.screenshotTouchBar.defaultItemIdentifiers + [ScreenshotListViewController.ServicesItemIdentifier]
+ let identifiers = self.screenshotTouchBar.defaultItemIdentifiers
+ + [ScreenshotListViewController.ServicesItemIdentifier]
screenshotTouchBar.defaultItemIdentifiers = identifiers
if collectionVisibleDidChangeHandler == nil {
return screenshotTouchBar
}
- func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem? {
+ func touchBar(_ touchBar: NSTouchBar,
+ makeItemForIdentifier identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem? {
guard identifier == ScreenshotListViewController.ServicesItemIdentifier
else { return nil }
if sharingItem == nil {
currentRightViewController?.share(sender)
}
@IBAction func changeToEditor(_ sender: AnyObject?) {
- rightController.transition(from: detailViewController, to: editorViewController, options: [.slideLeft], completionHandler: nil)
+ rightController.transition(from: detailViewController,
+ to: editorViewController,
+ options: [.slideLeft],
+ completionHandler: nil)
currentRightViewController = editorViewController
}
@IBAction func changeToDetail(_ sender: AnyObject?) {
- rightController.transition(from: editorViewController, to: detailViewController, options: [.slideRight], completionHandler: nil)
+ rightController.transition(from: editorViewController,
+ to: detailViewController,
+ options: [.slideRight],
+ completionHandler: nil)
currentRightViewController = detailViewController
}
}
extension ScreenshotListWindowController: NSSharingServicePickerDelegate {
- func sharingServicePicker(_ sharingServicePicker: NSSharingServicePicker, delegateFor sharingService: NSSharingService) -> NSSharingServiceDelegate? {
+ func sharingServicePicker(_ sharingServicePicker: NSSharingServicePicker,
+ delegateFor sharingService: NSSharingService) -> NSSharingServiceDelegate? {
return currentRightViewController
}
}
private static let leftMinWidth: CGFloat = 299
private static let rightMinWidth: CGFloat = 400
- func splitView(_ splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
+ func splitView(_ splitView: NSSplitView,
+ constrainMinCoordinate proposedMinimumPosition: CGFloat,
+ ofSubviewAt dividerIndex: Int) -> CGFloat {
if dividerIndex == 0 { return ScreenshotListWindowController.leftMinWidth }
return proposedMinimumPosition
}
- func splitView(_ splitView: NSSplitView, constrainSplitPosition proposedPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
+ func splitView(_ splitView: NSSplitView,
+ constrainSplitPosition proposedPosition: CGFloat,
+ ofSubviewAt dividerIndex: Int) -> CGFloat {
if dividerIndex == 0 {
let rightWidth = splitView.frame.size.width - proposedPosition
if rightWidth < ScreenshotListWindowController.rightMinWidth {
standardDeviationField.isHidden = false
#endif
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if keyPath == NSSortDescriptorsBinding {
UserDefaults.standard.shipviewSortDescriptors = shipController.sortDescriptors
return
let path = multiline {
[(NSPoint, NSPoint)]()
.appended { (NSPoint(x: width - offset, y: 0), NSPoint(x: width - offset, y: height)) }
- .appended { (NSPoint(x: width - offset - padding, y: 0), NSPoint(x: width - offset - padding, y: height)) }
+ .appended {
+ (NSPoint(x: width - offset - padding, y: 0), NSPoint(x: width - offset - padding, y: height))
+ }
}
path?.lineWidth = 1.0
return path
let height = bounds.height
let path = multiline {
[(NSPoint, NSPoint)]()
- .appended { (NSPoint(x: width - offset, y: 0), NSPoint(x: width - offset, y: height)) }
- .appended { (NSPoint(x: width - offset - padding, y: 0), NSPoint(x: width - offset - padding, y: height)) }
- .appended { (NSPoint(x: width - offset - padding * 2, y: 0), NSPoint(x: width - offset - padding * 2, y: height)) }
+ .appended { (NSPoint(x: width - offset, y: 0),
+ NSPoint(x: width - offset, y: height)) }
+ .appended {
+ (NSPoint(x: width - offset - padding, y: 0),
+ NSPoint(x: width - offset - padding, y: height))
+ }
+ .appended {
+ (NSPoint(x: width - offset - padding * 2, y: 0),
+ NSPoint(x: width - offset - padding * 2, y: height))
+ }
}
path?.lineWidth = 1.0
return path
let path = multiline {
[(NSPoint, NSPoint)]()
.appended { (NSPoint(x: width - offset - slideOffset, y: 0), NSPoint(x: width - offset, y: height)) }
- .appended { (NSPoint(x: width - offset - padding - slideOffset, y: 0), NSPoint(x: width - offset - padding, y: height)) }
+ .appended {
+ (NSPoint(x: width - offset - padding - slideOffset, y: 0),
+ NSPoint(x: width - offset - padding, y: height))
+ }
}
path?.lineWidth = 2.0
let path = multiline {
[(NSPoint, NSPoint)]()
.appended { (NSPoint(x: width - offset - slideOffset, y: 0), NSPoint(x: width - offset, y: height)) }
- .appended { (NSPoint(x: width - offset - padding - slideOffset, y: 0), NSPoint(x: width - offset - padding, y: height)) }
- .appended { (NSPoint(x: width - offset - padding * 2 - slideOffset, y: 0), NSPoint(x: width - offset - padding * 2, y: height)) }
+ .appended {
+ (NSPoint(x: width - offset - padding - slideOffset, y: 0),
+ NSPoint(x: width - offset - padding, y: height))
+ }
+ .appended {
+ (NSPoint(x: width - offset - padding * 2 - slideOffset, y: 0),
+ NSPoint(x: width - offset - padding * 2, y: height))
+ }
}
path?.lineWidth = 2.0
return path
plistDownloadQueue.maxConcurrentOperationCount = 1
plistDownloadQueue.qualityOfService = .background
let configuration = URLSessionConfiguration.default
- plistDownloadSession = URLSession(configuration: configuration, delegate: self, delegateQueue: plistDownloadQueue)
+ plistDownloadSession = URLSession(configuration: configuration,
+ delegate: self,
+ delegateQueue: plistDownloadQueue)
}
private var plistDownloadSession: URLSession!
func download(using block: @escaping ([EnhancementListItem]) -> Void) {
if let _ = plistDownloadTask { return }
+ // swiftlint:disable:next line_length
guard let plistURL = URL(string: "http://git.osdn.jp/view?p=kcd/KCD.git;a=blob;f=KCD/\(resourceName).\(resourceExtension);hb=HEAD")
else { return }
textStorage.addLayoutManager(layoutManager)
let range = layoutManager.glyphRange(for: textContainer)
let glyph = UnsafeMutablePointer<CGGlyph>.allocate(capacity: range.length)
- let glyphLength = layoutManager.getGlyphs(in: range, glyphs: glyph, properties: nil, characterIndexes: nil, bidiLevels: nil)
+ let glyphLength = layoutManager.getGlyphs(in: range,
+ glyphs: glyph,
+ properties: nil,
+ characterIndexes: nil,
+ bidiLevels: nil)
var point = NSPoint(x: StrokeTextFieldCell.boarderWidth, y: 0)
point.y -= font.descender
if controlView.isFlipped {
}
}
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey: Any]?,
+ context: UnsafeMutableRawPointer?) {
if context == &pShipStatusContext {
needsDisplay = true
return
}
}
+ // 市松模様を描画
+ private func drawCheckerIn(_ image: NSImage, checkerSize: Int = 10) {
+ let size = image.size
+ image.lockFocus()
+ NSColor.white.setFill()
+ NSRectFill(NSRect(origin: .zero, size: size))
+ NSColor.lightGray.setFill()
+ let colTileNum: Int = Int(size.width / CGFloat(checkerSize))
+ let rowTileNum: Int = Int(size.height / CGFloat(checkerSize))
+ for i in 0..<colTileNum {
+ for j in 0..<rowTileNum {
+ if i % 2 == 0 && j % 2 == 1 { continue }
+ if i % 2 == 1 && j % 2 == 0 { continue }
+ NSRectFill(NSRect(x: i * checkerSize, y: j * checkerSize, width: checkerSize, height: checkerSize))
+ }
+ }
+ image.unlockFocus()
+ }
fileprivate func calcImagePosition() {
let imageCount = images.count
if imageCount == 0 {
DispatchQueue(label: "makeTrimedImage queue").async {
let numberOfCol = imageCount < self.columnCount ? imageCount : self.columnCount
let numberOfRow = imageCount / self.columnCount + ((imageCount % self.columnCount != 0) ? 1 : 0)
- let tiledImage = NSImage(size: NSSize(width: size.width * CGFloat(numberOfCol), height: size.height * CGFloat(numberOfRow)))
+ let tiledImage = NSImage(size: NSSize(width: size.width * CGFloat(numberOfCol),
+ height: size.height * CGFloat(numberOfRow)))
- // 市松模様を描画
- tiledImage.lockFocus()
- NSColor.white.setFill()
- NSRectFill(NSRect(x: 0, y: 0, width: size.width * CGFloat(numberOfCol), height: size.height * CGFloat(numberOfRow)))
- NSColor.lightGray.setFill()
- let tileSize = 10
- let colTileNum: Int = Int((size.width * CGFloat(numberOfCol)) / CGFloat(tileSize))
- let rowTileNum: Int = Int((size.height * CGFloat(numberOfRow)) / CGFloat(tileSize))
- for i in 0..<colTileNum {
- for j in 0..<rowTileNum {
- if i % 2 == 0 && j % 2 == 1 { continue }
- if i % 2 == 1 && j % 2 == 0 { continue }
- NSRectFill(NSRect(x: i * tileSize, y: j * tileSize, width: tileSize, height: tileSize))
- }
- }
- tiledImage.unlockFocus()
+ self.drawCheckerIn(tiledImage)
// 画像の描画
let offset = (0..<self.images.count).map {
NSPoint(x: CGFloat($0 % self.columnCount) * size.width,
- y: size.height * CGFloat(numberOfRow) - CGFloat($0 / self.columnCount + 1) * size.height)
+ y: size.height * CGFloat(numberOfRow) - CGFloat($0 / self.columnCount + 1) * size.height)
}
let imageRect = NSRect(origin: .zero, size: size)
tiledImage.lockFocus()
$0.0.draw(at: $0.1, from: imageRect, operation: NSCompositeCopy, fraction: 1.0)
}
tiledImage.unlockFocus()
- let newInfos = offset.map {
- TitledImageCellInformation(with: NSRect(origin: $0, size: size))
- }
+ let newInfos = offset.map { TitledImageCellInformation(with: NSRect(origin: $0, size: size)) }
DispatchQueue.main.sync {
self.imageCell.image = tiledImage
}
}
}
-
+ // swiftlint:disable:next line_length
private func calcurated(trackingAreaInfo originalInfos: [TitledImageCellInformation]) -> [TitledImageCellInformation] {
guard let size = imageCell.image?.size else { return originalInfos }
let bounds = self.bounds
y: (bounds.height - size.height) / 2)
} else if ratioX > ratioY {
ratio = ratioY
- offset = (x: 0,
- y: (bounds.height - size.height * ratio) / 2)
+ offset = (x: 0, y: (bounds.height - size.height * ratio) / 2)
} else {
ratio = ratioX
- offset = (x: (bounds.width - size.width * ratio) / 2,
- y: 0)
+ offset = (x: (bounds.width - size.width * ratio) / 2, y: 0)
}
return originalInfos.map {
y: $0.frame.minY * ratio + offset.y,
width: $0.frame.width * ratio,
height: $0.frame.height * ratio)
- }.map {
- TitledImageCellInformation(with: $0)
- }
+ }.map { TitledImageCellInformation(with: $0) }
}
fileprivate func removeAllTrackingAreas() {
trackingAreas.forEach { removeTrackingArea($0) }
let mouse = convert(event.locationInWindow, from: nil)
infos.enumerated().forEach {
if !NSMouseInRect(mouse, $0.element.frame, isFlipped) { return }
- guard let pItem = NSPasteboardItem(pasteboardPropertyList: $0.offset, ofType: TiledImageView.privateDraggingUTI)
+ guard let pItem = NSPasteboardItem(pasteboardPropertyList: $0.offset,
+ ofType: TiledImageView.privateDraggingUTI)
else { fatalError() }
let item = NSDraggingItem(pasteboardWriter: pItem)
item.setDraggingFrame($0.element.frame, contents: images[$0.offset])
}
extension TiledImageView: NSDraggingSource {
- func draggingSession(_ session: NSDraggingSession, sourceOperationMaskFor context: NSDraggingContext) -> NSDragOperation {
+ func draggingSession(_ session: NSDraggingSession,
+ sourceOperationMaskFor context: NSDraggingContext) -> NSDragOperation {
return context == .withinApplication ? .move : []
}
override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {