From 82afcfbf0f0bf17d93c325acfa6eb075aacfe574 Mon Sep 17 00:00:00 2001 From: michael starke Date: Thu, 21 Feb 2013 03:39:36 +0100 Subject: [PATCH] Missing files from last commit --- MacPass.xcodeproj/project.pbxproj | 20 + MacPass/EntryEditView.xib | 2653 ++++++++++++++++++++++++++++- MacPass/EntryView.xib | 1887 +++++++++++++++++--- MacPass/GeneralSettings.xib | 127 +- MacPass/MPEntryViewController.h | 9 +- MacPass/MPEntryViewController.m | 110 +- MacPass/MPGradientView.h | 2 + MacPass/MPGradientView.m | 71 +- MacPass/MPIconHelper.h | 10 + MacPass/MPIconHelper.m | 12 +- MacPass/MacPass-Info.plist | 2 +- 11 files changed, 4581 insertions(+), 322 deletions(-) diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 917eff0a..78fd7105 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -58,6 +58,7 @@ 4C669BA016760ED100DD0774 /* Salsa20RandomStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C669B7716760ED100DD0774 /* Salsa20RandomStream.m */; }; 4C669BA116760ED100DD0774 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C669B7916760ED100DD0774 /* Utils.m */; }; 4C669BA216760ED100DD0774 /* UUID.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C669B7B16760ED100DD0774 /* UUID.m */; }; + 4C69A73A16D589DF00EC1B1A /* MPGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C69A73916D589DF00EC1B1A /* MPGradientView.m */; }; 4C6B0E8C16C9B99B00A9ED23 /* PasswordInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C6B0E8B16C9B99B00A9ED23 /* PasswordInputView.xib */; }; 4C75CE3C16CB128700F61A4D /* MPDatabaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CE3B16CB128700F61A4D /* MPDatabaseController.m */; }; 4C77E36715B84A240093A587 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; }; @@ -66,6 +67,7 @@ 4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37915B84A240093A587 /* MPAppDelegate.m */; }; 4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37B15B84A240093A587 /* MainMenu.xib */; }; 4C83814215BF4677001AE468 /* MPMainWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C83814115BF4677001AE468 /* MPMainWindowController.m */; }; + 4C8FECC816D57E3200BF26CF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C8FECC716D57E3200BF26CF /* QuartzCore.framework */; }; 4CA0B2ED15BCADAC00654E32 /* SettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA0B2EC15BCADAC00654E32 /* SettingsWindow.xib */; }; 4CA0B2F015BCADC800654E32 /* GeneralSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA0B2EF15BCADC800654E32 /* GeneralSettings.xib */; }; 4CA0B2F915BCAF6700654E32 /* MPGeneralSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */; }; @@ -89,6 +91,8 @@ 4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */; }; 4CD884B715BD47080042BBF8 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD884B615BD47080042BBF8 /* MainWindow.xib */; }; 4CDF01A316D1B76700D0AC08 /* MPEntryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */; }; + 4CF5D49616D5B6E900CB78BD /* MPEntryEditController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF5D49416D5B6E900CB78BD /* MPEntryEditController.m */; }; + 4CF5D49716D5B6E900CB78BD /* EntryEditView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CF5D49516D5B6E900CB78BD /* EntryEditView.xib */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -188,6 +192,8 @@ 4C669B7916760ED100DD0774 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utils.m; sourceTree = ""; }; 4C669B7A16760ED100DD0774 /* UUID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UUID.h; sourceTree = ""; }; 4C669B7B16760ED100DD0774 /* UUID.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UUID.m; sourceTree = ""; }; + 4C69A73816D589DF00EC1B1A /* MPGradientView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPGradientView.h; sourceTree = ""; }; + 4C69A73916D589DF00EC1B1A /* MPGradientView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPGradientView.m; sourceTree = ""; }; 4C6B0E8B16C9B99B00A9ED23 /* PasswordInputView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PasswordInputView.xib; sourceTree = ""; }; 4C75CE3A16CB128700F61A4D /* MPDatabaseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseController.h; sourceTree = ""; }; 4C75CE3B16CB128700F61A4D /* MPDatabaseController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseController.m; sourceTree = ""; }; @@ -205,6 +211,7 @@ 4C77E37C15B84A240093A587 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 4C83814015BF4677001AE468 /* MPMainWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPMainWindowController.h; sourceTree = ""; }; 4C83814115BF4677001AE468 /* MPMainWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPMainWindowController.m; sourceTree = ""; }; + 4C8FECC716D57E3200BF26CF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 4CA0B2EC15BCADAC00654E32 /* SettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SettingsWindow.xib; sourceTree = ""; }; 4CA0B2EF15BCADC800654E32 /* GeneralSettings.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GeneralSettings.xib; sourceTree = ""; }; 4CA0B2F715BCAF6700654E32 /* MPGeneralSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPGeneralSettingsController.h; sourceTree = ""; }; @@ -243,6 +250,9 @@ 4CD884B615BD47080042BBF8 /* MainWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; 4CDF01A116D1B76700D0AC08 /* MPEntryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryViewController.h; sourceTree = ""; }; 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEntryViewController.m; sourceTree = ""; }; + 4CF5D49316D5B6E900CB78BD /* MPEntryEditController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryEditController.h; sourceTree = ""; }; + 4CF5D49416D5B6E900CB78BD /* MPEntryEditController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEntryEditController.m; sourceTree = ""; }; + 4CF5D49516D5B6E900CB78BD /* EntryEditView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EntryEditView.xib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -250,6 +260,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4C8FECC816D57E3200BF26CF /* QuartzCore.framework in Frameworks */, 4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */, 4CAD748C15B889B700104512 /* Security.framework in Frameworks */, 4C77E36715B84A240093A587 /* Cocoa.framework in Frameworks */, @@ -262,6 +273,7 @@ 4C06398C15B980480004DE27 /* Views */ = { isa = PBXGroup; children = ( + 4CF5D49516D5B6E900CB78BD /* EntryEditView.xib */, 4C77E37B15B84A240093A587 /* MainMenu.xib */, 4CA0B2EC15BCADAC00654E32 /* SettingsWindow.xib */, 4CA0B2EF15BCADC800654E32 /* GeneralSettings.xib */, @@ -270,6 +282,8 @@ 4C25D58416CF0F8800F6806C /* WelcomeView.xib */, 4C25D58616CF0FAA00F6806C /* EntryView.xib */, 4C61EA0416D2FFE200AC519E /* OutlineView.xib */, + 4C69A73816D589DF00EC1B1A /* MPGradientView.h */, + 4C69A73916D589DF00EC1B1A /* MPGradientView.m */, ); name = Views; sourceTree = ""; @@ -457,6 +471,7 @@ isa = PBXGroup; children = ( 4CAD748D15B88AC100104512 /* libz.dylib */, + 4C8FECC716D57E3200BF26CF /* QuartzCore.framework */, 4CAD748B15B889B700104512 /* Security.framework */, 4C77E36615B84A240093A587 /* Cocoa.framework */, 4C77E36815B84A240093A587 /* Other Frameworks */, @@ -522,6 +537,8 @@ 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */, 4C61EA0116D2FD0800AC519E /* MPOutlineViewController.h */, 4C61EA0216D2FD0800AC519E /* MPOutlineViewController.m */, + 4CF5D49316D5B6E900CB78BD /* MPEntryEditController.h */, + 4CF5D49416D5B6E900CB78BD /* MPEntryEditController.m */, ); name = Controller; sourceTree = ""; @@ -668,6 +685,7 @@ 4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */, 4C61EA0516D2FFE200AC519E /* OutlineView.xib in Resources */, 4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */, + 4CF5D49716D5B6E900CB78BD /* EntryEditView.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -752,6 +770,8 @@ 4C61EA0316D2FD0800AC519E /* MPOutlineViewController.m in Sources */, 4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPAdditions.m in Sources */, 4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */, + 4C69A73A16D589DF00EC1B1A /* MPGradientView.m in Sources */, + 4CF5D49616D5B6E900CB78BD /* MPEntryEditController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MacPass/EntryEditView.xib b/MacPass/EntryEditView.xib index 9155d857..0e80fe03 100644 --- a/MacPass/EntryEditView.xib +++ b/MacPass/EntryEditView.xib @@ -2,17 +2,36 @@ 1070 - 12A79 - 2142 - 1147 - 592.00 + 12C60 + 3084 + 1187.34 + 625.00 com.apple.InterfaceBuilder.CocoaPlugin - 2142 + 3084 - NSCustomView + IBNSLayoutConstraint + NSBox + NSButton + NSButtonCell NSCustomObject + NSCustomView + NSDatePicker + NSDatePickerCell + NSImageCell + NSImageView + NSMenu + NSMenuItem + NSPopUpButton + NSPopUpButtonCell + NSSecureTextField + NSSecureTextFieldCell + NSTabView + NSTabViewItem + NSTextField + NSTextFieldCell + NSView com.apple.InterfaceBuilder.CocoaPlugin @@ -34,12 +53,744 @@ 268 - {480, 272} + + + + 12 + {{13, 10}, {482, 597}} + + + + _NS:9 + + + EntryTab + + + 256 + + + + 268 + {{168, 497}, {190, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + LucidaGrande + 13 + 1044 + + _NS:9 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + + + + 268 + {{131, 500}, {32, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Title + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + NO + + + + 268 + {{168, 465}, {190, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 268 + {{96, 468}, {67, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Username + + _NS:1535 + + + + + NO + + + + 268 + {{98, 435}, {64, 16}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Password + + _NS:1535 + + + + + NO + + + + 268 + {{165, 331}, {132, 18}} + + + + _NS:9 + {750, 750} + YES + + -2080374784 + 268435456 + Password Expires + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{167, 433}, {191, 22}} + + + + _NS:9 + YES + + 342884416 + 272630848 + + + _NS:9 + + YES + + + + NSAllRomanInputSourcesLocaleIdentifier + + + NO + + + + 268 + {{168, 401}, {190, 22}} + + + + _NS:9 + YES + + 342884416 + 272630848 + + + _NS:9 + + YES + + + + NSAllRomanInputSourcesLocaleIdentifier + + + NO + + + + 268 + {{167, 303}, {104, 27}} + + + + _NS:9 + YES + + 71303168 + 0 + + -595929600 + + US/Pacific + + VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA + + + %Y-%m-%d %H:%M:%S %z + + + _NS:9 + + 0.0 + 224 + + 6 + System + controlBackgroundColor + + + + + NO + + + + 268 + {{52, 403}, {111, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Repeat Password + + _NS:1535 + + + + + NO + + + + 268 + {{61, 307}, {102, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Expiration Date + + _NS:1535 + + + + + NO + + + + 268 + {{166, 377}, {119, 18}} + + + + _NS:9 + YES + + -2080374784 + 268435456 + Show Password + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{273, 301}, {88, 26}} + + + + _NS:9 + YES + + -2076180416 + 2048 + + _NS:9 + + 109199360 + 129 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{164, 524}, {100, 26}} + + + + _NS:9 + YES + + -2076180416 + 2048 + + _NS:9 + + 109199360 + 129 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{132, 529}, {31, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Icon + + _NS:1535 + + + + + NO + + + + 268 + {{420, 301}, {29, 26}} + + + + _NS:1586 + YES + + -2080374784 + 134217728 + + + _NS:1586 + + 918831104 + 166 + + + 400 + 75 + + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {404, 205}} + + + + _NS:9 + {250, 750} + YES + + -1805647871 + 272629760 + + + _NS:9 + + YES + + + + NO + + + {{1, 1}, {440, 229}} + + + + _NS:11 + + + {{6, 54}, {442, 245}} + + + + _NS:9 + {0, 0} + + 67108864 + 0 + Notes + + LucidaGrande + 11 + 3100 + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{382, 10}, {69, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Save + + _NS:9 + + -2038284288 + 129 + + DQ + 200 + 25 + + NO + + + + 268 + {{300, 10}, {82, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Cancel + + _NS:9 + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + {{10, 33}, {462, 551}} + + + + _NS:11 + + Entry + + + + + AdvancedTab + + + 256 + + {{10, 33}, {462, 551}} + + _NS:28 + + Advanced + + + + + + + 0 + YES + YES + + + + + + {508, 621} - + NSView + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {54, 54} + + _NS:9 + YES + + 134217728 + 33554432 + _NS:9 + 0 + 0 + 2 + NO + + NO + YES + @@ -81,32 +832,1909 @@ 1 + + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 3 + 0 + + 3 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + + 3 + + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 6 + + + + + + 7 + + + + + 5 + 0 + + 6 + 1 + + 12 + + 1000 + + 6 + 24 + 3 + + + + 4 + 0 + + 4 + 1 + + 17 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 17 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 4 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 4 + 0 + + 4 + 1 + + 17 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 17 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 32 + + 1000 + + 9 + 40 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 9 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 3 + 0 + + 4 + 1 + + 10 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 3 + 0 + + 4 + 1 + + 10 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 3 + 0 + + 4 + 1 + + 10 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 9 + 40 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 6 + 1 + + 6 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 3 + 1 + + 3 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 1 + + 5 + 1 + + 20 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + 9 + + + + + 13 + + + + + 23 + + + + + + 7 + 0 + + 0 + 1 + + 190 + + 1000 + + 9 + 40 + 1 + + + + + + 24 + + + + + 30 + + + + + + + + 31 + + + + + 12 + + + + + 8 + + + + + 55 + + + + + 71 + + + + + + + + 72 + + + + + 73 + + + + + 75 + + + + + 85 + + + + + 89 + + + + + + + + 90 + + + + + 93 + + + + + 96 + + + + + + 8 + 0 + + 0 + 1 + + 16 + + 1000 + + 3 + 9 + 1 + + + + + + 97 + + + + + 103 + + + + + + 8 + 0 + + 0 + 1 + + 14 + + 1000 + + 9 + 40 + 1 + + + + + + 104 + + + + + 121 + + + + + + 7 + 0 + + 0 + 1 + + 191 + + 1000 + + 9 + 40 + 1 + + + + + + 122 + + + + + 126 + + + + + 130 + + + + + + + + 131 + + + + + 132 + + + + + 144 + + + + + 153 + + + + + 186 + + + + + + + + 187 + + + + + 195 + + + + + + + + 196 + + + + + 201 + + + + + 202 + + + + + + + + 203 + + + + + 94 + + + + + 199 + + + + + 56 + + + + + 124 + + + + + 219 + + + + + 223 + + + + + 224 + + + + + 225 + + + + + 226 + + + + + 188 + + + + + 237 + + + + + 239 + + + + + 242 + + + + + + 8 + 0 + + 0 + 1 + + 14 + + 1000 + + 9 + 40 + 1 + + + + + + 243 + + + + + 244 + + + + + 245 + + + + + 247 + + + + + 251 + + + + + 254 + + + + + 255 + + + + + 256 + + + + + 258 + + + + + + 7 + 0 + + 0 + 1 + + 82 + + 1000 + + 3 + 9 + 1 + + + + + + 259 + + + + + + + + 260 + + + + + + + + + + 261 + + + + + 262 + + + + + 263 + + + + + 265 + + + + + 267 + + + + + 269 + + + + + 270 + + + + + 271 + + + + + + + + 272 + + + + + 214 + + + + + 257 + + + + + 286 + + + + + + 7 + 0 + + 0 + 1 + + 94 + + 1000 + + 3 + 9 + 1 + + + + + + 287 + + + + + + + + 288 + + + + + + + + + + 289 + + + + + 290 + + + + + 291 + + + + + 292 + + + + + 293 + + + + + 294 + + + + + 295 + + + + + 297 + + + + + + + + 298 + + + + + 299 + + + + + 301 + + + + + 302 + + + + + + + + 303 + + + + + 312 + + + + + + 4 + 0 + + 4 + 1 + + 11 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 16 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 25 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 16 + + 1000 + + 8 + 29 + 3 + + + + + + 315 + + + + + 305 + + + + + 332 + + + + + + 8 + 0 + + 0 + 1 + + 205 + + 1000 + + 3 + 9 + 1 + + + + + + 333 + + + + + 334 + + + + + 335 + + + + + 339 + + + + + 344 + + + + + 345 + + + + + + + + 346 + + + + + 348 + + + + + 349 + + + + + 352 + + + + + + + + 353 + + + + + 354 + + + + + 355 + + + + + 360 + + + + + 362 + + + + + 363 + + + + + 366 + + + + + 367 + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin - 2 + 367 MPEntryEditController - NSViewController + MPViewController IBProjectSource ./Classes/MPEntryEditController.h + + MPViewController + NSViewController + + IBProjectSource + ./Classes/MPViewController.h + + + + NSLayoutConstraint + NSObject + + IBProjectSource + ./Classes/NSLayoutConstraint.h + + 0 @@ -117,6 +2745,11 @@ YES 3 + + {11, 11} + {10, 3} + {15, 15} + YES diff --git a/MacPass/EntryView.xib b/MacPass/EntryView.xib index ff6051d6..5c632594 100644 --- a/MacPass/EntryView.xib +++ b/MacPass/EntryView.xib @@ -11,12 +11,20 @@ 3084 + IBNSLayoutConstraint + NSButton + NSButtonCell NSCustomObject + NSCustomView + NSImageCell + NSImageView NSScrollView NSScroller + NSTableCellView NSTableColumn NSTableHeaderView NSTableView + NSTextField NSTextFieldCell @@ -36,262 +44,407 @@ NSApplication - + - 4364 + 268 - - - 2304 + + + 268 - - - 256 - {569, 506} - + + + 268 + + {{190, 5}, {122, 19}} + - - _NS:13 + + _NS:9 YES + + -2080374784 + 134217728 + Round Rect Button + + LucidaGrande + 12 + 16 + + _NS:9 + + -1232846848 + 164 + + + 400 + 75 + NO - YES - - - 256 - {569, 17} - - - - _NS:16 - + + + + 268 + + {{60, 5}, {122, 19}} + + + + _NS:9 + YES + + -2080374784 + 134217728 + Round Rect Button + + _NS:9 + + -1232846848 + 164 + + + 400 + 75 - - - -2147483392 - {{224, 0}, {16, 17}} - - _NS:19 - - - - 64 - 10 - 3.4028234663852886e+38 - - 75497536 - 2048 - - - LucidaGrande - 11 - 3100 - - - 6 - System - headerColor - - 3 - MQA - - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337641536 - 2048 - Text Cell - - LucidaGrande - 13 - 1044 - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - 3 - YES - YES - - - - 64 - 10 - 3.4028234663852886e+38 - - 75497536 - 2048 - - - - - - - 337641536 - 2048 - Text Cell - - - - - - 3 - YES - YES - - - - 432 - 10 - 3.4028234663852886e+38 - - 75497536 - 2048 - - - - - - - 337641536 - 2048 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA + NO + + + + 268 + {{17, 7}, {38, 17}} + + + + + 1 + + 1 + MSAxIDEAA - 17 - -692060160 - - - 4 - 15 - 0 - YES - 1 - 1 + _NS:1535 + YES + + 68157504 + 272630784 + Label + + LucidaGrande + 13 + 1044 + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + disabledControlTextColor + + 3 + MC4zMzMzMzMzMzMzAA + + + + NO - {{0, 17}, {569, 506}} - + {{0, 297}, {522, 30}} + - - _NS:11 - - - 4 + + YES + _NS:9 + MPGradientView - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _NS:58 - NO - - _doScroller: - 37 - 0.1947367936372757 - - - - -2147483392 - {{1, 119}, {223, 15}} - - - - _NS:60 - NO - 1 - - _doScroller: - 0.57142859697341919 - - - - 2304 + + + 4364 - + + + 2304 + + + + 256 + + {522, 280} + + + + _NS:13 + YES + NO + YES + + + 256 + {522, 17} + + + + _NS:16 + + + + + -2147483392 + {{224, 0}, {16, 17}} + + _NS:19 + + + + Group Column + 104.609375 + 40 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 337641536 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + Title Column + 137.22265625 + 40 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + Password Column + 85.1015625 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + URL Column + 183 + 10 + 3.4028234663852886e+38 + + 75497536 + 2048 + + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + 1455423488 + + + 4 + 15 + 0 + YES + 1 + 1 + + + {{0, 17}, {522, 280}} + + + + _NS:11 + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:58 + NO + + _doScroller: + 37 + 0.1947367936372757 + + + + -2147483392 + {{0, 245}, {359, 16}} + + + + _NS:60 + NO + 1 + + _doScroller: + 0.98898071625344353 + + + + 2304 + + + + {522, 17} + + + + _NS:15 + + + 4 + - {569, 17} - + {522, 297} + - - _NS:15 - - - 4 + + _NS:9 + 133680 + + + + + QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 - {569, 523} + {522, 327} - + _NS:9 - 133680 - - - - - QSAAAEEgAABBmAAAQZgAAA - 0.25 - 4 - 1 + NSView - - - view - - - - 85 - entryTable @@ -300,6 +453,193 @@ 111 + + + view + + + + 395 + + + + textField + + + 274 + + + + 266 + {105, 17} + + + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + + + + + NO + + + {{1, 1}, {105, 17}} + + + + + 272 + + + + imageView + + + 274 + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{3, 0}, {17, 17}} + + + _NS:11 + YES + + 134217728 + 33554432 + + NSImage + NSActionTemplate + + _NS:11 + 0 + 0 + 0 + NO + + NO + YES + + + + 266 + {{25, 0}, {112, 17}} + + + _NS:20 + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + _NS:20 + + + + + NO + + + {{109, 1}, {137, 17}} + + _NS:9 + + + + 302 + + + + textField + + + + 303 + + + + textField + + + 274 + + + + 266 + {183, 17} + + + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + + + + + NO + + + {{337, 1}, {183, 17}} + + + + + 424 + + + + textField + + + 274 + + + + 266 + {85, 17} + + + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + + + + + NO + + + {{249, 1}, {85, 17}} + + + + + 431 + @@ -328,58 +668,478 @@ Application - 54 - + 336 + - - - - + + + 3 + 0 + + 4 + 1 + + 0.0 + + 1000 + + 9 + 40 + 3 + + + + 3 + 0 + + 3 + 1 + + 30 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 4 + 0 + + 4 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + - 58 - - + 349 + + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 5 + 22 + 2 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 8 + 0 + + 0 + 1 + + 30 + + 1000 + + 9 + 40 + 1 + + + + + + - 57 - - + 357 + + - 56 - - + 370 + + + + + + + + 371 + + + + + 378 + + + + + 380 + + + + + + + + 381 + + + + + 385 + + + + + 386 + + + + + 387 + + + + + + + + 388 + + + + + 389 + + + + + 390 + + + + + 392 + + + + + 54 + + + + + + + + + + + 348 + + + + + 346 + + + + + 344 + + 55 - - + + + - 121 - + 117 + - + + - 122 - - + 118 + + + + + 269 + + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 5 + 22 + 2 + + + + 5 + 0 + + 5 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + + + + 270 + + + + + + + + 271 + + + + + 287 + + + + + 286 + + + + + 285 + + 119 + @@ -390,17 +1150,443 @@ - 117 - + 297 + - + + + 5 + 0 + + 5 + 1 + + 3 + + 1000 + + 9 + 40 + 3 + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 4 + 0 + + 4 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 3 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 5 + 22 + 2 + + + + + + + + 298 + + + + + 7 + 0 + + 0 + 1 + + 17 + + 1000 + + 9 + 40 + 1 + + + + + + + 301 + + + + + 312 + + + + + 299 + + + + + + + + 300 + + + + + 330 + + + + + 329 + + + + + 328 + + + + + 317 + + + + + 314 + + + + + 313 + + + + + 318 + + + + + 232 + + + + - 118 - - + 233 + + + + + 56 + + + + + 57 + + + + + 58 + + + + + 350 + + + + + 396 + + + + + 393 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + + + + + 420 + + + + + 421 + + + + + + 6 + 0 + + 6 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 5 + 22 + 2 + + + + + + 422 + + + + + + + + 423 + + + + + 425 + + + + + 426 + + + + + 427 + + + + + 428 + + + + + + 6 + 0 + + 6 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 5 + 22 + 2 + + + + 5 + 0 + + 5 + 1 + + 3 + + 1000 + + 8 + 29 + 3 + + + + + + 429 + + + + + + + + 430 + + + + + 432 + + + + + 433 + + + + + 434 + + @@ -409,14 +1595,148 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - NSSecureTextFieldCell - com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + StringCell + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + ImageCell + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + PasswordCell + NSSecureTextField + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -425,29 +1745,40 @@ - 231 + 434 MPEntryViewController MPViewController - - entryTable - NSTableView - - - entryTable - + + NSTableView + NSView + + + entryTable NSTableView - + + statusBar + NSView + + IBProjectSource ./Classes/MPEntryViewController.h + + MPGradientView + NSView + + IBProjectSource + ./Classes/MPGradientView.h + + MPViewController NSViewController @@ -456,12 +1787,24 @@ ./Classes/MPViewController.h + + NSLayoutConstraint + NSObject + + IBProjectSource + ./Classes/NSLayoutConstraint.h + + 0 IBCocoaFramework YES 3 + + NSActionTemplate + {15, 15} + YES diff --git a/MacPass/GeneralSettings.xib b/MacPass/GeneralSettings.xib index bdd96573..ad1d39ac 100644 --- a/MacPass/GeneralSettings.xib +++ b/MacPass/GeneralSettings.xib @@ -42,12 +42,23 @@ 268 + + + 268 + {{20, 20}, {250, 137}} + + + + _NS:9 + MPGradientView + 268 - {{146, 292}, {127, 26}} + {{146, 174}, {127, 26}} + _NS:9 {750, 751} YES @@ -125,7 +136,7 @@ 268 - {{17, 298}, {127, 17}} + {{17, 180}, {127, 17}} @@ -160,7 +171,7 @@ NO - {290, 336} + {290, 218} @@ -298,6 +309,70 @@ 40 3 + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 4 + 1 + + 20 + + 1000 + + 6 + 24 + 3 + 7 @@ -346,6 +421,7 @@ 40 3 + @@ -443,6 +519,31 @@ + + 143 + + + + + 148 + + + + + 151 + + + + + 152 + + + + + 154 + + + @@ -453,6 +554,10 @@ + + + + @@ -466,7 +571,13 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -483,7 +594,7 @@ - 142 + 154 @@ -506,6 +617,14 @@ ./Classes/MPGeneralSettingsController.h + + MPGradientView + NSView + + IBProjectSource + ./Classes/MPGradientView.h + + NSLayoutConstraint NSObject diff --git a/MacPass/MPEntryViewController.h b/MacPass/MPEntryViewController.h index f1f82eee..05f14ca0 100644 --- a/MacPass/MPEntryViewController.h +++ b/MacPass/MPEntryViewController.h @@ -8,12 +8,17 @@ #import "MPViewController.h" +APPKIT_EXTERN NSString *const MPEntryTableUserNameColumnIdentifier; +APPKIT_EXTERN NSString *const MPEntryTableTitleColumnIdentifier; +APPKIT_EXTERN NSString *const MPEntryTablePasswordColumnIdentifier; +APPKIT_EXTERN NSString *const MPEntryTableParentColumnIdentifier; + + @class KdbGroup; @class MPOutlineViewDelegate; -@interface MPEntryViewController : MPViewController +@interface MPEntryViewController : MPViewController -@property (nonatomic, assign) id outlineViewDelegate; @property (assign) KdbGroup *activeGroup; @property (readonly, retain) NSArrayController *entryArrayController; @property (nonatomic, retain) NSString *filter; diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index a6de3f43..f3c031da 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -10,17 +10,24 @@ #import "MPOutlineViewDelegate.h" #import "MPDatabaseController.h" #import "MPDatabaseDocument.h" +#import "MPIconHelper.h" #import "KdbGroup+MPAdditions.h" -NSString *const _MPUserNameColumnIdentifier = @"MPUserNameColumnIdentifier"; -NSString *const _MPTitleColumnIdentifier = @"MPTitleColumnIdentifier"; -NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; +NSString *const MPEntryTableUserNameColumnIdentifier = @"MPUserNameColumnIdentifier"; +NSString *const MPEntryTableTitleColumnIdentifier = @"MPTitleColumnIdentifier"; +NSString *const MPEntryTablePasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; +NSString *const MPEntryTableParentColumnIdentifier = @"MPParentColumnIdentifier"; + +NSString *const _MPTableImageCellView = @"ImageCell"; +NSString *const _MPTableStringCellView = @"StringCell"; +NSString *const _MPTAbleSecurCellView = @"PasswordCell"; @interface MPEntryViewController () @property (retain) NSArrayController *entryArrayController; @property (retain) NSArray *filteredEntries; @property (assign) IBOutlet NSTableView *entryTable; +@property (assign) IBOutlet NSView *statusBar; - (BOOL)hasActiveFilter; @@ -31,6 +38,7 @@ NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; @implementation MPEntryViewController + - (id)init { return [[MPEntryViewController alloc] initWithNibName:@"EntryView" bundle:nil]; } @@ -48,23 +56,68 @@ NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; } - (void)didLoadView { - NSTableColumn *nameColumn = [self.entryTable tableColumns][0]; - NSTableColumn *userNameColumn = [self.entryTable tableColumns][1]; - NSTableColumn *passwordColumn = [self.entryTable tableColumns][2]; - [nameColumn setIdentifier:_MPTitleColumnIdentifier]; - [userNameColumn setIdentifier:_MPUserNameColumnIdentifier]; - [passwordColumn setIdentifier:_MPPasswordColumnIdentifier]; + [self.entryTable setDelegate:self]; + + NSTableColumn *parentColumn = [self.entryTable tableColumns][0]; + NSTableColumn *titleColumn = [self.entryTable tableColumns][1]; + NSTableColumn *userNameColumn = [self.entryTable tableColumns][2]; + NSTableColumn *passwordColumn = [self.entryTable tableColumns][3]; - [[nameColumn headerCell] setStringValue:@"Title"]; + [parentColumn setIdentifier:MPEntryTableParentColumnIdentifier]; + [titleColumn setIdentifier:MPEntryTableTitleColumnIdentifier]; + [userNameColumn setIdentifier:MPEntryTableUserNameColumnIdentifier]; + [passwordColumn setIdentifier:MPEntryTablePasswordColumnIdentifier]; + + [[parentColumn headerCell] setStringValue:@"Group"]; + [[titleColumn headerCell] setStringValue:@"Title"]; [[userNameColumn headerCell] setStringValue:@"Username"]; [[passwordColumn headerCell] setStringValue:@"Password"]; - [nameColumn bind:NSValueBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects.title" options:nil]; - [userNameColumn bind:NSValueBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects.username" options:nil]; - [passwordColumn bind:NSValueBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects.password" options:nil]; + [self.entryTable bind:NSContentBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects" options:nil]; + + [parentColumn setHidden:YES]; } +#pragma mark NSTableViewDelgate + +- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + KdbEntry *entry = [self.entryArrayController arrangedObjects][row]; + + const BOOL isTitleColumn = [[tableColumn identifier] isEqualToString:MPEntryTableTitleColumnIdentifier]; + const BOOL isGroupColumn = [[tableColumn identifier] isEqualToString:MPEntryTableParentColumnIdentifier]; + const BOOL isPasswordColum = [[tableColumn identifier] isEqualToString:MPEntryTablePasswordColumnIdentifier]; + const BOOL isUsernameColumn = [[tableColumn identifier] isEqualToString:MPEntryTableUserNameColumnIdentifier]; + + NSTableCellView *view = nil; + if(isTitleColumn || isGroupColumn) { + view = [tableView makeViewWithIdentifier:_MPTableImageCellView owner:self]; + [[view imageView] setImage:[MPIconHelper randomIcon]]; + if( isTitleColumn ) { + [[view textField] setStringValue:entry.title]; + } + else { + [[view textField] setStringValue:entry.parent.name]; + } + return view; + } + + if( isPasswordColum ) { + view = [tableView makeViewWithIdentifier:_MPTAbleSecurCellView owner:self]; + [[view textField] setStringValue:entry.password]; + return view; + } + + if( isUsernameColumn ) { + view = [tableView makeViewWithIdentifier:_MPTableStringCellView owner:self]; + [[view textField] setStringValue:entry.username]; + return view; + } + + return view; +} + +#pragma mark Notifications - (void)didChangeGroupSelectionInOutlineView:(NSNotification *)notification { /* If we have an active search, do not mess with the content @@ -72,6 +125,9 @@ NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; if([self hasActiveFilter]) { return; } + else { + [[self.entryTable tableColumnWithIdentifier:MPEntryTableParentColumnIdentifier] setHidden:YES]; + } MPOutlineViewDelegate *delegate = [notification object]; KdbGroup *group = delegate.selectedGroup; if(group) { @@ -82,6 +138,8 @@ NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; } } +#pragma mark Filtering + - (BOOL)hasActiveFilter { return ([self.filter length] > 0); } @@ -97,14 +155,24 @@ NSString *const _MPPasswordColumnIdentifier = @"MPPasswordColumnIdentifier"; - (void)updateFilter { MPDatabaseDocument *openDatabase = [MPDatabaseController defaultController].database; if(openDatabase) { - if([self.filter isEqualToString:@"*"]) { - self.filteredEntries = [openDatabase.root childEntries]; - } - else { - NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF.title CONTAINS[cd] %@", self.filter]; - self.filteredEntries = [[openDatabase.root childEntries] filteredArrayUsingPredicate:filterPredicate]; - } - [self.entryArrayController setContent:self.filteredEntries]; + + /* + Search in the background + */ + dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + dispatch_async(backgroundQueue, ^{ + if([self.filter length] == 0) { + self.filteredEntries = [openDatabase.root childEntries]; + } + else { + NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF.title CONTAINS[cd] %@", self.filter]; + self.filteredEntries = [[openDatabase.root childEntries] filteredArrayUsingPredicate:filterPredicate]; + } + dispatch_async(dispatch_get_main_queue(), ^{ + [self.entryArrayController setContent:self.filteredEntries]; + [[self.entryTable tableColumnWithIdentifier:MPEntryTableParentColumnIdentifier] setHidden:NO]; + }); + }); } else { [self.entryArrayController setContent:nil]; diff --git a/MacPass/MPGradientView.h b/MacPass/MPGradientView.h index 93082678..849d5f6c 100644 --- a/MacPass/MPGradientView.h +++ b/MacPass/MPGradientView.h @@ -10,4 +10,6 @@ @interface MPGradientView : NSView +- (id)initWithFrame:(NSRect)frame activeGradient:(NSGradient *)activeGradient inactiveGradient:(NSGradient *)inactiveGradient; + @end diff --git a/MacPass/MPGradientView.m b/MacPass/MPGradientView.m index 880f2b26..b3f3aad4 100644 --- a/MacPass/MPGradientView.m +++ b/MacPass/MPGradientView.m @@ -8,21 +8,70 @@ #import "MPGradientView.h" +@interface MPGradientView () + +@property (assign, nonatomic) BOOL isRenderedActive; +@property (retain) NSGradient *activeGradient; +@property (retain) NSGradient *inactiveGradient; + +- (void)refreshActiveState; + +@end + @implementation MPGradientView -- (id)initWithFrame:(NSRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - // Initialization code here. - } - - return self; + +- (id)initWithFrame:(NSRect)frameRect { + NSColor *activeTop = [NSColor colorWithCalibratedWhite:0.85 alpha:1]; + NSColor *activeBottom = [NSColor colorWithCalibratedWhite:0.7 alpha:1]; + NSColor *inactiveTop = [NSColor colorWithCalibratedWhite:0.9 alpha:1]; + NSColor *inactiveBottom = [NSColor colorWithCalibratedWhite:0.85 alpha:1]; + NSGradient *activeGradient = [[[NSGradient alloc] initWithColors:@[ activeBottom, activeTop ]] autorelease]; + NSGradient *inactiveGradient = [[[NSGradient alloc] initWithColors:@[ inactiveBottom, inactiveTop ]] autorelease]; + return [self initWithFrame:frameRect activeGradient:activeGradient inactiveGradient:inactiveGradient]; } -- (void)drawRect:(NSRect)dirtyRect -{ - // Drawing code here. +- (id)initWithFrame:(NSRect)frame activeGradient:(NSGradient *)activeGradient inactiveGradient:(NSGradient *)inactiveGradient { + self = [super initWithFrame:frame]; + if(self) { + _activeGradient = [activeGradient retain]; + _inactiveGradient = [inactiveGradient retain]; + } + return self; +} + + +- (void)drawRect:(NSRect)dirtyRect { + NSGradient *gradient = self.isRenderedActive ? self.activeGradient : self.inactiveGradient; + [gradient drawInRect:dirtyRect angle:90]; +} + +- (void)_registerWindow:(NSWindow *)newWindow { + if([self window]) { + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowDidBecomeKeyNotification object:[self window]]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowDidResignKeyNotification object:[self window]]; + } + if(newWindow) { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshActiveState) name:NSWindowDidBecomeKeyNotification object:newWindow]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshActiveState) name:NSWindowDidResignKeyNotification object:newWindow]; + } + +} + +- (void)viewWillMoveToWindow:(NSWindow *)newWindow { + [self _registerWindow:newWindow]; + [super viewWillMoveToWindow:newWindow]; +} + +- (void)refreshActiveState { + self.isRenderedActive = [[self window] isKeyWindow]; +} + +- (void)setIsRenderedActive:(BOOL)isRenderedActive { + if(_isRenderedActive != isRenderedActive) { + _isRenderedActive = isRenderedActive; + [self setNeedsDisplay:YES]; + } } @end diff --git a/MacPass/MPIconHelper.h b/MacPass/MPIconHelper.h index 97e57d68..ac52aa27 100644 --- a/MacPass/MPIconHelper.h +++ b/MacPass/MPIconHelper.h @@ -24,10 +24,20 @@ typedef enum { @interface MPIconHelper : NSObject +/* + @param type Icon identifier typ MPIconTyp + @returns Icon for given identifier + */ + (NSImage *)icon:(MPIconType)type; /* Available Icons, Use the MPDatabaseIconType to access a individual icon; + @returns all availble Icons */ + (NSDictionary *)availableIcons; +/* + @returns a random Icon image + */ ++ (NSImage *)randomIcon; + @end diff --git a/MacPass/MPIconHelper.m b/MacPass/MPIconHelper.m index 67cf97ad..2399833b 100644 --- a/MacPass/MPIconHelper.m +++ b/MacPass/MPIconHelper.m @@ -10,7 +10,6 @@ @implementation MPIconHelper -# pragma mark Icon accessors + (NSImage *)icon:(MPIconType)type { NSDictionary *icons = [MPIconHelper availableIcons]; NSString *imageName = icons[@(type)]; @@ -33,4 +32,15 @@ return imageNames; } ++ (NSImage *)randomIcon { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + srandom([[NSDate date] timeIntervalSince1970]); + }); + + NSArray *types = [[MPIconHelper availableIcons] allKeys]; + NSUInteger randomIndex = random() % [types count]; + return [MPIconHelper icon:(MPIconType)randomIndex]; +} + @end diff --git a/MacPass/MacPass-Info.plist b/MacPass/MacPass-Info.plist index 90f19bba..14e8a0a0 100644 --- a/MacPass/MacPass-Info.plist +++ b/MacPass/MacPass-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - F7 + 15D LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright