F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ECE190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m */; };
F4131ED5190F63D8004F7F9A /* HMUpdateSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ED4190F63D8004F7F9A /* HMUpdateSlotItemCommand.m */; };
F4131ED8190FA08D004F7F9A /* HMDestroyItem2Command.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ED7190FA08D004F7F9A /* HMDestroyItem2Command.m */; };
- F4131EDC190FEBCC004F7F9A /* HMSlotItemWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */; };
F4131EDE190FEBDB004F7F9A /* HMSlotItemWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4131EE0190FEBDB004F7F9A /* HMSlotItemWindowController.xib */; };
F4131EE61910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EE51910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m */; };
F4131EE91911445F004F7F9A /* HMSlotItemEquipTypeTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131EE81911445F004F7F9A /* HMSlotItemEquipTypeTransformer.m */; };
F4268034195332A000B2C27F /* HMPowerUpCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4268033195332A000B2C27F /* HMPowerUpCommand.m */; };
F42680371957000200B2C27F /* HMTimerCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F42680361957000200B2C27F /* HMTimerCountFormatter.m */; };
F42CBB231D1F967F004C2AE2 /* HMHistoryMarkTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */; };
- F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */; };
F431E9761DF3AC1C00FB56AE /* HMSetActionCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F431E9751DF3AC1C00FB56AE /* HMSetActionCommand.m */; };
F431E9791DF3CD1B00FB56AE /* HMActinKindTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F431E9781DF3CD1B00FB56AE /* HMActinKindTransformer.m */; };
F431E97C1DF3D2E100FB56AE /* HMAreaNameTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F431E97B1DF3D2E100FB56AE /* HMAreaNameTransformer.m */; };
F4513EF318B991F800073552 /* HMMemberBasicCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EF218B991F800073552 /* HMMemberBasicCommand.m */; };
F4513EF618B9F29800073552 /* HMMemberShipCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EF518B9F29800073552 /* HMMemberShipCommand.m */; };
F4513EFA18BB699700073552 /* HMShipWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EF818BB699700073552 /* HMShipWindowController.m */; };
+ F45F3BE11E067A870009434E /* HMHistoryItemCleaner.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45F3BE01E067A870009434E /* HMHistoryItemCleaner.swift */; };
+ F45F3BE31E06A60A0009434E /* HMUpgradableShipsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45F3BE21E06A60A0009434E /* HMUpgradableShipsWindowController.swift */; };
F4649FC91DBC51EF0097AEBF /* HMScreenshotListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4649FCB1DBC51EF0097AEBF /* HMScreenshotListViewController.xib */; };
F4649FCE1DBC52600097AEBF /* HMScreenshotDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4649FD01DBC52600097AEBF /* HMScreenshotDetailViewController.xib */; };
F4649FD31DBC52A50097AEBF /* HMScreenshotEditorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4649FD51DBC52A50097AEBF /* HMScreenshotEditorViewController.xib */; };
F495462E1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F495462C1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld */; };
F49546311B18991300E0D8D0 /* HMBookmarkDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = F49546301B18991300E0D8D0 /* HMBookmarkDataStore.m */; };
F49546351B19924D00E0D8D0 /* HMBookmarkListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F49546331B19924D00E0D8D0 /* HMBookmarkListViewController.m */; };
- F49688641B3AFE4900D3CEDE /* HMProgressPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F49688621B3AFE4900D3CEDE /* HMProgressPanel.m */; };
F49688671B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app in Resources */ = {isa = PBXBuildFile; fileRef = F49688661B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app */; };
F49828FC1902A226000D6BBE /* HMStrokeTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F49828FB1902A226000D6BBE /* HMStrokeTextFieldCell.m */; };
F499E8901B5D4E7F00189029 /* HMPortNotifyCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F499E88F1B5D4E7F00189029 /* HMPortNotifyCommand.m */; };
F4A3AD8819B6149D00FDBF80 /* HMNyukyoStartCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A3AD8719B6149D00FDBF80 /* HMNyukyoStartCommand.m */; };
F4A3AD8B19B9BE7A00FDBF80 /* HMMaskSelectView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A3AD8A19B9BE7A00FDBF80 /* HMMaskSelectView.m */; };
F4A3AD8E19BB220000FDBF80 /* HMMaskInfomation.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A3AD8D19BB220000FDBF80 /* HMMaskInfomation.m */; };
- F4A3AD9219BDDD8E00FDBF80 /* HMPreferencePanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A3AD9019BDDD8E00FDBF80 /* HMPreferencePanelController.m */; };
F4A3AD9419BDDE5500FDBF80 /* HMPreferencePanelController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4A3AD9619BDDE5500FDBF80 /* HMPreferencePanelController.xib */; };
F4A5D32B1CD9CAA70024A6F0 /* HMBorderTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A5D32A1CD9CAA70024A6F0 /* HMBorderTextField.m */; };
F4A9B8D41B975029005786C2 /* SlotItemShortName.plist in Resources */ = {isa = PBXBuildFile; fileRef = F4A9B8D21B975029005786C2 /* SlotItemShortName.plist */; };
F4AA0607192E3B6200844688 /* HMMapStartCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AA0606192E3B6200844688 /* HMMapStartCommand.m */; };
F4AA060D1930E69200844688 /* HMMidnightBattleCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AA060C1930E69200844688 /* HMMidnightBattleCommand.m */; };
F4AA06101931869E00844688 /* HMBattleResultCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AA060F1931869E00844688 /* HMBattleResultCommand.m */; };
+ F4AC136D1E0802C000851147 /* HMPreferencePanelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4AC136C1E0802C000851147 /* HMPreferencePanelController.swift */; };
+ F4AC136F1E0963DB00851147 /* HMProgressPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4AC136E1E0963DB00851147 /* HMProgressPanel.swift */; };
+ F4AC13711E096A7B00851147 /* HMHistoryWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4AC13701E096A7B00851147 /* HMHistoryWindowController.swift */; };
F4B1E30819C73B6A00805879 /* HMSuppliesCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B1E30419C73B6A00805879 /* HMSuppliesCell.m */; };
F4B1E30919C73B6A00805879 /* HMSuppliesView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B1E30619C73B6A00805879 /* HMSuppliesView.m */; };
F4B1E30C19D1C06900805879 /* HMHokyuChargeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B1E30B19D1C06900805879 /* HMHokyuChargeCommand.m */; };
F4B37EF019FADFC9002F371A /* HMIgnoreZeroTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EEF19FADFC9002F371A /* HMIgnoreZeroTransformer.m */; };
F4B37EF319FBBBED002F371A /* HMRemodelSlotCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EF219FBBBED002F371A /* HMRemodelSlotCommand.m */; };
F4B37EF619FBE801002F371A /* HMRemodelSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EF519FBE801002F371A /* HMRemodelSlotItemCommand.m */; };
- F4B37EFD19FC8D98002F371A /* HMUpgradableShipsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B37EFB19FC8D98002F371A /* HMUpgradableShipsWindowController.m */; };
F4B37EFF19FC8DCC002F371A /* HMUpgradableShipsWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B37F0119FC8DCC002F371A /* HMUpgradableShipsWindowController.xib */; };
F4B3DBCA18DDB9170011B4FC /* HMCreateSlotItemCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DBC918DDB9170011B4FC /* HMCreateSlotItemCommand.m */; };
F4B3DC1B18DEAB5E0011B4FC /* HMKaihatuHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DC1A18DEAB5E0011B4FC /* HMKaihatuHistory.m */; };
F4B3DC2118DECF570011B4FC /* HMTSVSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DC2018DECF570011B4FC /* HMTSVSupport.m */; };
F4B3DC2718DF2F360011B4FC /* HMKenzoMark.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DC2618DF2F360011B4FC /* HMKenzoMark.m */; };
F4B3DC2A18DF31400011B4FC /* HMCreateShipCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DC2918DF31400011B4FC /* HMCreateShipCommand.m */; };
- F4B3DC2E18E07B680011B4FC /* HMHistoryWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B3DC2C18E07B680011B4FC /* HMHistoryWindowController.m */; };
F4B3DC3018E5C81E0011B4FC /* HMHistoryWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B3DC3218E5C81E0011B4FC /* HMHistoryWindowController.xib */; };
F4B3DC3318E5C8520011B4FC /* HMShipViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B3DC3518E5C8520011B4FC /* HMShipViewController.xib */; };
F4B3DC3618E5C8650011B4FC /* HMShipWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4B3DC3818E5C8650011B4FC /* HMShipWindowController.xib */; };
F4C6687D1C545E3800601AFB /* HMMapWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C6687B1C545E3800601AFB /* HMMapWindowController.m */; };
F4C668881C60F5F200601AFB /* HMRepairListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C668861C60F5F200601AFB /* HMRepairListViewController.m */; };
F4C86B921C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C86B911C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m */; };
+ F4D05BC61E0ABD6800688D66 /* HMSlotItemWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4D05BC51E0ABD6800688D66 /* HMSlotItemWindowController.swift */; };
F4D2CBC218AD0E1A000EBC59 /* HMMasterSTypeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC118AD0E1A000EBC59 /* HMMasterSTypeCommand.m */; };
F4D2CBC518AE2AE2000EBC59 /* HMCompositCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC418AE2AE2000EBC59 /* HMCompositCommand.m */; };
F4D2CBC818B0555A000EBC59 /* HMKCManagedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC718B0555A000EBC59 /* HMKCManagedObject.m */; };
F4131ED4190F63D8004F7F9A /* HMUpdateSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpdateSlotItemCommand.m; sourceTree = "<group>"; };
F4131ED6190FA08D004F7F9A /* HMDestroyItem2Command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDestroyItem2Command.h; sourceTree = "<group>"; };
F4131ED7190FA08D004F7F9A /* HMDestroyItem2Command.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDestroyItem2Command.m; sourceTree = "<group>"; };
- F4131ED9190FEBCC004F7F9A /* HMSlotItemWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSlotItemWindowController.h; sourceTree = "<group>"; };
- F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSlotItemWindowController.m; sourceTree = "<group>"; };
F4131EE41910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMasterSlotItemEquipTypeCommand.h; sourceTree = "<group>"; };
F4131EE51910318F004F7F9A /* HMMasterSlotItemEquipTypeCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMasterSlotItemEquipTypeCommand.m; sourceTree = "<group>"; };
F4131EE71911445F004F7F9A /* HMSlotItemEquipTypeTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSlotItemEquipTypeTransformer.h; sourceTree = "<group>"; };
F42CBB201D1ED41D004C2AE2 /* LocalData 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "LocalData 3.xcdatamodel"; sourceTree = "<group>"; };
F42CBB211D1F967F004C2AE2 /* HMHistoryMarkTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryMarkTransformer.h; sourceTree = "<group>"; };
F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryMarkTransformer.m; sourceTree = "<group>"; };
- F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryItemCleaner.h; sourceTree = "<group>"; };
- F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryItemCleaner.m; sourceTree = "<group>"; };
F431E9741DF3AC1C00FB56AE /* HMSetActionCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSetActionCommand.h; sourceTree = "<group>"; };
F431E9751DF3AC1C00FB56AE /* HMSetActionCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSetActionCommand.m; sourceTree = "<group>"; };
F431E9771DF3CD1B00FB56AE /* HMActinKindTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMActinKindTransformer.h; sourceTree = "<group>"; };
F4513EF518B9F29800073552 /* HMMemberShipCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberShipCommand.m; sourceTree = "<group>"; };
F4513EF718BB699700073552 /* HMShipWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMShipWindowController.h; sourceTree = "<group>"; };
F4513EF818BB699700073552 /* HMShipWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMShipWindowController.m; sourceTree = "<group>"; };
+ F45F3BDD1E0679D80009434E /* KCD-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KCD-Bridging-Header.h"; sourceTree = "<group>"; };
+ F45F3BE01E067A870009434E /* HMHistoryItemCleaner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMHistoryItemCleaner.swift; sourceTree = "<group>"; };
+ F45F3BE21E06A60A0009434E /* HMUpgradableShipsWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMUpgradableShipsWindowController.swift; sourceTree = "<group>"; };
F4649FC81DBC51A90097AEBF /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/HMScreenshotListWindowController.strings"; sourceTree = "<group>"; };
F4649FCD1DBC51F30097AEBF /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/HMScreenshotListViewController.strings"; sourceTree = "<group>"; };
F4649FD21DBC52630097AEBF /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/HMScreenshotDetailViewController.strings"; sourceTree = "<group>"; };
F49546301B18991300E0D8D0 /* HMBookmarkDataStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMBookmarkDataStore.m; sourceTree = "<group>"; };
F49546321B19924D00E0D8D0 /* HMBookmarkListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMBookmarkListViewController.h; sourceTree = "<group>"; };
F49546331B19924D00E0D8D0 /* HMBookmarkListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMBookmarkListViewController.m; sourceTree = "<group>"; };
- F49688611B3AFE4900D3CEDE /* HMProgressPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMProgressPanel.h; sourceTree = "<group>"; };
- F49688621B3AFE4900D3CEDE /* HMProgressPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMProgressPanel.m; sourceTree = "<group>"; };
F49688661B3EA16800D3CEDE /* RemoveDatabaseFileAndRestart.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = RemoveDatabaseFileAndRestart.app; sourceTree = "<group>"; };
F497F6231D5B7CCA00A8F609 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/MainMenu.strings"; sourceTree = "<group>"; };
F497F63A1D5B7CE300A8F609 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/Makefile"; sourceTree = "<group>"; };
F4A3AD8A19B9BE7A00FDBF80 /* HMMaskSelectView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMaskSelectView.m; sourceTree = "<group>"; };
F4A3AD8C19BB220000FDBF80 /* HMMaskInfomation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMaskInfomation.h; sourceTree = "<group>"; };
F4A3AD8D19BB220000FDBF80 /* HMMaskInfomation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMaskInfomation.m; sourceTree = "<group>"; };
- F4A3AD8F19BDDD8D00FDBF80 /* HMPreferencePanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMPreferencePanelController.h; sourceTree = "<group>"; };
- F4A3AD9019BDDD8E00FDBF80 /* HMPreferencePanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMPreferencePanelController.m; sourceTree = "<group>"; };
F4A5D3291CD9CAA70024A6F0 /* HMBorderTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMBorderTextField.h; sourceTree = "<group>"; };
F4A5D32A1CD9CAA70024A6F0 /* HMBorderTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMBorderTextField.m; sourceTree = "<group>"; };
F4A9B8D31B975029005786C2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = ja; path = ja.lproj/SlotItemShortName.plist; sourceTree = "<group>"; };
F4AA060C1930E69200844688 /* HMMidnightBattleCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMidnightBattleCommand.m; sourceTree = "<group>"; };
F4AA060E1931869E00844688 /* HMBattleResultCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMBattleResultCommand.h; sourceTree = "<group>"; };
F4AA060F1931869E00844688 /* HMBattleResultCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMBattleResultCommand.m; sourceTree = "<group>"; };
+ F4AC136C1E0802C000851147 /* HMPreferencePanelController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMPreferencePanelController.swift; sourceTree = "<group>"; };
+ F4AC136E1E0963DB00851147 /* HMProgressPanel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMProgressPanel.swift; sourceTree = "<group>"; };
+ F4AC13701E096A7B00851147 /* HMHistoryWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMHistoryWindowController.swift; sourceTree = "<group>"; };
F4B1E30319C73B6A00805879 /* HMSuppliesCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSuppliesCell.h; sourceTree = "<group>"; };
F4B1E30419C73B6A00805879 /* HMSuppliesCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSuppliesCell.m; sourceTree = "<group>"; };
F4B1E30519C73B6A00805879 /* HMSuppliesView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSuppliesView.h; sourceTree = "<group>"; };
F4B37EF219FBBBED002F371A /* HMRemodelSlotCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMRemodelSlotCommand.m; sourceTree = "<group>"; };
F4B37EF419FBE801002F371A /* HMRemodelSlotItemCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMRemodelSlotItemCommand.h; sourceTree = "<group>"; };
F4B37EF519FBE801002F371A /* HMRemodelSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMRemodelSlotItemCommand.m; sourceTree = "<group>"; };
- F4B37EFA19FC8D98002F371A /* HMUpgradableShipsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMUpgradableShipsWindowController.h; sourceTree = "<group>"; };
- F4B37EFB19FC8D98002F371A /* HMUpgradableShipsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpgradableShipsWindowController.m; sourceTree = "<group>"; };
F4B3DBC818DDB9170011B4FC /* HMCreateSlotItemCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMCreateSlotItemCommand.h; sourceTree = "<group>"; };
F4B3DBC918DDB9170011B4FC /* HMCreateSlotItemCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMCreateSlotItemCommand.m; sourceTree = "<group>"; };
F4B3DC1918DEAB5E0011B4FC /* HMKaihatuHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMKaihatuHistory.h; sourceTree = "<group>"; };
F4B3DC2618DF2F360011B4FC /* HMKenzoMark.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMKenzoMark.m; sourceTree = "<group>"; };
F4B3DC2818DF31400011B4FC /* HMCreateShipCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMCreateShipCommand.h; sourceTree = "<group>"; };
F4B3DC2918DF31400011B4FC /* HMCreateShipCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMCreateShipCommand.m; sourceTree = "<group>"; };
- F4B3DC2B18E07B680011B4FC /* HMHistoryWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryWindowController.h; sourceTree = "<group>"; };
- F4B3DC2C18E07B680011B4FC /* HMHistoryWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryWindowController.m; sourceTree = "<group>"; };
F4B3DC4218E70B370011B4FC /* HMServerDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMServerDataStore.h; sourceTree = "<group>"; };
F4B3DC4318E70B370011B4FC /* HMServerDataStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMServerDataStore.m; sourceTree = "<group>"; };
F4B3DC4518EEEB920011B4FC /* HMStart2Command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMStart2Command.h; sourceTree = "<group>"; };
F4C668861C60F5F200601AFB /* HMRepairListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMRepairListViewController.m; sourceTree = "<group>"; };
F4C86B901C1C445C00F260FE /* HMUpgradeShipExcludeColorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMUpgradeShipExcludeColorTransformer.h; sourceTree = "<group>"; };
F4C86B911C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpgradeShipExcludeColorTransformer.m; sourceTree = "<group>"; };
+ F4D05BC51E0ABD6800688D66 /* HMSlotItemWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMSlotItemWindowController.swift; sourceTree = "<group>"; };
F4D2CBC018AD0E1A000EBC59 /* HMMasterSTypeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMasterSTypeCommand.h; sourceTree = "<group>"; };
F4D2CBC118AD0E1A000EBC59 /* HMMasterSTypeCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMasterSTypeCommand.m; sourceTree = "<group>"; };
F4D2CBC318AE2AE2000EBC59 /* HMCompositCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMCompositCommand.h; sourceTree = "<group>"; };
F4F9F89A1C6CB7D400D0EE76 /* HMFleet.m */,
F4F9F8A11C70AFB600D0EE76 /* HMFleetManager.h */,
F4F9F8A21C70AFB600D0EE76 /* HMFleetManager.m */,
- F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */,
- F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */,
+ F45F3BE01E067A870009434E /* HMHistoryItemCleaner.swift */,
F4C2ACA31D7167C2007BFE90 /* HMTimeSignalNotifier.h */,
F4C2ACA41D7167C2007BFE90 /* HMTimeSignalNotifier.m */,
F45F3BDC1E0575170009434E /* TouchBar */,
F4BEEEA918D890660006F70C /* UI */,
F4BEEEA818D88FF30006F70C /* CoreData */,
F4BDEB4D187252F30069D0CE /* Supporting Files */,
+ F45F3BDD1E0679D80009434E /* KCD-Bridging-Header.h */,
);
path = KCD;
sourceTree = "<group>";
F4BDEB5B187252F30069D0CE /* MainMenu.xib */,
F4BEEFE31B0CD3C5004702B8 /* MainWindow */,
F4666C5B1B242065001840DB /* Bookmark */,
- F4B3DC2B18E07B680011B4FC /* HMHistoryWindowController.h */,
- F4B3DC2C18E07B680011B4FC /* HMHistoryWindowController.m */,
+ F4AC13701E096A7B00851147 /* HMHistoryWindowController.swift */,
F4B3DC3218E5C81E0011B4FC /* HMHistoryWindowController.xib */,
F4A3AD8919B9BE7A00FDBF80 /* HMMaskSelectView.h */,
F4A3AD8A19B9BE7A00FDBF80 /* HMMaskSelectView.m */,
F4A3AD8C19BB220000FDBF80 /* HMMaskInfomation.h */,
F4A3AD8D19BB220000FDBF80 /* HMMaskInfomation.m */,
- F4131ED9190FEBCC004F7F9A /* HMSlotItemWindowController.h */,
- F4131EDA190FEBCC004F7F9A /* HMSlotItemWindowController.m */,
+ F4D05BC51E0ABD6800688D66 /* HMSlotItemWindowController.swift */,
F4131EE0190FEBDB004F7F9A /* HMSlotItemWindowController.xib */,
- F4A3AD8F19BDDD8D00FDBF80 /* HMPreferencePanelController.h */,
- F4A3AD9019BDDD8E00FDBF80 /* HMPreferencePanelController.m */,
+ F4AC136C1E0802C000851147 /* HMPreferencePanelController.swift */,
F4A3AD9619BDDE5500FDBF80 /* HMPreferencePanelController.xib */,
- F4B37EFA19FC8D98002F371A /* HMUpgradableShipsWindowController.h */,
- F4B37EFB19FC8D98002F371A /* HMUpgradableShipsWindowController.m */,
+ F45F3BE21E06A60A0009434E /* HMUpgradableShipsWindowController.swift */,
F4B37F0119FC8DCC002F371A /* HMUpgradableShipsWindowController.xib */,
F4B2A08C1A1F9C2100D2EF12 /* HMExternalBrowserWindowController.h */,
F4B2A08D1A1F9C2100D2EF12 /* HMExternalBrowserWindowController.m */,
F4BEEFFE1B11A5A7004702B8 /* HMExternalBrowserWindowController.xib */,
- F49688611B3AFE4900D3CEDE /* HMProgressPanel.h */,
- F49688621B3AFE4900D3CEDE /* HMProgressPanel.m */,
+ F4AC136E1E0963DB00851147 /* HMProgressPanel.swift */,
F4C668651C54518F00601AFB /* HMProgressPanel.xib */,
F42185051DF4425500256590 /* HMAirBaseWindowController.h */,
F42185061DF4425500256590 /* HMAirBaseWindowController.m */,
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Hori,Masaki";
TargetAttributes = {
+ F4BDEB42187252F30069D0CE = {
+ LastSwiftMigration = 0820;
+ };
F4BDEB63187252F30069D0CE = {
TestTargetID = F4BDEB42187252F30069D0CE;
};
F4513EE818B77A5300073552 /* HMMemberKDockCommand.m in Sources */,
F4F9F87E1C6B5E4A00D0EE76 /* HMKCMasterSType.m in Sources */,
F431E9791DF3CD1B00FB56AE /* HMActinKindTransformer.m in Sources */,
+ F45F3BE11E067A870009434E /* HMHistoryItemCleaner.swift in Sources */,
F426802B194D0F4800B2C27F /* HMMemberShip2Command.m in Sources */,
F4A9E8001D045C0E00F91746 /* HMBridgeViewController.m in Sources */,
F4AA06101931869E00844688 /* HMBattleResultCommand.m in Sources */,
F4B37EF019FADFC9002F371A /* HMIgnoreZeroTransformer.m in Sources */,
- F49688641B3AFE4900D3CEDE /* HMProgressPanel.m in Sources */,
+ F4AC136F1E0963DB00851147 /* HMProgressPanel.swift in Sources */,
F4BEEFE91B0CE312004702B8 /* HMAPIResponse.m in Sources */,
+ F4AC136D1E0802C000851147 /* HMPreferencePanelController.swift in Sources */,
F4B3DC4418E70B370011B4FC /* HMServerDataStore.m in Sources */,
F48A70501DE32847005DFC0B /* HMMapInfoCommand.m in Sources */,
F4AA0607192E3B6200844688 /* HMMapStartCommand.m in Sources */,
F4B37EF319FBBBED002F371A /* HMRemodelSlotCommand.m in Sources */,
F495462E1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld in Sources */,
F4B414FB18B1FB6C00468DAF /* HMMasterMapCellCommand.m in Sources */,
- F4B3DC2E18E07B680011B4FC /* HMHistoryWindowController.m in Sources */,
F4D6BCA91AA298FD00742FEB /* HMShipDetailViewController.m in Sources */,
- F4A3AD9219BDDD8E00FDBF80 /* HMPreferencePanelController.m in Sources */,
F4B2A08F1A1F9C2100D2EF12 /* HMExternalBrowserWindowController.m in Sources */,
F4B3DC2118DECF570011B4FC /* HMTSVSupport.m in Sources */,
F4B1E30819C73B6A00805879 /* HMSuppliesCell.m in Sources */,
F4AA05FE192B932E00844688 /* HMTemporaryDataStore.m in Sources */,
F48A705C1DE58A38005DFC0B /* HMKCAirBase+CoreDataClass.m in Sources */,
F4F388C21C140AFB00508549 /* HMResourceViewController.m in Sources */,
- F4B37EFD19FC8D98002F371A /* HMUpgradableShipsWindowController.m in Sources */,
F4B414F818B1D35800468DAF /* HMMasterMissionCommand.m in Sources */,
+ F45F3BE31E06A60A0009434E /* HMUpgradableShipsWindowController.swift in Sources */,
F4E33B5818BF5F67005B8C07 /* HMMemberSlotItemCommand.m in Sources */,
F4C1190B18A74DF0005D5B25 /* HMJSONCommand.m in Sources */,
F48A70671DE5D62C005DFC0B /* HMOrderedSetToArrayTransformer.m in Sources */,
F4A5D32B1CD9CAA70024A6F0 /* HMBorderTextField.m in Sources */,
F4B414EF18B0BF1A00468DAF /* HMMasterMapInfoCommand.m in Sources */,
F4B3DC1B18DEAB5E0011B4FC /* HMKaihatuHistory.m in Sources */,
- F4131EDC190FEBCC004F7F9A /* HMSlotItemWindowController.m in Sources */,
+ F4D05BC61E0ABD6800688D66 /* HMSlotItemWindowController.swift in Sources */,
F4D2CBCB18B05E58000EBC59 /* HMMaserShipCommand.m in Sources */,
F4513EFA18BB699700073552 /* HMShipWindowController.m in Sources */,
F42680121943E92D00B2C27F /* HMKCShipObject+Extensions.m in Sources */,
F431E9761DF3AC1C00FB56AE /* HMSetActionCommand.m in Sources */,
F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */,
F4BEEFDB1B0A219E004702B8 /* HMShipDeckCommand.m in Sources */,
- F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */,
F43F3D461A33F7D400D6DAF7 /* HMResetSortieCommand.m in Sources */,
F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */,
F4AA05FB192B92C800844688 /* Temporary.xcdatamodeld in Sources */,
F4F6E80F1B2C25D20008B66E /* HMStrengthenListItemCellView.m in Sources */,
F424A7001BC8C10C0096C431 /* HMFailedCommand.m in Sources */,
F49546261B1355EC00E0D8D0 /* HMBookmarkItem.m in Sources */,
+ F4AC13711E096A7B00851147 /* HMHistoryWindowController.swift in Sources */,
F49828FC1902A226000D6BBE /* HMStrokeTextFieldCell.m in Sources */,
F43769D61ADE86B200DE6204 /* HMQuestListCommand.m in Sources */,
F4A3AD8B19B9BE7A00FDBF80 /* HMMaskSelectView.m in Sources */,
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "KCD/KCD-Prefix.pch";
"COREDATA_STORE_TYPE=0",
);
INFOPLIST_FILE = "KCD/KCD-Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "com.masakih.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "KCD/KCD-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 3.0;
WRAPPER_EXTENSION = app;
};
name = Debug;
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "KCD/KCD-Prefix.pch";
"UI_TEST=0",
);
INFOPLIST_FILE = "KCD/KCD-Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "com.masakih.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "KCD/KCD-Bridging-Header.h";
+ SWIFT_VERSION = 3.0;
WRAPPER_EXTENSION = app;
};
name = Release;
F4BDEB78187252F30069D0CE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/KCD.app/Contents/MacOS/KCD";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
F4BDEB79187252F30069D0CE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/KCD.app/Contents/MacOS/KCD";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2659" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="HMHistoryWindowController">
+ <customObject id="-2" userLabel="File's Owner" customClass="HMHistoryWindowController" customModule="KCD">
<connections>
<outlet property="dropHistoryController" destination="xvi-Qk-gPS" id="Iow-hT-qdD"/>
<outlet property="dropHistoryTableView" destination="VIc-m5-S1Y" id="A0i-Ve-f79"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<clipView key="contentView" id="egd-t1-HqM">
<rect key="frame" x="1" y="0.0" width="636" height="425"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <autoresizingMask key="autoresizingMask"/>
<subviews>
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="sequential" alternatingRowBackgroundColors="YES" autosaveName="drophistory" rowSizeStyle="automatic" headerView="GLB-Em-NKT" viewBased="YES" id="VIc-m5-S1Y">
<rect key="frame" x="0.0" y="0.0" width="636" height="408"/>
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="HMPreferencePanelController">
+ <customObject id="-2" userLabel="File's Owner" customClass="HMPreferencePanelController" customModule="KCD">
<connections>
<outlet property="generalPane" destination="ROt-zH-HCQ" id="NCn-Bk-ZJU"/>
<outlet property="notificationPane" destination="mPf-SR-Day" id="API-qC-HZL"/>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
- <window title="環境設定" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" frameAutosaveName="" animationBehavior="default" id="F0z-JX-Cv5" customClass="NSPanel">
+ <window title="環境設定" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="F0z-JX-Cv5" customClass="NSPanel">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="486" height="231"/>
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
+ <deployment identifier="macosx"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="HMProgressPanel">
+ <customObject id="-2" userLabel="File's Owner" customClass="HMProgressPanel" customModule="KCD">
<connections>
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
</connections>
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" documentModal="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="363" height="72"/>
- <rect key="screenRect" x="0.0" y="0.0" width="1440" height="900"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1050"/>
<view key="contentView" id="se5-gp-TjO">
- <rect key="frame" x="0.0" y="-1" width="363" height="72"/>
+ <rect key="frame" x="0.0" y="0.0" width="363" height="72"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" bezeled="NO" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="cIE-11-Xy4">
<rect key="frame" x="20" y="20" width="32" height="32"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<connections>
<binding destination="-2" name="animate" keyPath="animate" id="aFx-uA-dgm"/>
</connections>
</progressIndicator>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wit-gM-gzn">
<rect key="frame" x="72" y="28" width="273" height="17"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="VM2-og-uXb">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
+ <deployment identifier="macosx"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="HMUpgradableShipsWindowController">
+ <customObject id="-2" userLabel="File's Owner" customClass="HMUpgradableShipsWindowController" customModule="KCD">
<connections>
+ <outlet property="contextualMenu" destination="OdB-vZ-ESs" id="IRs-d2-hGj"/>
<outlet property="shipsController" destination="F7b-g4-Ndz" id="E1R-GG-SCC"/>
<outlet property="tableView" destination="PIl-CA-2e4" id="0qN-GZ-0ig"/>
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
<rect key="frame" x="-1" y="0.0" width="236" height="334"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
<clipView key="contentView" id="4jY-Av-DhN">
- <rect key="frame" x="1" y="17" width="234" height="316"/>
+ <rect key="frame" x="1" y="0.0" width="234" height="333"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" alternatingRowBackgroundColors="YES" multipleSelection="NO" autosaveName="upgradableships" headerView="ElI-vy-vtb" id="PIl-CA-2e4">
</connections>
</tableView>
</subviews>
- <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Epy-gJ-Bnp">
<rect key="frame" x="1" y="119" width="223" height="15"/>
#import "HMAppDelegate.h"
+#import "KCD-Swift.h"
+
#import "HMUserDefaults.h"
#import "HMBroserWindowController.h"
-#import "HMHistoryWindowController.h"
-#import "HMSlotItemWindowController.h"
-#import "HMPreferencePanelController.h"
-#import "HMUpgradableShipsWindowController.h"
#import "HMScreenshotListWindowController.h"
#import "HMShipMasterDetailWindowController.h"
#import "HMAirBaseWindowController.h"
#import "HMFleetManager.h"
#import "HMPeriodicNotifier.h"
-#import "HMHistoryItemCleaner.h"
#import "HMTSVSupport.h"
*
* @return 読み出したデータ
*/
-- (NSArray *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors predicate:(NSPredicate *)predicate error:(NSError **)error;
+- (NSArray<__kindof NSManagedObject *> *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors predicate:(NSPredicate *)predicate error:(NSError **)error;
/**
* CoreDataからデータを読み出す
*
* @return 読み出したデータ
*/
-- (NSArray *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors error:(NSError **)error predicateFormat:(NSString *)format, ...;
+- (NSArray<__kindof NSManagedObject *> *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors error:(NSError **)error predicateFormat:(NSString *)format, ...;
/**
CoreDataからデータを読み出す
@param error エラー
@return 読み出したデータ
*/
-- (NSArray *)objectsWithEntityName:(NSString *)entityName predicate:(NSPredicate *)predicate error:(NSError **)error;
+- (NSArray<__kindof NSManagedObject *> *)objectsWithEntityName:(NSString *)entityName predicate:(NSPredicate *)predicate error:(NSError **)error;
/**
CoreDataからデータを読み出す
@param ... A comma-separated list of arguments to substitute into format.
@return 読み出したデータ
*/
-- (NSArray *)objectsWithEntityName:(NSString *)entityName error:(NSError **)error predicateFormat:(NSString *)format, ...;
+- (NSArray<__kindof NSManagedObject *> *)objectsWithEntityName:(NSString *)entityName error:(NSError **)error predicateFormat:(NSString *)format, ...;
- (IBAction)saveAction:(id)sender;
#import <WebKit/WebKit.h>
#import <JavaScriptCore/JavaScriptCore.h>
+#import "KCD-Swift.h"
+
#import "HMAppDelegate.h"
#import "HMUserDefaults.h"
#import "HMScreenshotListWindowController.h"
-#import "HMProgressPanel.h"
@interface HMGameViewController ()
@property NSPoint flashTopLeft;
+++ /dev/null
-//
-// HMHistoryItemCleaner.h
-// KCD
-//
-// Created by Hori,Masaki on 2016/06/27.
-// Copyright © 2016年 Hori,Masaki. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface HMHistoryItemCleaner : NSObject
-
-- (void)cleanOldHistoryItems;
-
-@end
+++ /dev/null
-//
-// HMHistoryItemCleaner.m
-// KCD
-//
-// Created by Hori,Masaki on 2016/06/27.
-// Copyright © 2016年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMHistoryItemCleaner.h"
-
-#import "HMUserDefaults.h"
-
-#import "HMLocalDataStore.h"
-
-
-@implementation HMHistoryItemCleaner
-
-- (void)cleanOldHistoryItems
-{
- if(!HMStandardDefaults.cleanOldHistoryItems) return;
-
- HMLocalDataStore *store = [HMLocalDataStore oneTimeEditor];
-
- NSDate *date = [NSDate dateWithTimeIntervalSinceNow:-1 * HMStandardDefaults.cleanSiceDays * 24 * 60 * 60];
- NSPredicate *p01 = [NSPredicate predicateWithFormat:@"date < %@", date];
- NSPredicate *p02 = [NSPredicate predicateWithFormat:@"mark = 0 || mark = nil"];
- NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[p01, p02]];
-
- NSError *error = nil;
- NSArray<NSManagedObject *> *array = [store objectsWithEntityName:@"KaihatuHistory"
- predicate:predicate
- error:&error];
- if(!error) {
- for(NSManagedObject *obj in array) {
- [store deleteObject:obj];
- }
- } else {
- NSLog(@"%s ERROR: KaihatuHistory, %@", __PRETTY_FUNCTION__, error);
- }
-
- error = nil;
- array = [store objectsWithEntityName:@"KenzoHistory"
- predicate:predicate
- error:&error];
- if(!error) {
- for(NSManagedObject *obj in array) {
- [store deleteObject:obj];
- }
- } else {
- NSLog(@"%s ERROR: KenzoHistory, %@", __PRETTY_FUNCTION__, error);
- }
-
- NSArray *area = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9"];
- NSPredicate *p03 = [NSPredicate predicateWithFormat:@"mapArea IN %@", area];
- predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[predicate, p03]];
-
- error = nil;
- array = [store objectsWithEntityName:@"DropShipHistory"
- predicate:predicate
- error:&error];
- if(!error) {
- for(NSManagedObject *obj in array) {
- [store deleteObject:obj];
- }
- } else {
- NSLog(@"%s ERROR: DropShipHistory, %@", __PRETTY_FUNCTION__, error);
- }
-}
-@end
--- /dev/null
+//
+// HMHistoryItemCleaner.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/18.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+class HMHistoryItemCleaner: NSObject {
+ func cleanOldHistoryItems() {
+ guard HMStandardDefaults.cleanOldHistoryItems else {
+ return
+ }
+ guard let store = HMLocalDataStore.oneTimeEditor() else {
+ return
+ }
+
+ let date = Date(timeIntervalSinceNow: TimeInterval(-1 * HMStandardDefaults.cleanSiceDays * 24 * 60 * 60))
+ let predicate01 = NSPredicate(format: "date < %@", argumentArray: [date])
+ let predicate02 = NSPredicate(format: "mark = 0 || mark = nil")
+ let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate01, predicate02])
+ do {
+ let kaihatuHistories = try store.objects(withEntityName: "KaihatuHistory", predicate: predicate)
+ for obj in kaihatuHistories {
+ store.delete(obj)
+ }
+ } catch (let error) {
+ print("ERROR: KaihatuHistory, \(error)")
+ return
+ }
+
+ do {
+ let kenzoHistory = try store.objects(withEntityName: "KenzoHistory", predicate: predicate)
+ for obj in kenzoHistory {
+ store.delete(obj)
+ }
+ } catch (let error) {
+ print("ERROR: KenzoHistory, \(error)")
+ return
+ }
+
+ let predicate03 = NSPredicate(format: "mapArea IN %@", argumentArray: [["1", "2", "3", "4", "5", "6", "7", "8", "9"]])
+ let predicate04 = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate, predicate03])
+ do {
+ let dropHistories = try store.objects(withEntityName: "DropShipHistory", predicate: predicate04)
+ for obj in dropHistories {
+ store.delete(obj)
+ }
+ } catch (let error) {
+ print("ERROR: DropShipHistory, \(error)")
+ return
+ }
+ }
+}
+++ /dev/null
-//
-// HMHistoryWindowController.h
-// KCD
-//
-// Created by Hori,Masaki on 2014/03/24.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMHistoryWindowController : NSWindowController <NSTabViewDelegate>
-
-
-@end
+++ /dev/null
-//
-// HMHistoryWindowController.m
-// KCD
-//
-// Created by Hori,Masaki on 2014/03/24.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMHistoryWindowController.h"
-
-#import "HMLocalDataStore.h"
-
-#import "HMKaihatuHistory.h"
-#import "HMKenzoHistory.h"
-#import "HMDropShipHistory.h"
-
-
-typedef NS_ENUM(NSUInteger, HMHistoryWindowTabIndex) {
- kKaihatuHistoryIndex = 0,
- kKenzoHistoryIndex = 1,
- kDropHistoryIndex = 2,
-};
-
-@interface HMHistoryWindowController () <NSTabViewDelegate, NSTableViewDelegate>
-
-@property (readonly) NSManagedObjectContext *manageObjectContext;
-
-@property NSInteger selectedTabIndex;
-
-@property (nonatomic, strong) IBOutlet NSArrayController *kaihatuHistoryController;
-@property (nonatomic, strong) IBOutlet NSArrayController *kenzoHistoryController;
-@property (nonatomic, strong) IBOutlet NSArrayController *dropHistoryController;
-
-@property (nonatomic, weak) IBOutlet NSTableView *kaihatuHistoryTableView;
-@property (nonatomic, weak) IBOutlet NSTableView *kenzoHistoryTableView;
-@property (nonatomic, weak) IBOutlet NSTableView *dropHistoryTableView;
-
-@property (nonatomic, weak) IBOutlet NSSearchField *searchField;
-
-@property (nonatomic, strong) IBOutlet NSTouchBar *myTouchBar;
-@property (nonatomic, weak) IBOutlet NSButton *searchButton;
-
-@end
-
-@implementation HMHistoryWindowController
-
-- (id)init
-{
- self = [super initWithWindowNibName:NSStringFromClass([self class])];
-
- return self;
-}
-
-- (void)windowDidLoad
-{
- [super windowDidLoad];
-
- NSString *predicateFormat = @"";
- NSArrayController *target = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- target = self.kaihatuHistoryController;
- predicateFormat = @"name contains $value";
- break;
- case kKenzoHistoryIndex:
- target = self.kenzoHistoryController;
- predicateFormat = @"name contains $value";
- break;
- case kDropHistoryIndex:
- target = self.dropHistoryController;
- predicateFormat = @"shipName contains $value";
- break;
-
- }
-
- if(!target) return;
-
- [self.searchField bind:NSPredicateBinding
- toObject:target
- withKeyPath:NSFilterPredicateBinding
- options:@{
- NSPredicateFormatBindingOption : predicateFormat,
- }];
-}
-
-- (NSManagedObjectContext *)manageObjectContext
-{
- return [[HMLocalDataStore defaultManager] managedObjectContext];
-}
-
-- (IBAction)delete:(id)sender
-{
- NSArrayController *target = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- target = self.kaihatuHistoryController;
- break;
- case kKenzoHistoryIndex:
- target = self.kenzoHistoryController;
- break;
- case kDropHistoryIndex:
- target = self.dropHistoryController;
- break;
-
- }
-
- if(!target) return;
-
- NSArray *original = [target selectedObjects];
- NSMutableArray *objectIds = [NSMutableArray new];
- for(NSManagedObject *object in original) {
- [objectIds addObject:object.objectID];
- }
-
- HMLocalDataStore *store = [HMLocalDataStore oneTimeEditor];
-
- for(NSManagedObjectID *objectID in objectIds) {
- NSManagedObject *object = [store objectWithID:objectID];
- [store deleteObject:object];
- }
-}
-
-- (IBAction)addMark:(id)sender
-{
- NSArrayController *target = nil;
- NSTableView *targetView = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- target = self.kaihatuHistoryController;
- targetView = self.kaihatuHistoryTableView;
- break;
- case kKenzoHistoryIndex:
- target = self.kenzoHistoryController;
- targetView = self.kenzoHistoryTableView;
- break;
- case kDropHistoryIndex:
- target = self.dropHistoryController;
- targetView = self.dropHistoryTableView;
- break;
-
- }
-
- if(!target) return;
-
- NSArray *a = target.arrangedObjects;
- id o = a[targetView.clickedRow];
-
- NSString *entityName = nil;
- NSPredicate *predicate = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- {
- HMKaihatuHistory *obj = o;
- entityName = @"KaihatuHistory";
- predicate = [NSPredicate predicateWithFormat:@"date = %@ AND name = %@", obj.date, obj.name];
- break;
- }
- case kKenzoHistoryIndex:
- {
- HMKenzoHistory *obj = o;
- entityName = @"KenzoHistory";
- predicate = [NSPredicate predicateWithFormat:@"date = %@ AND name = %@", obj.date, obj.name];
- break;
- }
- case kDropHistoryIndex:
- {
- HMDropShipHistory *obj = o;
- entityName = @"DropShipHistory";
- predicate = [NSPredicate predicateWithFormat:@"date = %@ AND mapCell = %@", obj.date, obj.mapCell];
- break;
- }
-
- }
-
- HMLocalDataStore *store = [HMLocalDataStore oneTimeEditor];
- NSError *error = nil;
- NSArray<HMDropShipHistory *> *array = [store objectsWithEntityName:entityName predicate:predicate error:&error];
- if(array.count == 0) {
- NSLog(@"%s: ERROR", __PRETTY_FUNCTION__);
- return;
- }
-
- BOOL mark = array[0].mark.boolValue;
- array[0].mark = mark ? @NO : @YES;
- [store saveAction:nil];
-}
-
-- (IBAction)selectSearchField:(id)sender
-{
- [self.window makeFirstResponder:self.searchField];
-}
-
-- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
-{
- SEL action = menuItem.action;
- if(action == @selector(addMark:)) {
- NSArrayController *target = nil;
- NSTableView *targetView = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- target = self.kaihatuHistoryController;
- targetView = self.kaihatuHistoryTableView;
- break;
- case kKenzoHistoryIndex:
- target = self.kenzoHistoryController;
- targetView = self.kenzoHistoryTableView;
- break;
- case kDropHistoryIndex:
- target = self.dropHistoryController;
- targetView = self.dropHistoryTableView;
- break;
-
- }
-
- if(target) {
- NSArray<HMDropShipHistory *> *a = target.arrangedObjects;
- HMDropShipHistory *o = a[targetView.clickedRow];
-
- if(o.mark.boolValue) {
- menuItem.title = NSLocalizedString(@"Remove mark", @"Remove history mark.");
- } else {
- menuItem.title = NSLocalizedString(@"Add mark", @"Add history mark.");
- }
- }
- }
-
- return YES;
-}
-
-- (NSTouchBar *)touchBar
-{
- if(NSClassFromString(@"NSTouchBar") == Nil) return nil;
-
- if(self.myTouchBar) return self.myTouchBar;
-
- NSArray *toplevel = nil;
- NSBundle *mainBundle = [NSBundle mainBundle];
- [mainBundle loadNibNamed:@"HistoryWindowTouchBar"
- owner:self
- topLevelObjects:&toplevel];
-
- return self.myTouchBar;
-}
-
-#pragma mark - NSTableViewDelegate & NSTableViewDataSource
-
-- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
-{
- NSView *itemView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:nil];
- return itemView;
-}
-
-#pragma mark - NSTabViewDelegate
-- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(nullable NSTabViewItem *)tabViewItem
-{
- [self.searchField unbind:NSPredicateBinding];
-
- NSString *predicateFormat = @"";
- NSArrayController *target = nil;
- switch (self.selectedTabIndex) {
- case kKaihatuHistoryIndex:
- target = self.kaihatuHistoryController;
- predicateFormat = @"name contains $value";
- break;
- case kKenzoHistoryIndex:
- target = self.kenzoHistoryController;
- predicateFormat = @"name contains $value";
- break;
- case kDropHistoryIndex:
- target = self.dropHistoryController;
- predicateFormat = @"shipName contains $value";
- break;
-
- }
-
- if(!target) return;
-
- [self.searchField bind:NSPredicateBinding
- toObject:target
- withKeyPath:NSFilterPredicateBinding
- options:@{
- NSPredicateFormatBindingOption : predicateFormat,
- }];
-}
-
-
-@end
--- /dev/null
+//
+// HMHistoryWindowController.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/20.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+fileprivate protocol Markable {
+ var marked: Bool { get set }
+}
+fileprivate extension Markable where Self: HMDropShipHistory {
+ var marked: Bool {
+ get { return mark.boolValue }
+ set { mark = NSNumber(value: newValue) }
+ }
+}
+fileprivate extension Markable where Self: HMKenzoHistory {
+ var marked: Bool {
+ get { return mark.boolValue }
+ set { mark = NSNumber(value: newValue) }
+ }
+}
+fileprivate extension Markable where Self: HMKaihatuHistory {
+ var marked: Bool {
+ get { return mark.boolValue }
+ set { mark = NSNumber(value: newValue) }
+ }
+}
+extension HMDropShipHistory: Markable {}
+extension HMKenzoHistory: Markable {}
+extension HMKaihatuHistory: Markable {}
+
+fileprivate enum HMHistoryWindowTabIndex: Int {
+ case kaihatuHistory = 0
+ case kenzoHistory = 1
+ case dropHistory = 2
+}
+
+fileprivate extension Selector {
+ static let addMark = #selector(HMHistoryWindowController.addMark(_:))
+}
+
+fileprivate struct SelectionInfo {
+ var controller: NSArrayController
+
+ var predicateFormat: String
+
+ var tableView: NSTableView
+
+ var entityName: String
+ var pickUpPredicateFormat: String
+
+ init(_ owner: HMHistoryWindowController) {
+ switch owner.swiftSelectedTabIndex {
+ case .kaihatuHistory:
+ controller = owner.kaihatuHistoryController
+ predicateFormat = "name contains $value"
+ tableView = owner.kaihatuHistoryTableView
+ entityName = "KaihatuHistory"
+ pickUpPredicateFormat = "date = %@ AND name = %@"
+ case .kenzoHistory:
+ controller = owner.kenzoHistoryController
+ predicateFormat = "name contains $value"
+ tableView = owner.kenzoHistoryTableView
+ entityName = "KenzoHistory"
+ pickUpPredicateFormat = "date = %@ AND name = %@"
+ case .dropHistory:
+ controller = owner.dropHistoryController
+ predicateFormat = "shipName contains $value"
+ tableView = owner.dropHistoryTableView
+ entityName = "DropShipHistory"
+ pickUpPredicateFormat = "date = %@ AND mapCell = %@"
+ }
+ }
+}
+
+class HMHistoryWindowController: NSWindowController {
+
+ override var windowNibName: String! {
+ return "HMHistoryWindowController"
+ }
+
+ override func windowDidLoad() {
+ super.windowDidLoad()
+
+ let info = SelectionInfo(self)
+
+ searchField.bind(NSPredicateBinding,
+ to: info.controller,
+ withKeyPath: NSFilterPredicateBinding,
+ options: [NSPredicateFormatBindingOption: info.predicateFormat])
+ }
+
+ @IBOutlet var kaihatuHistoryController: NSArrayController!
+ @IBOutlet var kenzoHistoryController: NSArrayController!
+ @IBOutlet var dropHistoryController: NSArrayController!
+
+ @IBOutlet var kaihatuHistoryTableView: NSTableView!
+ @IBOutlet var kenzoHistoryTableView: NSTableView!
+ @IBOutlet var dropHistoryTableView: NSTableView!
+
+ @IBOutlet var searchField: NSSearchField!
+
+ let manageObjectContext: NSManagedObjectContext = HMLocalDataStore.default().managedObjectContext
+
+ var selectedTabIndex: Int = 0
+ {
+ didSet {
+ swiftSelectedTabIndex = HMHistoryWindowTabIndex(rawValue: selectedTabIndex)!
+ }
+ }
+ fileprivate var swiftSelectedTabIndex: HMHistoryWindowTabIndex = .kaihatuHistory
+
+ @IBAction func delete(_ sender: AnyObject?) {
+ let info = SelectionInfo(self)
+
+ guard let original = info.controller.selectedObjects as? [NSManagedObject] else { return }
+ let objectIds: [NSManagedObjectID] = original.map { $0.objectID }
+
+ let store = HMLocalDataStore.oneTimeEditor()!
+ objectIds.forEach { store.delete(store.object(with: $0)) }
+ }
+
+ @IBAction func addMark(_ sender: AnyObject?) {
+ let info = SelectionInfo(self)
+
+ guard let clickedObject = (info.controller.arrangedObjects as? NSArray)?.object(at: info.tableView.clickedRow) else {
+ return
+ }
+
+ var predicate: NSPredicate? = nil
+ switch swiftSelectedTabIndex {
+ case .kaihatuHistory:
+ if let obj = clickedObject as? HMKaihatuHistory {
+ predicate = NSPredicate(format: info.pickUpPredicateFormat,
+ argumentArray: [obj.date, obj.name])
+ }
+ case .kenzoHistory:
+ if let obj = clickedObject as? HMKenzoHistory {
+ predicate = NSPredicate(format: info.pickUpPredicateFormat,
+ argumentArray: [obj.date, obj.name])
+ }
+ case .dropHistory:
+ if let obj = clickedObject as? HMDropShipHistory {
+ predicate = NSPredicate(format: info.pickUpPredicateFormat,
+ argumentArray: [obj.date, obj.mapCell])
+ }
+ }
+ guard predicate != nil else { return }
+
+ let store = HMLocalDataStore.oneTimeEditor()!
+ let array: [AnyObject]
+ do {
+ array = try store.objects(withEntityName: info.entityName,
+ predicate: predicate!)
+ } catch let ex {
+ print("Error in addMark: \(ex)")
+ return
+ }
+ guard array.count != 0 else {
+ print("Not Found object in addMark.")
+ return
+ }
+ if var obj = array[0] as? Markable {
+ obj.marked = !obj.marked
+ }
+ store.saveAction(nil)
+ }
+
+ override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
+ if menuItem.action == .addMark {
+ let info = SelectionInfo(self)
+ if let obj = (info.controller.arrangedObjects as? NSArray)?.object(at: info.tableView.clickedRow) as? Markable {
+ if obj.marked {
+ menuItem.title = NSLocalizedString("Remove mark", comment: "Remove history mark.")
+ } else {
+ menuItem.title = NSLocalizedString("Add mark", comment: "Add history mark.")
+ }
+ }
+ }
+
+ return true
+ }
+}
+
+@available(OSX 10.12.2, *)
+fileprivate var objectForTouchBar:[Int: NSTouchBar] = [:]
+fileprivate var object1ForTouchBar:[Int: NSButton] = [:]
+
+@available(OSX 10.12.2, *)
+extension HMHistoryWindowController {
+ @IBOutlet var myTouchBar: NSTouchBar? {
+ get {
+ return objectForTouchBar[hashValue]
+ }
+ set {
+ objectForTouchBar[hashValue] = newValue
+ }
+ }
+ @IBOutlet var searchButton: NSButton? {
+ get {
+ return object1ForTouchBar[hashValue]
+ }
+ set {
+ object1ForTouchBar[hashValue] = newValue
+ }
+ }
+
+ override var touchBar: NSTouchBar? {
+ get {
+ if let _ = myTouchBar {
+ return myTouchBar
+ }
+ var topLevel: NSArray = []
+ Bundle.main.loadNibNamed("HistoryWindowTouchBar",
+ owner: self,
+ topLevelObjects: &topLevel)
+ return myTouchBar
+ }
+ set {}
+ }
+
+ @IBAction func selectSearchField(_ sender: AnyObject?) {
+ window!.makeFirstResponder(searchField!)
+ }
+}
+
+extension HMHistoryWindowController: NSTableViewDelegate {
+ func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
+ return tableView.make(withIdentifier: tableColumn!.identifier, owner: nil)
+ }
+}
+
+extension HMHistoryWindowController: NSTabViewDelegate {
+ func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
+ searchField.unbind(NSPredicateBinding)
+
+ let info = SelectionInfo(self)
+
+ searchField.bind(NSPredicateBinding,
+ to: info.controller,
+ withKeyPath: NSFilterPredicateBinding,
+ options: [NSPredicateFormatBindingOption: info.predicateFormat])
+ }
+}
+++ /dev/null
-//
-// HMPreferencePanelController.h
-// KCD
-//
-// Created by Hori,Masaki on 2014/09/08.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMPreferencePanelController : NSWindowController
-
-@property (readonly) NSString *screenShotSaveDirectory;
-
-
-- (IBAction)selectScreenShotSaveDirectory:(id)sender;
-
-- (IBAction)selectScreenShotSaveDirectoryPopUp:(id)sender;
-
-- (IBAction)didChangeSelection:(id)sender;
-
-@end
+++ /dev/null
-//
-// HMPreferencePanelController.m
-// KCD
-//
-// Created by Hori,Masaki on 2014/09/08.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMPreferencePanelController.h"
-
-#import "HMAppDelegate.h"
-#import "HMUserDefaults.h"
-
-typedef NS_ENUM(NSInteger, HMPreferencePaneType) {
- kGeneral = 1,
- kNotification = 2,
-};
-
-typedef NS_ENUM(NSUInteger, HMScreenShotSaveDirectoryPopUpMenuItemTag) {
- kSaveDirectoryItem = 1000,
- kSelectDirectoryItem = 2000,
-};
-
-@interface HMPreferencePanelController ()
-
-@property (nonatomic, strong) NSURL *screenShotSaveURL;
-
-@property (nonatomic, weak) IBOutlet NSPopUpButton *screenShotSaveDirectoryPopUp;
-@property (nonatomic, weak) IBOutlet NSView *generalPane;
-@property (nonatomic, weak) IBOutlet NSView *notificationPane;
-@end
-
-@implementation HMPreferencePanelController
-
-- (id)init
-{
- self = [super initWithWindowNibName:NSStringFromClass([self class])];
- return self;
-}
-
-- (void)awakeFromNib
-{
- HMAppDelegate *appDelegate = [[NSApplication sharedApplication] delegate];
- self.screenShotSaveDirectory = appDelegate.screenShotSaveDirectory;
-
- NSArray *items = self.window.toolbar.items;
- if(items.count != 0) {
- NSToolbarItem *item = items.firstObject;
- self.window.toolbar.selectedItemIdentifier = item.itemIdentifier;
- [NSApp sendAction:@selector(didChangeSelection:)
- to:self
- from:item];
- [self.window center];
- }
-}
-
-#pragma mark - Screen Shot
-- (NSString *)screenShotSaveDirectory
-{
- HMAppDelegate *appDelegate = [[NSApplication sharedApplication] delegate];
- return appDelegate.screenShotSaveDirectory;
-}
-- (void)setScreenShotSaveDirectory:(NSString *)screenShotSaveDirectory
-{
- HMAppDelegate *appDelegate = [[NSApplication sharedApplication] delegate];
- appDelegate.screenShotSaveDirectory = screenShotSaveDirectory;
-
- NSInteger index = [self.screenShotSaveDirectoryPopUp indexOfItemWithTag:kSaveDirectoryItem];
- NSMenuItem *item = [self.screenShotSaveDirectoryPopUp itemAtIndex:index];
-
- NSWorkspace *ws = [NSWorkspace sharedWorkspace];
- NSImage *icon = [ws iconForFile:screenShotSaveDirectory];
- NSSize iconSize = [icon size];
- CGFloat height = 16;
- [icon setSize:NSMakeSize(iconSize.width * height / iconSize.height, height)];
-
- NSFileManager *fm = [NSFileManager defaultManager];
- NSString *title = [fm displayNameAtPath:screenShotSaveDirectory];
-
- [item setImage:icon];
- [item setTitle:title];
-}
-
-
-- (IBAction)selectScreenShotSaveDirectory:(id)sender
-{
- NSOpenPanel *panel = [NSOpenPanel openPanel];
-
- [panel setCanChooseDirectories:YES];
- [panel setCanChooseFiles:NO];
-
- [panel beginSheetModalForWindow:self.window
- completionHandler:^(NSInteger result) {
- if(result == NSModalResponseCancel) return;
-
- self.screenShotSaveDirectory = panel.URL.path;
- }];
-}
-
-- (IBAction)selectScreenShotSaveDirectoryPopUp:(id)sender
-{
- NSUInteger tag = [sender tag];
- if(tag != kSelectDirectoryItem) return;
-
- NSOpenPanel *panel = [NSOpenPanel openPanel];
-
- [panel setCanChooseDirectories:YES];
- [panel setCanChooseFiles:NO];
-
- [panel beginSheetModalForWindow:self.window
- completionHandler:^(NSInteger result) {
- [self.screenShotSaveDirectoryPopUp selectItemWithTag:kSaveDirectoryItem];
-
- if(result == NSModalResponseCancel) return;
-
- self.screenShotSaveDirectory = panel.URL.path;
- }];
-}
-
-- (IBAction)didChangeSelection:(id)sender
-{
- NSInteger tag = [sender tag];
- NSView *newPane = nil;
- switch(tag) {
- case kGeneral:
- newPane = self.generalPane;
- break;
- case kNotification:
- newPane = self.notificationPane;
- break;
- }
-
- if(!newPane) return;
-
- NSToolbarItem *item = (NSToolbarItem *)sender;
- self.window.title = item.label;
-
- NSArray *subviews = self.window.contentView.subviews;
- for(NSView *subview in subviews) {
- [subview removeFromSuperview];
- }
-
- NSRect windowRect = self.window.frame;
- NSRect newWindowRect = [self.window frameRectForContentRect:newPane.frame];
- newWindowRect.origin.x = windowRect.origin.x;
- newWindowRect.origin.y = windowRect.origin.y + windowRect.size.height - newWindowRect.size.height;
- [self.window setFrame:newWindowRect display:YES animate:YES];
-
- [self.window.contentView addSubview:newPane];
-}
-
-@end
--- /dev/null
+//
+// HMPreferencePanelController.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/19.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+enum PreferencesPaneType: Int {
+ case general = 1
+ case notification = 2
+}
+enum ScreenshotSaveDirectoryPopupMenuItemTag: Int {
+ case saveDirectory = 1000
+ case selectDiretory = 2000
+}
+
+private extension Selector {
+ static let didChangeSelection = #selector(HMPreferencePanelController.didChangeSelection(_:))
+}
+
+class HMPreferencePanelController: NSWindowController {
+
+ override var windowNibName: String! {
+ return "HMPreferencePanelController"
+ }
+ override func windowDidLoad() {
+ super.windowDidLoad()
+
+ let appDelegate: HMAppDelegate = NSApplication.shared().delegate as! HMAppDelegate
+ screenShotSaveDirectory = appDelegate.screenShotSaveDirectory
+ guard let items = window!.toolbar?.items else { return }
+ guard items.count != 0 else { return }
+ guard let item = items.first else { return }
+ window!.toolbar!.selectedItemIdentifier = item.itemIdentifier
+ NSApplication.shared().sendAction(.didChangeSelection,
+ to: self,
+ from: item)
+
+ window!.center()
+ }
+
+ @IBOutlet var screenShotSaveDirectoryPopUp: NSPopUpButton!
+ @IBOutlet var generalPane: NSView!
+ @IBOutlet var notificationPane: NSView!
+
+ private(set) var screenShotSaveDirectory: String {
+ get {
+ let appDelegate: HMAppDelegate = NSApplication.shared().delegate as! HMAppDelegate
+ return appDelegate.screenShotSaveDirectory
+ }
+ set {
+ let appDelegate: HMAppDelegate = NSApplication.shared().delegate as! HMAppDelegate
+ appDelegate.screenShotSaveDirectory = newValue
+
+ let index = screenShotSaveDirectoryPopUp.indexOfItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
+ guard let item = screenShotSaveDirectoryPopUp.item(at: index) else { return }
+
+ let icon = NSWorkspace.shared().icon(forFile: newValue)
+ let iconSize = icon.size
+ let height: Double = 16
+ icon.size = NSSize(width: Double(iconSize.width) * height / Double(iconSize.height), height: height)
+
+ item.image = icon
+ item.title = FileManager.default.displayName(atPath: newValue)
+ }
+ }
+
+ @IBAction func selectScreenShotSaveDirectoryPopUp(_ sender: AnyObject?) {
+ guard let tag = sender?.tag else { return }
+ guard ScreenshotSaveDirectoryPopupMenuItemTag.selectDiretory.rawValue == tag else { return }
+
+ let panel = NSOpenPanel()
+ panel.canChooseDirectories = true
+ panel.canChooseFiles = false
+ panel.beginSheetModal(for: window!) {
+ self.screenShotSaveDirectoryPopUp.selectItem(withTag: ScreenshotSaveDirectoryPopupMenuItemTag.saveDirectory.rawValue)
+ guard $0 != NSModalResponseCancel else { return }
+ guard let path = panel.url?.path else { return }
+ self.screenShotSaveDirectory = path
+ }
+ }
+
+ @IBAction func didChangeSelection(_ sender: AnyObject?) {
+ guard let tag = sender?.tag else { return }
+ var newPane: NSView?
+ switch PreferencesPaneType(rawValue: tag)! {
+ case .general:
+ newPane = generalPane
+ case .notification:
+ newPane = notificationPane
+ }
+ guard let pane = newPane else { return }
+ guard let item = sender as? NSToolbarItem else { return }
+ window?.title = item.label
+
+ for subview in window!.contentView!.subviews {
+ subview.removeFromSuperview()
+ }
+
+ let windowRect = window!.frame
+ var newWindowRect = window!.frameRect(forContentRect: pane.frame)
+ newWindowRect.origin.x = windowRect.origin.x
+ newWindowRect.origin.y = windowRect.origin.y + windowRect.size.height - newWindowRect.size.height
+ window!.setFrame(newWindowRect, display: true, animate: true)
+ window!.contentView?.addSubview(pane)
+ }
+}
+++ /dev/null
-//
-// HMProgressPanel.h
-// KCD
-//
-// Created by Hori,Masaki on 2015/06/25.
-// Copyright (c) 2015年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMProgressPanel : NSWindowController
-
-@property (nonatomic, copy) NSString *title;
-@property (nonatomic, copy) NSString *message;
-@property BOOL animate;
-
-@end
+++ /dev/null
-//
-// HMProgressPanel.m
-// KCD
-//
-// Created by Hori,Masaki on 2015/06/25.
-// Copyright (c) 2015年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMProgressPanel.h"
-
-@interface HMProgressPanel ()
-
-@end
-
-@implementation HMProgressPanel
-
-- (instancetype)init
-{
- self = [super initWithWindowNibName:NSStringFromClass([self class])];
- return self;
-}
-@end
--- /dev/null
+//
+// HMProgressPanel.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/20.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+class HMProgressPanel: NSWindowController {
+
+ override var windowNibName: String! {
+ return "HMProgressPanel"
+ }
+
+ var title: String = ""
+ var message: String = ""
+ var animate: Bool = false
+}
+++ /dev/null
-//
-// HMSlotItemWindowController.h
-// KCD
-//
-// Created by Hori,Masaki on 2014/04/29.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMSlotItemWindowController : NSWindowController
-
-@property (readonly) NSManagedObjectContext *managedObjectContext;
-
-@property (nonatomic, strong) NSNumber *showEquipmentType;
-@property (nonatomic, readonly) NSString *showEquipmentTypeTitle;
-@property (readonly) NSPredicate *filterPredicate;
-@end
+++ /dev/null
-//
-// HMSlotItemWindowController.m
-// KCD
-//
-// Created by Hori,Masaki on 2014/04/29.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMSlotItemWindowController.h"
-#import "HMUserDefaults.h"
-
-#import "HMServerDataStore.h"
-
-@interface HMSlotItemWindowController ()
-@property (nonatomic, strong) IBOutlet NSArrayController *slotItemController;
-
-@property (nonatomic, weak) IBOutlet NSSearchField *searchField;
-
-@property (nonatomic, strong) IBOutlet NSTouchBar *myTouchBar;
-
-@end
-
-@implementation HMSlotItemWindowController
-
-- (id)init
-{
- self = [super initWithWindowNibName:NSStringFromClass([self class])];
- return self;
-}
-
-- (void)awakeFromNib
-{
- // refresh filter
- self.showEquipmentType = self.showEquipmentType;
-}
-
-- (NSManagedObjectContext *)managedObjectContext
-{
- return [HMServerDataStore defaultManager].managedObjectContext;
-}
-
-+ (NSSet *)keyPathsForValuesAffectingFilterPredicate
-{
- return [NSSet setWithObject:@"showEquipmentType"];
-}
-+ (NSSet *)keyPathsForValuesAffectingShowEquipmentTypeTitle
-{
- return [NSSet setWithObject:@"showEquipmentType"];
-}
-- (void)setShowEquipmentType:(NSNumber *)showEquipmentType
-{
- HMStandardDefaults.showEquipmentType = showEquipmentType;
- self.slotItemController.fetchPredicate = self.filterPredicate;
-}
-- (NSNumber *)showEquipmentType
-{
- return HMStandardDefaults.showEquipmentType;
-}
-
-- (NSPredicate *)filterPredicate
-{
- NSInteger type = HMStandardDefaults.showEquipmentType.integerValue;
- switch (type) {
- case -1:
- break;
- case 0:
- return [NSPredicate predicateWithFormat:@"equippedShip.lv = NULL && extraEquippedShip.lv = NULL"];
- break;
- case 1:
- return [NSPredicate predicateWithFormat:@"equippedShip.lv != NULL || extraEquippedShip.lv != NULL"];
- break;
- default:
- break;
- }
- return nil;
-}
-- (NSString *)showEquipmentTypeTitle
-{
- NSInteger type = HMStandardDefaults.showEquipmentType.integerValue;
- switch (type) {
- case -1:
- return NSLocalizedString(@"All", @"show equipment type All");
- break;
- case 0:
- return NSLocalizedString(@"Unequiped", @"show equipment type Unequiped");
- break;
- case 1:
- return NSLocalizedString(@"Equiped", @"show equipment type Equiped");
- break;
- default:
- break;
- }
- return @"";
-}
-
-- (IBAction)nextShowType:(id)sender
-{
- NSNumber *next = @((self.showEquipmentType.integerValue + 2) % 3 - 1);
- self.showEquipmentType = next;
-}
-
-- (IBAction)selectSearchField:(id)sender
-{
- [self.window makeFirstResponder:self.searchField];
-}
-
-- (NSTouchBar *)touchBar
-{
- if(NSClassFromString(@"NSTouchBar") == Nil) return nil;
-
- if(self.myTouchBar) return self.myTouchBar;
-
- NSArray *toplevel = nil;
- NSBundle *mainBundle = [NSBundle mainBundle];
- [mainBundle loadNibNamed:@"SlotItemWindowTouchBar"
- owner:self
- topLevelObjects:&toplevel];
-
- return self.myTouchBar;
-}
-
-
-@end
--- /dev/null
+//
+// HMSlotItemWindowController.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/21.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+class HMSlotItemWindowController: NSWindowController {
+
+ override var windowNibName: String! {
+ return "HMSlotItemWindowController"
+ }
+
+ override func windowDidLoad() {
+ super.windowDidLoad()
+
+ // refresh filter
+ let type = showEquipmentType
+ showEquipmentType = type
+ }
+
+ @IBOutlet var slotItemController: NSArrayController!
+ @IBOutlet var searchField: NSSearchField!
+
+ let managedObjectContext: NSManagedObjectContext = HMServerDataStore.default().managedObjectContext
+
+ var showEquipmentType: Int {
+ get {
+ return Int(HMStandardDefaults.showEquipmentType)
+ }
+ set {
+ willChangeValue(forKey: "filterPredicate")
+ willChangeValue(forKey: "showEquipmentTypeTitle")
+ HMStandardDefaults.showEquipmentType = NSNumber(value: newValue)
+ didChangeValue(forKey: "showEquipmentTypeTitle")
+ didChangeValue(forKey: "filterPredicate")
+ }
+ }
+
+ var filterPredicate: NSPredicate? {
+ get {
+ switch HMStandardDefaults.showEquipmentType {
+ case -1:
+ return nil
+ case 0:
+ return NSPredicate(format: "equippedShip.lv = NULL && extraEquippedShip.lv = NULL")
+ case 1:
+ return NSPredicate(format: "equippedShip.lv != NULL || extraEquippedShip.lv != NULL")
+ default:
+ return nil
+ }
+ }
+ }
+
+ var showEquipmentTypeTitle: String {
+ get {
+ switch HMStandardDefaults.showEquipmentType {
+ case -1:
+ return NSLocalizedString("All", comment: "show equipment type All")
+ case 0:
+ return NSLocalizedString("Unequiped", comment: "show equipment type Unequiped")
+ case 1:
+ return NSLocalizedString("Equiped", comment: "show equipment type Equiped")
+ default:
+ return ""
+ }
+ }
+ }
+}
+
+
+@available(OSX 10.12.2, *)
+fileprivate var objectForTouchBar:[Int: NSTouchBar] = [:]
+
+@available(OSX 10.12.2, *)
+extension HMSlotItemWindowController {
+ @IBOutlet var myTouchBar: NSTouchBar? {
+ get {
+ return objectForTouchBar[hash]
+ }
+ set {
+ objectForTouchBar[hash] = newValue
+ }
+ }
+
+ override var touchBar: NSTouchBar? {
+ get {
+ if let _ = myTouchBar {
+ return myTouchBar
+ }
+ var topLevel: NSArray = []
+ Bundle.main.loadNibNamed("SlotItemWindowTouchBar",
+ owner: self,
+ topLevelObjects: &topLevel)
+ return myTouchBar
+ }
+ set {}
+ }
+
+ @IBAction func nextShowType(_ sender: AnyObject?) {
+ let next = (showEquipmentType + 2) % 3 - 1
+ showEquipmentType = next
+ }
+ @IBAction func selectSearchField(_ sender: AnyObject?) {
+ window!.makeFirstResponder(searchField)
+ }
+}
+++ /dev/null
-//
-// HMUpgradableShipsWindowController.h
-// KCD
-//
-// Created by Hori,Masaki on 2014/10/26.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface HMUpgradableShipsWindowController : NSWindowController
-
-@property BOOL showLevelOneShipInUpgradableList;
-@property BOOL showsExcludedShipInUpgradableList;
-@property (readonly) NSPredicate *filterPredicate;
-
-@end
-
-BOOL isExcludeShipID(id shipID);
+++ /dev/null
-//
-// HMUpgradableShipsWindowController.m
-// KCD
-//
-// Created by Hori,Masaki on 2014/10/26.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMUpgradableShipsWindowController.h"
-
-#import "HMAppDelegate.h"
-#import "HMServerDataStore.h"
-#import "HMUserDefaults.h"
-#import "HMKCShipObject+Extensions.h"
-
-
-static NSArray *sExcludeShiIDs = nil;
-
-@interface HMUpgradableShipsWindowController ()
-
-@property (nonatomic, weak) IBOutlet NSMenu *contextualMenu;
-@property (nonatomic, weak) IBOutlet NSTableView *tableView;
-@property (nonatomic, strong) IBOutlet NSArrayController *shipsController;
-
-@property (nonatomic, copy) NSArray *excludeShiIDs;
-@end
-
-
-BOOL isExcludeShipID(id shipID)
-{
- if([sExcludeShiIDs containsObject:shipID]) {
- return YES;
- }
- return NO;
-}
-
-@implementation HMUpgradableShipsWindowController
-
-- (id)init
-{
- self = [super initWithWindowNibName:NSStringFromClass([self class])];
- if(self) {
- [self loadExcludeShipIDs];
- }
- return self;
-}
-
-- (NSURL *)excludeAhipIDsSaveURL
-{
- HMAppDelegate *appDelegate = [[NSApplication sharedApplication] delegate];
- NSURL *dir = appDelegate.supportDirectory;
- NSURL *pathURL = [dir URLByAppendingPathComponent:@"ExcludeShipIDs"];
- return pathURL;
-}
-- (void)saveExcludeShipIDs
-{
- NSURL *pathURL = [self excludeAhipIDsSaveURL];
-
- [self.excludeShiIDs writeToURL:pathURL atomically:YES];
-}
-- (void)loadExcludeShipIDs
-{
- NSURL *pathURL = [self excludeAhipIDsSaveURL];
- NSArray *array = [NSArray arrayWithContentsOfURL:pathURL];
- if(array && ![array isKindOfClass:[NSArray class]]) {
- NSLog(@"%@ is broken.", pathURL.path);
- array = nil;
- }
- self.excludeShiIDs = array ?: [NSArray array];
-}
-
-- (NSManagedObjectContext *)managedObjectContext
-{
- return [HMServerDataStore defaultManager].managedObjectContext;
-}
-
-- (NSArray *)excludeShiIDs
-{
- return sExcludeShiIDs;
-}
-- (void)setExcludeShiIDs:(NSArray *)excludeShiIDs
-{
- sExcludeShiIDs = excludeShiIDs;
- [self saveExcludeShipIDs];
-}
-
-+ (NSSet *)keyPathsForValuesAffectingFilterPredicate
-{
- return [NSSet setWithObjects:@"showLevelOneShipInUpgradableList", @"excludeShiIDs", @"showsExcludedShipInUpgradableList", nil];
-}
-- (void)setShowLevelOneShipInUpgradableList:(BOOL)showLevelOneShipInUpgradableList
-{
- HMStandardDefaults.showLevelOneShipInUpgradableList = showLevelOneShipInUpgradableList;
-}
-- (BOOL)showLevelOneShipInUpgradableList
-{
- return HMStandardDefaults.showLevelOneShipInUpgradableList;
-}
-- (void)setShowsExcludedShipInUpgradableList:(BOOL)showsExcludedShipInUpgradableList
-{
- HMStandardDefaults.showsExcludedShipInUpgradableList = showsExcludedShipInUpgradableList;
-}
-- (BOOL)showsExcludedShipInUpgradableList
-{
- return HMStandardDefaults.showsExcludedShipInUpgradableList;
-}
-- (NSPredicate *)filterPredicate
-{
- NSPredicate *filterPredicate = nil;
- NSPredicate *excludeShip = nil;
- if(!HMStandardDefaults.showLevelOneShipInUpgradableList) {
- filterPredicate = [NSPredicate predicateWithFormat:@"lv != 1"];
- }
- if(!self.showsExcludedShipInUpgradableList && self.excludeShiIDs.count != 0) {
- excludeShip = [NSPredicate predicateWithFormat:@"NOT id IN %@", self.excludeShiIDs];
- }
- if(filterPredicate && excludeShip) {
- return [[NSCompoundPredicate alloc] initWithType:NSAndPredicateType
- subpredicates:@[filterPredicate, excludeShip]];
- }
- if(filterPredicate) {
- return filterPredicate;
- }
- if(excludeShip ) {
- return excludeShip;
- }
- return nil;
-}
-
-- (void)includeShip:(id)shipID
-{
- NSMutableArray *array = [self.excludeShiIDs mutableCopy];
- [array removeObject:shipID];
- self.excludeShiIDs = array;
-}
-- (void)excludeShip:(id)shipID
-{
- NSMutableArray *array = [self.excludeShiIDs mutableCopy];
- [array addObject:shipID];
- self.excludeShiIDs = array;
-}
-- (IBAction)showHideShip:(id)sender
-{
- NSInteger row = self.tableView.clickedRow;
- if(row == -1) return;
-
- HMKCShipObject *ship = [[self.shipsController arrangedObjects] objectAtIndex:row];
- id shipID = ship.id;
- if([self.excludeShiIDs containsObject:shipID]) {
- [self includeShip:shipID];
- } else {
- [self excludeShip:shipID];
- }
-}
-
-- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
-{
- SEL action = menuItem.action;
- if(action == @selector(showHideShip:)) {
- NSInteger row = self.tableView.clickedRow;
- if(row == -1) return NO;
-
- HMKCShipObject *ship = [[self.shipsController arrangedObjects] objectAtIndex:row];
- id shipID = ship.id;
- if([self.excludeShiIDs containsObject:shipID]) {
- menuItem.title = NSLocalizedString(@"Show Kanmusu", @"HMUpgradableShipsWindowController menu item");
- } else {
- menuItem.title = NSLocalizedString(@"Hide Kanmusu", @"HMUpgradableShipsWindowController menu item");
- }
- return YES;
- }
-
- return NO;
-}
-
-@end
--- /dev/null
+//
+// HMUpgradableShipsWindowController.swift
+// KCD
+//
+// Created by Hori,Masaki on 2016/12/18.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+private extension Selector {
+ static let showHideShip = #selector(HMUpgradableShipsWindowController.showHideShip(_:))
+}
+
+class HMUpgradableShipsWindowController: NSWindowController {
+
+ override var windowNibName: String! {
+ return "HMUpgradableShipsWindowController"
+ }
+
+ override func windowDidLoad() {
+ super.windowDidLoad()
+
+ excludeShiIDsCache = excludeShiIDs
+ }
+
+ private static var excludeShiIDsCache: NSArray = []
+
+ class func isExcludeShipID(_ shipID: AnyObject) -> Bool {
+ return excludeShiIDsCache.contains(shipID)
+ }
+
+ private var excludeShiIDsCache: NSArray {
+ get {
+ return HMUpgradableShipsWindowController.excludeShiIDsCache
+ }
+ set {
+ HMUpgradableShipsWindowController.excludeShiIDsCache = newValue
+ }
+ }
+ private func isExcludeShipID(_ shipID: AnyObject) -> Bool {
+ return excludeShiIDsCache.contains(shipID)
+ }
+
+ let managedObjectContext = HMServerDataStore.default().managedObjectContext
+
+ @IBOutlet var contextualMenu: NSMenu!
+ @IBOutlet var tableView: NSTableView!
+ @IBOutlet var shipsController: NSArrayController!
+
+ var showLevelOneShipInUpgradableList: Bool {
+ get {
+ return HMStandardDefaults.showLevelOneShipInUpgradableList
+ }
+ set {
+ HMStandardDefaults.showLevelOneShipInUpgradableList = newValue
+ }
+ }
+ var showsExcludedShipInUpgradableList: Bool {
+ get {
+ return HMStandardDefaults.showsExcludedShipInUpgradableList
+ }
+ set {
+ HMStandardDefaults.showsExcludedShipInUpgradableList = newValue
+ }
+ }
+ private var excludeShipIDsSaveURL: URL {
+ get {
+ let appDelegate = NSApplication.shared().delegate as! HMAppDelegate
+ let dir = appDelegate.supportDirectory
+ return dir!.appendingPathComponent("ExcludeShipIDs")
+ }
+ }
+ var excludeShiIDs: NSArray {
+ get {
+ return NSArray(contentsOf: excludeShipIDsSaveURL) ?? []
+ }
+ set {
+ willChangeValue(forKey: "filterPredicate")
+ newValue.write(to: excludeShipIDsSaveURL, atomically: true)
+ HMUpgradableShipsWindowController.excludeShiIDsCache = newValue
+ didChangeValue(forKey: "filterPredicate")
+ }
+ }
+ private func includeShip(shipID: AnyObject) {
+ let array: NSMutableArray = excludeShiIDsCache.mutableCopy() as! NSMutableArray
+ array.remove(shipID)
+ excludeShiIDs = array
+ }
+ private func excludeShip(shipID: AnyObject) {
+ let array: NSMutableArray = excludeShiIDsCache.mutableCopy() as! NSMutableArray
+ array.add(shipID)
+ excludeShiIDs = array
+ }
+
+ dynamic class func keyPathsForValuesAffectingFilterPredicate() -> NSSet {
+ return NSSet(objects: "showLevelOneShipInUpgradableList", "showsExcludedShipInUpgradableList")
+ }
+ dynamic var filterPredicate: NSPredicate? {
+ get {
+ var filterPredicate: NSPredicate? = nil
+ var excludeShip: NSPredicate? = nil
+ if showLevelOneShipInUpgradableList == false {
+ filterPredicate = NSPredicate(format: "lv != 1")
+ }
+ if showsExcludedShipInUpgradableList == false && excludeShiIDs.count != 0 {
+ excludeShip = NSPredicate(format: "NOT id IN %@", argumentArray: [excludeShiIDs])
+ }
+ if filterPredicate != nil && excludeShip != nil {
+ return NSCompoundPredicate(andPredicateWithSubpredicates: [filterPredicate!, excludeShip!])
+ }
+ if filterPredicate != nil { return filterPredicate }
+ if excludeShip != nil { return excludeShip }
+
+ return nil
+ }
+ }
+
+ @IBAction func showHideShip(_ sender: AnyObject?) {
+ let row = tableView.clickedRow
+ guard row != -1 else { return }
+ guard let a = shipsController.arrangedObjects as? NSArray else { return }
+ guard let ship = a.object(at: row) as? HMKCShipObject else { return }
+ guard let shipID = ship.id else { return }
+ if isExcludeShipID(shipID) {
+ includeShip(shipID: shipID)
+ } else {
+ excludeShip(shipID: shipID)
+ }
+ }
+
+ override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
+ if menuItem.action == .showHideShip {
+ let row = tableView.clickedRow
+ guard row != -1 else { return false }
+ guard let a = shipsController.arrangedObjects as? NSArray else { return false }
+ guard let ship = a.object(at: row) as? HMKCShipObject else { return false }
+ guard let shipID = ship.id else { return false }
+ if isExcludeShipID(shipID) {
+ menuItem.title = NSLocalizedString("Show Kanmusu", comment: "HMUpgradableShipsWindowController menu item")
+ } else {
+ menuItem.title = NSLocalizedString("Hide Kanmusu", comment: "HMUpgradableShipsWindowController menu item")
+ }
+
+ return true
+ }
+
+ return false
+ }
+}
#import "HMUpgradeShipExcludeColorTransformer.h"
-#import "HMUpgradableShipsWindowController.h"
-
+#import "KCD-Swift.h"
@implementation HMUpgradeShipExcludeColorTransformer
+ (void)load
- (id)transformedValue:(id)value
{
- if(isExcludeShipID(value)) {
+ if([HMUpgradableShipsWindowController isExcludeShipID:value]) {
return [NSColor lightGrayColor];
}
return [NSColor controlTextColor];
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2659" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaDFRPlugin" version="7104"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
<capability name="the Touch Bar" message="Use a version of macOS with Touch Bar support." minToolsVersion="8.1" minSystemVersion="10.12.1" requiredIntegratedClassName="NSTouchBar"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="HMHistoryWindowController">
+ <customObject id="-2" userLabel="File's Owner" customClass="HMHistoryWindowController" customModule="KCD">
<connections>
<outlet property="myTouchBar" destination="6zi-UH-Fiy" id="0fR-6K-oG1"/>
<outlet property="searchButton" destination="zwm-UM-SpA" id="ips-An-Ehr"/>
<touchBarItem id="X83-Wd-05k">
<viewController key="viewController" id="Lek-zg-1B1">
<button key="view" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zwm-UM-SpA">
- <rect key="frame" x="0.0" y="0.0" width="144" height="30"/>
+ <rect key="frame" x="0.0" y="0.0" width="72" height="30"/>
<buttonCell key="cell" type="push" bezelStyle="rounded" image="NSTouchBarSearchTemplate" imagePosition="only" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="uOd-QH-aXS">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</touchBar>
</objects>
<resources>
- <image name="NSTouchBarSearchTemplate" width="128" height="128"/>
+ <image name="NSTouchBarSearchTemplate" width="19" height="30"/>
</resources>
</document>
--- /dev/null
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
+
+#import "HMAppDelegate.h"
+#import "HMUserDefaults.h"
+
+
+#import "HMServerDataStore.h"
+#import "HMLocalDataStore.h"
+
+
+#import "HMKCShipObject+Extensions.h"
+
+#import "HMKaihatuHistory.h"
+#import "HMKenzoHistory.h"
+#import "HMDropShipHistory.h"