From cb6326480ea73aec9e37fac37a20e50d6a2ab9f8 Mon Sep 17 00:00:00 2001 From: michael starke Date: Tue, 5 Mar 2013 01:56:19 +0100 Subject: [PATCH] added inspector to split views. Rough setup, nothing working right now --- MacPass.xcodeproj/project.pbxproj | 20 +- MacPass/EntryEditView.xib | 3432 ----------------------- MacPass/InspectorTabView.xib | 128 + MacPass/MPEntryEditController.h | 18 - MacPass/MPEntryEditController.m | 48 - MacPass/MPEntryViewController.h | 2 +- MacPass/MPEntryViewController.m | 9 + MacPass/MPInspectorTabViewController.h | 13 + MacPass/MPInspectorTabViewController.m | 29 + MacPass/MPMainWindowController.h | 1 + MacPass/MPMainWindowController.m | 84 +- MacPass/MPMainWindowSplitViewDelegate.h | 12 +- MacPass/MPMainWindowSplitViewDelegate.m | 48 +- MacPass/MPToolbarDelegate.m | 9 +- MacPass/MacPass-Info.plist | 2 +- MacPass/MainWindow.xib | 41 +- MacPass/OverlayWindow.xib | 6 +- 17 files changed, 328 insertions(+), 3574 deletions(-) delete mode 100644 MacPass/EntryEditView.xib create mode 100644 MacPass/InspectorTabView.xib delete mode 100644 MacPass/MPEntryEditController.h delete mode 100644 MacPass/MPEntryEditController.m create mode 100644 MacPass/MPInspectorTabViewController.h create mode 100644 MacPass/MPInspectorTabViewController.m diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 1d19c8c0..5c4db135 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -69,6 +69,8 @@ 4C6B0E8C16C9B99B00A9ED23 /* PasswordInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C6B0E8B16C9B99B00A9ED23 /* PasswordInputView.xib */; }; 4C6DA0F916D81B8A0011224B /* MPPathBarItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6DA0F816D81B8A0011224B /* MPPathBarItemView.m */; }; 4C75CE3C16CB128700F61A4D /* MPDatabaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CE3B16CB128700F61A4D /* MPDatabaseController.m */; }; + 4C77547516E55FE800970E02 /* MPInspectorTabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77547416E55FE800970E02 /* MPInspectorTabViewController.m */; }; + 4C77547716E55FFC00970E02 /* InspectorTabView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77547616E55FFC00970E02 /* InspectorTabView.xib */; }; 4C77E36715B84A240093A587 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; }; 4C77E37115B84A240093A587 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E36F15B84A240093A587 /* InfoPlist.strings */; }; 4C77E37315B84A240093A587 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37215B84A240093A587 /* main.m */; }; @@ -104,8 +106,6 @@ 4CE06D7D16DEF3FE00840E3A /* MPButtonBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE06D7C16DEF3FE00840E3A /* MPButtonBar.m */; }; 4CE8246F16E2E93400573141 /* MPOverlayWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */; }; 4CE8247516E2F2B900573141 /* MPOverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8247416E2F2B900573141 /* MPOverlayView.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 */ @@ -223,6 +223,9 @@ 4C6DA0F816D81B8A0011224B /* MPPathBarItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPathBarItemView.m; 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 = ""; }; + 4C77547316E55FE800970E02 /* MPInspectorTabViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPInspectorTabViewController.h; sourceTree = ""; }; + 4C77547416E55FE800970E02 /* MPInspectorTabViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPInspectorTabViewController.m; sourceTree = ""; }; + 4C77547616E55FFC00970E02 /* InspectorTabView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = InspectorTabView.xib; sourceTree = ""; }; 4C77E36215B84A240093A587 /* MacPass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MacPass.app; sourceTree = BUILT_PRODUCTS_DIR; }; 4C77E36615B84A240093A587 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 4C77E36915B84A240093A587 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; @@ -286,9 +289,6 @@ 4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayWindowController.m; sourceTree = ""; }; 4CE8247316E2F2B900573141 /* MPOverlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOverlayView.h; sourceTree = ""; }; 4CE8247416E2F2B900573141 /* MPOverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayView.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 */ @@ -310,7 +310,6 @@ isa = PBXGroup; children = ( 4C25D58616CF0FAA00F6806C /* EntryView.xib */, - 4CF5D49516D5B6E900CB78BD /* EntryEditView.xib */, 4CA0B2EF15BCADC800654E32 /* GeneralSettings.xib */, 4C77E37B15B84A240093A587 /* MainMenu.xib */, 4C61EA0416D2FFE200AC519E /* OutlineView.xib */, @@ -319,6 +318,7 @@ 4C25D58416CF0F8800F6806C /* WelcomeView.xib */, 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */, 4C4E1DC616DC6536007B9B47 /* PathBar.xib */, + 4C77547616E55FFC00970E02 /* InspectorTabView.xib */, 4C69A73816D589DF00EC1B1A /* MPGradientView.h */, 4C69A73916D589DF00EC1B1A /* MPGradientView.m */, 4CE8247316E2F2B900573141 /* MPOverlayView.h */, @@ -576,8 +576,8 @@ 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */, 4C61EA0116D2FD0800AC519E /* MPOutlineViewController.h */, 4C61EA0216D2FD0800AC519E /* MPOutlineViewController.m */, - 4CF5D49316D5B6E900CB78BD /* MPEntryEditController.h */, - 4CF5D49416D5B6E900CB78BD /* MPEntryEditController.m */, + 4C77547316E55FE800970E02 /* MPInspectorTabViewController.h */, + 4C77547416E55FE800970E02 /* MPInspectorTabViewController.m */, ); name = "View Controller"; sourceTree = ""; @@ -776,10 +776,10 @@ 4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */, 4C61EA0516D2FFE200AC519E /* OutlineView.xib in Resources */, 4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */, - 4CF5D49716D5B6E900CB78BD /* EntryEditView.xib in Resources */, 4C3FFD9E16DAF60600DF9186 /* FilterBar.xib in Resources */, 4C4E1DC716DC6536007B9B47 /* PathBar.xib in Resources */, 4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */, + 4C77547716E55FFC00970E02 /* InspectorTabView.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -865,7 +865,6 @@ 4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPAdditions.m in Sources */, 4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */, 4C69A73A16D589DF00EC1B1A /* MPGradientView.m in Sources */, - 4CF5D49616D5B6E900CB78BD /* MPEntryEditController.m in Sources */, 4C16854416D704980027ECBC /* MPPathBar.m in Sources */, 4C6DA0F916D81B8A0011224B /* MPPathBarItemView.m in Sources */, 4C920E2A16DCDFA00083839B /* MPLoggerProxy.m in Sources */, @@ -876,6 +875,7 @@ 4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */, 4CE8246F16E2E93400573141 /* MPOverlayWindowController.m in Sources */, 4CE8247516E2F2B900573141 /* MPOverlayView.m in Sources */, + 4C77547516E55FE800970E02 /* MPInspectorTabViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MacPass/EntryEditView.xib b/MacPass/EntryEditView.xib deleted file mode 100644 index 152df865..00000000 --- a/MacPass/EntryEditView.xib +++ /dev/null @@ -1,3432 +0,0 @@ - - - - 1070 - 12C60 - 3084 - 1187.34 - 625.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 3084 - - - IBNSLayoutConstraint - NSBox - NSButton - NSButtonCell - NSCustomObject - NSCustomView - NSDatePicker - NSDatePickerCell - NSMenu - NSMenuItem - NSPopUpButton - NSPopUpButtonCell - NSScrollView - NSScroller - NSSecureTextField - NSSecureTextFieldCell - NSTabView - NSTabViewItem - NSTextField - NSTextFieldCell - NSTextView - NSView - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - MPEntryEditController - - - FirstResponder - - - NSApplication - - - - 268 - - - - 12 - {{13, 10}, {411, 461}} - - - - _NS:9 - - - EntryTab - - - 256 - - - - 268 - {{133, 361}, {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 - {{96, 364}, {32, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Title - - _NS:1535 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - NO - - - - 268 - {{133, 329}, {190, 22}} - - - - _NS:9 - YES - - -1804599231 - 272630784 - - - _NS:9 - - YES - - - - NO - - - - 268 - {{61, 332}, {67, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Username - - _NS:1535 - - - - - NO - - - - 268 - {{63, 299}, {64, 16}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Password - - _NS:1535 - - - - - NO - - - - 268 - {{130, 195}, {132, 18}} - - - - _NS:9 - {750, 750} - YES - - -2080374784 - 268435456 - Password Expires - - _NS:9 - - 1211912448 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - NO - - - - 268 - {{132, 297}, {191, 22}} - - - - _NS:9 - YES - - 342884416 - 272630848 - - - _NS:9 - - YES - - - - NSAllRomanInputSourcesLocaleIdentifier - - - NO - - - - 268 - {{133, 265}, {190, 22}} - - - - _NS:9 - YES - - 342884416 - 272630848 - - - _NS:9 - - YES - - - - NSAllRomanInputSourcesLocaleIdentifier - - - NO - - - - 268 - {{132, 167}, {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 - {{17, 267}, {111, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Repeat Password - - _NS:1535 - - - - - NO - - - - 268 - {{26, 170}, {102, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Expiration Date - - _NS:1535 - - - - - NO - - - - 268 - {{131, 241}, {119, 18}} - - - - _NS:9 - YES - - -2080374784 - 268435456 - Show Password - - _NS:9 - - 1211912448 - 2 - - - - - 200 - 25 - - NO - - - - 268 - {{238, 165}, {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 - {{129, 388}, {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 - {{97, 393}, {31, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Icon - - _NS:1535 - - - - - NO - - - - 268 - {{349, 163}, {29, 26}} - - - - _NS:1586 - YES - - -2080374784 - 134217728 - - - _NS:1586 - - 918831104 - 166 - - - 400 - 75 - - NO - - - - 12 - - - - 274 - - - - 256 - - - - 2304 - - - - 2322 - - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - {333, 62} - - - - _NS:13 - - - - - - - - - - - - 38 - - - - 333 - 1 - - - 1073745667 - 0 - - - - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - - - 2 - YES - YES - - 2 - - 6 - {592, 10000000} - {331, 62} - - - br - mr - bs - ksf - ee_TG - ms - kam_KE - mt - ha - es_HN - en_BM - ml_IN - ro_MD - kab_DZ - he - es_CO - my - bas - vai_Latn_LR - es_PA - az_Latn - mer - en_NZ - xog_UG - sg - fr_GP - sr_Cyrl_BA - hi - fil_PH - lt_LT - si - mgh_MZ - en_MT - mfe - luo_KE - it_CH - si_LK - sk - teo - uz_Cyrl_UZ - sl - rm_CH - az_Cyrl_AZ - fr_GQ - kde - sn - cgg_UG - mas_TZ - fr_RW - es_SV - so - swc_CD - en_MU - sq - hr - yav_CM - br_FR - sr - en_PH - ca - hu - mk_MK - fr_TD - nb - sv - kln_KE - sw - nd - el_GR - fo_FO - hy - ne - el_CY - es_CR - sr_Latn - pa_Arab_PK - ar_YE - seh - ja_JP - ur_PK - pa_Guru - nl_SX - gl_ES - zh_Hant_HK - ar_EG - nl - th_TH - es_PE - fr_KM - ln_CD - nn - dua - kk_Cyrl_KZ - kea - lv_LV - kln - tzm_Latn - yo - gsw_CH - ha_Latn_GH - is_IS - pt_BR - dua_CM - cs - en_PK - fa_IR - zh_Hans_SG - luo - ta - fr_TG - kde_TZ - mr_IN - ar_SA - ka_GE - mfe_MU - id - fr_LU - de_LU - ru_MD - cy - mgh - zh_Hans_HK - te - bg_BG - shi_Latn - ig - vai - ses - ii - es_BO - th - ko_KR - ti - it_IT - shi_Latn_MA - pt_MZ - ff_SN - brx - haw - ln_CG - zh_Hans - so_KE - bn_IN - en_UM - to - id_ID - agq_CM - uz_Cyrl - en_GU - es_EC - en_US_POSIX - is - sr_Latn_BA - luy - tr - en_NA - it - pt_AO - da - nl_CW - bo_IN - vun_TZ - ar_SD - uz_Latn_UZ - az_Latn_AZ - de - es_GQ - fr_FR - de_DE - ta_IN - rof_TZ - nmg_CM - ar_LY - en_BW - asa - zh - ewo_CM - rn_BI - fr_NE - nus_SD - es_MX - mua_CM - bem_ZM - ha_Latn - zh_Hans_CN - bn_BD - pt_GW - om - jmc - de_AT - kk_Cyrl - sw_TZ - ar_OM - et_EE - or - da_DK - ro_RO - zh_Hant - bm_ML - ja - lu_CD - twq - fr_CA - naq - zu - en_IE - ar_MA - es_GT - en_GY - uz_Arab_AF - en_AS - bs_BA - am_ET - ar_TN - swc - ewo - haw_US - ar_JO - fa_AF - uz_Latn - en_BZ - nyn_UG - ebu_KE - te_IN - cy_GB - uk - nyn - en_JM - dyo_SN - en_US - fil - ar_KW - af_ZA - en_CA - fr_DJ - ti_ER - ig_NG - en_AU - ur - fr_MC - pt_PT - pa - es_419 - fr_CD - en_SG - bo_CN - kn_IN - sr_Cyrl_RS - lg_UG - gu_IN - ee - nd_ZW - bem - uz - sw_KE - sq_AL - hr_HR - mas_KE - el - ti_ET - es_AR - pl - en - eo - shi - kok - fr_CF - fr_RE - mas - rof - ru_UA - yo_NG - dav_KE - ksb_TZ - gv_GB - pa_Arab - es - teo_UG - ps - es_PR - fr_MF - et - vai_Vaii_LR - pt - eu - ka - rwk_TZ - nb_NO - fr_CG - cgg - zh_Hant_TW - ses_ML - lag - sr_Cyrl_ME - brx_IN - en_ZW - ak_GH - vi_VN - sv_FI - to_TO - fr_MG - fr_GA - fr_CH - de_CH - es_US - ki - my_MM - twq_NE - vi - ar_QA - ga_IE - rwk - bez - ee_GH - fr_YT - kk - as_IN - ca_ES - kl - fr_SN - ne_IN - km - ms_BN - ar_LB - kn - ta_LK - ur_IN - fr_CI - ko - ha_Latn_NG - sg_CF - om_ET - zh_Hant_MO - uk_UA - fa - mt_MT - ki_KE - luy_KE - kw - pa_Guru_IN - en_IN - kab - ar_IQ - vai_Vaii - ff - en_TT - bez_TZ - es_NI - ar_001 - nl_AW - uz_Arab - ne_NP - fi - en_BB - khq - gsw - zh_Hans_MO - en_MH - hu_HU - en_GB - fr_BE - de_BE - sbp_TZ - saq - be_BY - sl_SI - sr_Latn_RS - fo - fr - xog - fr_BF - tzm - sk_SK - fr_ML - he_IL - ha_Latn_NE - ru_RU - fr_GF - fr_CM - ksf_CM - teo_KE - seh_MZ - kl_GL - bas_CM - fi_FI - kam - es_ES - af - asa_TZ - cs_CZ - tr_TR - es_PY - tzm_Latn_MA - lg - ebu - en_HK - nl_NL - en_BE - ms_MY - es_UY - ar_BH - kw_GB - ak - chr - dav - lag_TZ - am - so_DJ - shi_Tfng_MA - dje - dyo - ln - sr_Latn_ME - sn_ZW - or_IN - ar - as - fr_BI - jmc_TZ - chr_US - sbp - eu_ES - saq_KE - vun - lt - naq_NA - ga - af_NA - lu - nmg - kea_CV - es_DO - lv - kok_IN - de_LI - fr_BJ - az - guz_KE - rw_RW - mg_MG - km_KH - pt_ST - vai_Latn - gl - ar_AE - shi_Tfng - fr_MQ - rm - sv_SE - rn - az_Cyrl - ro - so_ET - en_ZA - ii_CN - fr_BL - hi_IN - agq - gu - mer_KE - nn_NO - gv - ru - yav - ar_DZ - ar_SY - en_MP - nl_BE - rw - be - dje_NE - en_VI - es_CL - mua - bg - mg - hy_AM - nus - zu_ZA - guz - ksb - mk - es_VE - ml - bm - khq_ML - bn - ps_AF - so_SO - sr_Cyrl - pl_PL - fr_GN - bo - om_KE - - - - {{1, 1}, {331, 62}} - - - - _NS:11 - - - - {4, 5} - - 79691776 - - - - - - file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff - - - - - 3 - MCAwAA - - - - 4 - - - - 256 - {{316, 1}, {16, 62}} - - - - _NS:83 - NO - - _doScroller: - 0.9920948616600791 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - - _NS:33 - YES - NO - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{18, 14}, {333, 64}} - - - - _NS:9 - 133266 - - - - 0.25 - 4 - 1 - - - {{1, 1}, {369, 88}} - - - - _NS:11 - - - {{6, 54}, {371, 104}} - - - - _NS:9 - {250, 250} - {0, 0} - - 67108864 - 0 - Notes - - LucidaGrande - 11 - 3100 - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{311, 10}, {69, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - Save - - _NS:9 - - -2038284288 - 129 - - DQ - 200 - 25 - - NO - - - - 268 - {{229, 10}, {82, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - Cancel - - _NS:9 - - -2038284288 - 129 - - Gw - 200 - 25 - - NO - - - {{10, 33}, {391, 415}} - - - - _NS:11 - - Entry - - - - - AdvancedTab - - - 256 - - {{10, 33}, {391, 415}} - - _NS:28 - - Advanced - - - - - - - 0 - YES - YES - - - - - - {437, 485} - - - - NSView - - - - - - - view - - - - 2 - - - - cancelButton - - - - 397 - - - - save: - - - - 398 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 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 - - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - - 9 - 40 - 2 - - - - 6 - 0 - - 6 - 1 - - 17 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 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 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 9 - 40 - 3 - - - - 5 - 0 - - 5 - 1 - - 9 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 4 - 1 - - 32 - - 1000 - - 9 - 40 - 3 - - - - 9 - 0 - - 9 - 1 - - 0.0 - - 1000 - - 9 - 40 - 2 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 9 - 40 - 2 - - - - 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 - - - - 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 - - - - 3 - 0 - - 3 - 1 - - 3 - - 1000 - - 9 - 40 - 3 - - - - 5 - 0 - - 5 - 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 - - - - - 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 - - - - 8 - 1 - - 0 - 1 - - 100 - - 1000 - - 9 - 40 - 1 - - - - - - - 315 - - - - - 305 - - - - - 345 - - - - - - - - 346 - - - - - 348 - - - - - 349 - - - - - 352 - - - - - - - - 353 - - - - - 354 - - - - - 355 - - - - - 363 - - - - - 368 - - - - - 371 - - - - - 372 - - - - - 374 - - - - - 376 - - - - - 380 - - - - - - - - - - 381 - - - - - 382 - - - - - 383 - - - - - 384 - - - - - 389 - - - - - 391 - - - - - 392 - - - - - 393 - - - - - 270 - - - - - 269 - - - - - - - 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 - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 398 - - - - - MPEntryEditController - MPViewController - - save: - id - - - save: - - save: - id - - - - cancelButton - NSButton - - - cancelButton - - cancelButton - NSButton - - - - IBProjectSource - ./Classes/MPEntryEditController.h - - - - MPViewController - NSViewController - - IBProjectSource - ./Classes/MPViewController.h - - - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {11, 11} - {10, 3} - {15, 15} - - YES - - diff --git a/MacPass/InspectorTabView.xib b/MacPass/InspectorTabView.xib new file mode 100644 index 00000000..75426a33 --- /dev/null +++ b/MacPass/InspectorTabView.xib @@ -0,0 +1,128 @@ + + + + 1080 + 12C3103 + 3084 + 1187.34 + 625.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + NSCustomObject + NSCustomView + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + MPInspectorTabViewController + + + FirstResponder + + + NSApplication + + + + 268 + + {289, 504} + + + + NSView + + + + + + + view + + + + 10 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 20 + + + + + MPInspectorTabViewController + MPViewController + + IBProjectSource + ./Classes/MPInspectorTabViewController.h + + + + MPViewController + NSViewController + + IBProjectSource + ./Classes/MPViewController.h + + + + + 0 + IBCocoaFramework + YES + 3 + YES + + diff --git a/MacPass/MPEntryEditController.h b/MacPass/MPEntryEditController.h deleted file mode 100644 index e44d88de..00000000 --- a/MacPass/MPEntryEditController.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// MPEntryEditController.h -// MacPass -// -// Created by michael starke on 21.02.13. -// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved. -// - -#import "MPViewController.h" -@class KdbNode; - -@interface MPEntryEditController : MPViewController - -@property (retain) id selectedItem; - -- (IBAction)save:(id)sender; - -@end diff --git a/MacPass/MPEntryEditController.m b/MacPass/MPEntryEditController.m deleted file mode 100644 index 176484ba..00000000 --- a/MacPass/MPEntryEditController.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// MPEntryEditController.m -// MacPass -// -// Created by michael starke on 21.02.13. -// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved. -// - -#import "MPEntryEditController.h" -#import "MPMainWindowController.h" - -@interface MPEntryEditController () - -@property (assign) IBOutlet NSButton *cancelButton; - -@end - -@implementation MPEntryEditController - -- (id)init { - return [self initWithNibName:@"EntryEditView" bundle:nil]; -} - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Initialization code here. - } - return self; -} - -- (void)dealloc { - self.selectedItem = nil; - [super dealloc]; -} - -- (NSResponder *)reconmendedFirstResponder { - return self.cancelButton; -} - -#pragma mark Actions - -- (IBAction)save:(id)sender { - MPMainWindowController *controller = [[self.view window] windowController]; - [controller showEntries]; -} - -@end diff --git a/MacPass/MPEntryViewController.h b/MacPass/MPEntryViewController.h index 37bfa331..9fc8c5f8 100644 --- a/MacPass/MPEntryViewController.h +++ b/MacPass/MPEntryViewController.h @@ -38,6 +38,6 @@ typedef enum { - (void)copyPassword:(id)sender; //- (void)copyURL:(id)sender; //- (void)createEntry:(id)sender; -//- (void)deleteEntry:(id)sender; +- (void)deleteEntry:(id)sender; @end diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index f231a425..56e54280 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -413,6 +413,15 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; [[MPOverlayWindowController sharedController] displayOverlayImage:image label:lable atView:self.view]; } +- (void)deleteEntry:(id)sender { + KdbEntry *selectedEntry = [self _selectedEntry]; + if(!selectedEntry) { + return; // no entry selected + } + //[[selectedEntry parent] removeEntry:selectedEntry]; + [self.entryArrayController removeObject:selectedEntry]; +} + - (void)_toggleFilterSpace:(id)sender { NSButton *button = sender; NSNumber *value = self.filterButtonToMode[[button identifier]]; diff --git a/MacPass/MPInspectorTabViewController.h b/MacPass/MPInspectorTabViewController.h new file mode 100644 index 00000000..352685cf --- /dev/null +++ b/MacPass/MPInspectorTabViewController.h @@ -0,0 +1,13 @@ +// +// MPInspectorTabViewController.h +// MacPass +// +// Created by Michael Starke on 05.03.13. +// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved. +// + +#import "MPViewController.h" + +@interface MPInspectorTabViewController : MPViewController + +@end diff --git a/MacPass/MPInspectorTabViewController.m b/MacPass/MPInspectorTabViewController.m new file mode 100644 index 00000000..17c1455a --- /dev/null +++ b/MacPass/MPInspectorTabViewController.m @@ -0,0 +1,29 @@ +// +// MPInspectorTabViewController.m +// MacPass +// +// Created by Michael Starke on 05.03.13. +// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved. +// + +#import "MPInspectorTabViewController.h" + +@interface MPInspectorTabViewController () + +@end + +@implementation MPInspectorTabViewController + +- (id)init { + return [[MPInspectorTabViewController alloc] initWithNibName:@"InspectorTabView" bundle:nil]; +} + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + + } + return self; +} + +@end diff --git a/MacPass/MPMainWindowController.h b/MacPass/MPMainWindowController.h index 840eb5c1..06bc609e 100644 --- a/MacPass/MPMainWindowController.h +++ b/MacPass/MPMainWindowController.h @@ -20,5 +20,6 @@ Clears the Search filter */ - (void)clearFilter:(id)sender; +- (void)toggleInspector:(id)sender; @end diff --git a/MacPass/MPMainWindowController.m b/MacPass/MPMainWindowController.m index 878f53ef..a4134788 100644 --- a/MacPass/MPMainWindowController.m +++ b/MacPass/MPMainWindowController.m @@ -14,15 +14,18 @@ #import "MPToolbarDelegate.h" #import "MPOutlineViewController.h" #import "MPMainWindowSplitViewDelegate.h" +#import "MPInspectorTabViewController.h" #import "MPAppDelegate.h" -#import "MPEntryEditController.h" + +static CGFloat _outlineSplitterPosition; +static CGFloat _inspectorSplitterPosition; @interface MPMainWindowController () - @property (assign) IBOutlet NSView *outlineView; @property (assign) IBOutlet NSSplitView *splitView; @property (assign) IBOutlet NSView *contentView; +@property (assign) IBOutlet NSView *inspectorView; @property (retain) IBOutlet NSView *welcomeView; @property (assign) IBOutlet NSTextField *welcomeText; @@ -30,14 +33,17 @@ @property (retain) MPPasswordInputController *passwordInputController; @property (retain) MPEntryViewController *entryViewController; -@property (retain) MPEntryEditController *entryEditController; @property (retain) MPOutlineViewController *outlineViewController; +@property (retain) MPInspectorTabViewController *inspectorTabViewController; @property (retain) MPToolbarDelegate *toolbarDelegate; @property (retain) MPMainWindowSplitViewDelegate *splitViewDelegate; +/* View show/hide */ - (void)_collapseOutlineView; - (void)_expandOutlineView; +- (void)_toggleInspector; + - (void)_setContentViewController:(MPViewController *)viewController; - (void)_updateWindowTitle; @@ -50,6 +56,7 @@ if( self ) { _toolbarDelegate = [[MPToolbarDelegate alloc] init]; _outlineViewController = [[MPOutlineViewController alloc] init]; + _inspectorTabViewController = [[MPInspectorTabViewController alloc] init]; _splitViewDelegate = [[MPMainWindowSplitViewDelegate alloc] init]; [[NSBundle mainBundle] loadNibNamed:@"WelcomeView" owner:self topLevelObjects:NULL]; @@ -65,17 +72,17 @@ - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; - self.welcomeView = nil; - self.welcomeText = nil; - self.toolbar = nil; + [_welcomeView release]; + [_welcomeText release]; + [_toolbar release]; - self.passwordInputController = nil; - self.entryViewController = nil; - self.entryEditController = nil; - self.outlineViewController = nil; + [_passwordInputController release]; + [_entryViewController release]; + [_outlineViewController release]; + [_inspectorTabViewController release]; - self.toolbarDelegate = nil; - self.splitViewDelegate = nil; + [_toolbarDelegate release]; + [_splitViewDelegate release]; [super dealloc]; } @@ -98,11 +105,20 @@ [self.splitView setDelegate:self.splitViewDelegate]; - NSRect frame = [self.outlineView frame]; - [self.outlineViewController.view setFrame:frame]; + /* Add outlineview */ + const NSRect outlineFrame = [self.outlineView frame]; + [self.outlineViewController.view setFrame:outlineFrame]; [self.outlineViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; [self.splitView replaceSubview:self.outlineView with:[self.outlineViewController view]]; [self.outlineViewController updateResponderChain]; + + /* Add inspector view */ + const NSRect inspectorFrame = [self.inspectorView frame]; + [self.inspectorTabViewController.view setFrame:inspectorFrame]; + [self.inspectorTabViewController.view setAutoresizesSubviews:NSViewWidthSizable | NSViewHeightSizable ]; + [self.splitView replaceSubview:self.inspectorView with:[self.inspectorTabViewController view]]; + [self.inspectorTabViewController updateResponderChain]; + [self.splitView adjustSubviews]; [self _setContentViewController:nil]; @@ -144,16 +160,18 @@ } - (void)_collapseOutlineView { - NSView *outlineView = [self.splitView subviews][0]; - if(![outlineView isHidden]) { - [self.splitView setPosition:0 ofDividerAtIndex:0]; + NSView *outlineView = [self.splitView subviews][MPSplitViewOutlineViewIndex]; + if([outlineView isHidden]) { + _outlineSplitterPosition = [outlineView frame].size.width; + [self.splitView setPosition:0 ofDividerAtIndex:MPSplitViewOutlineViewIndex]; } } - (void)_expandOutlineView { - NSView *outlineView = [self.splitView subviews][0]; - if([outlineView isHidden]) { - [self.splitView setPosition:MPMainWindowSplitViewDelegateMinimumOutlineWidth ofDividerAtIndex:0]; + NSView *outlineView = [self.splitView subviews][MPSplitViewOutlineViewIndex]; + if(![outlineView isHidden]) { + CGFloat splitterPosition = MAX( MPMainWindowSplitViewDelegateMinimumOutlineWidth, _outlineSplitterPosition ); + [self.splitView setPosition:splitterPosition ofDividerAtIndex:MPSplitViewOutlineViewIndex]; } } @@ -170,6 +188,22 @@ #pragma mark Actions +- (void)toggleInspector:(id)sender { + NSView *inspectorView = [self.splitView subviews][MPSplitViewInspectorViewIndex]; + const BOOL collapsed = [self.splitView isSubviewCollapsed:inspectorView]; + if(collapsed) { + CGFloat splitterPosition = MAX(MPMainWindowSplitViewDelegateMinimumInspectorWidth, _inspectorSplitterPosition); + [self.splitView setPosition:splitterPosition ofDividerAtIndex:1]; + } + else { + _inspectorSplitterPosition = [inspectorView frame].origin.x; + CGFloat splitterPosition = [inspectorView frame].origin.x * [inspectorView frame].size.width; + [[NSAnimationContext currentContext] setDuration:2]; + [[self.splitView animator] setPosition:splitterPosition ofDividerAtIndex:1]; + } + [inspectorView setHidden:!collapsed]; +} + - (void)performFindPanelAction:(id)sender { [self.window makeFirstResponder:[self.toolbarDelegate.searchItem view]]; } @@ -220,16 +254,6 @@ } - (void)showEditForm:(id)sender { - if( ![MPDatabaseController hasOpenDatabase] ) { - return; // No database open - nothing to do; - } - - if(!self.entryEditController) { - self.entryEditController = [[[MPEntryEditController alloc] init] autorelease]; - } - //find active selection - self.entryEditController.selectedItem = nil; - [self _setContentViewController:self.entryEditController]; } diff --git a/MacPass/MPMainWindowSplitViewDelegate.h b/MacPass/MPMainWindowSplitViewDelegate.h index ee32aea7..86caf522 100644 --- a/MacPass/MPMainWindowSplitViewDelegate.h +++ b/MacPass/MPMainWindowSplitViewDelegate.h @@ -8,9 +8,15 @@ #import -extern const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth; -extern const CGFloat MPMainWindowSplitViewDelegateMaximumOutlineWidth; -extern const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth; +APPKIT_EXTERN const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth; +APPKIT_EXTERN const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth; +APPKIT_EXTERN const CGFloat MPMainWindowSplitViewDelegateMinimumInspectorWidth; + +typedef enum { + MPSplitViewOutlineViewIndex, + MPSplitViewContentViewIndex, + MPSplitViewInspectorViewIndex, +} MPSplitViewSubViewIndex; @interface MPMainWindowSplitViewDelegate : NSObject diff --git a/MacPass/MPMainWindowSplitViewDelegate.m b/MacPass/MPMainWindowSplitViewDelegate.m index d287ef95..f197a354 100644 --- a/MacPass/MPMainWindowSplitViewDelegate.m +++ b/MacPass/MPMainWindowSplitViewDelegate.m @@ -10,51 +10,59 @@ const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth = 150.0; const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth = 400.0; +const CGFloat MPMainWindowSplitViewDelegateMinimumInspectorWidth = 200.0; + + @interface MPMainWindowSplitViewDelegate () -- (NSView *)_leftView:(NSSplitView *)splitView; -- (NSView *)_rightView:(NSSplitView *)splitView; +- (NSView *)_subViewOfType:(MPSplitViewSubViewIndex)subViewType splitView:(NSSplitView *)splitView; @end @implementation MPMainWindowSplitViewDelegate -- (NSView *)_leftView:(NSSplitView *)splitView { - return [splitView subviews][0]; -} - -- (NSView *)_rightView:(NSSplitView *)splitView { - return [splitView subviews][1]; +- (NSView *)_subViewOfType:(MPSplitViewSubViewIndex)subViewType splitView :(NSSplitView *)splitView { + return [splitView subviews][subViewType]; } - (BOOL)splitView:(NSSplitView *)splitView canCollapseSubview:(NSView *)subview { - return (subview == [self _leftView:splitView]); + return (subview != [self _subViewOfType:MPSplitViewContentViewIndex splitView:splitView]); } - (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex { - return (proposedMinimumPosition < MPMainWindowSplitViewDelegateMinimumOutlineWidth) ? MPMainWindowSplitViewDelegateMinimumOutlineWidth : proposedMinimumPosition; + return proposedMinimumPosition; + //return (proposedMinimumPosition < MPMainWindowSplitViewDelegateMinimumOutlineWidth) ? MPMainWindowSplitViewDelegateMinimumOutlineWidth : proposedMinimumPosition; } - (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex { - CGFloat availableWidth = [splitView frame].size.width - [splitView dividerThickness]; - return (availableWidth - MPMainWindowSplitViewDelegateMinimumOutlineWidth); + return proposedMaximumPosition; + // CGFloat availableWidth = [splitView frame].size.width - [splitView dividerThickness]; + // return (availableWidth - MPMainWindowSplitViewDelegateMinimumOutlineWidth); } - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize { NSSize newSize = [splitView frame].size; const CGFloat dividierThickness = [splitView dividerThickness]; - NSView *leftView = [self _leftView:splitView]; - NSView *rightView = [self _rightView:splitView]; + NSView *outlineView = [self _subViewOfType:MPSplitViewOutlineViewIndex splitView:splitView]; + NSView *contentView = [self _subViewOfType:MPSplitViewContentViewIndex splitView:splitView]; + NSView *inspectorView = [self _subViewOfType:MPSplitViewInspectorViewIndex splitView:splitView]; - CGFloat leftWidth = [leftView isHidden] ? 0.0 : [leftView frame].size.width; - NSRect newRightFrame = NSMakeRect(leftWidth + dividierThickness, 0, newSize.width - leftWidth - dividierThickness, newSize.height); - NSRect newLeftFrame = NSMakeRect(0, 0, leftWidth, newSize.height); - if(NO == [leftView isHidden]) { - [leftView setFrame:newLeftFrame]; + CGFloat outlineWidth = [outlineView isHidden] ? 0.0 : [outlineView frame].size.width; + CGFloat inspectorWidth = [inspectorView isHidden] ? 0.0 : [inspectorView frame].size.width; + CGFloat contentWidth = newSize.width - outlineWidth - inspectorWidth - 2 * dividierThickness; + NSRect newContentFrame = NSMakeRect(outlineWidth + dividierThickness, 0, contentWidth, newSize.height); + NSRect newOutlineFrame = NSMakeRect(0, 0, outlineWidth, newSize.height); + NSRect newInpectorFrame = NSMakeRect(newContentFrame.origin.x + contentWidth + dividierThickness, 0, inspectorWidth, newSize.height); + + if(NO == [outlineView isHidden]) { + [outlineView setFrame:newOutlineFrame]; } - [rightView setFrame:newRightFrame]; + if(NO == [inspectorView isHidden]) { + [inspectorView setFrame:newInpectorFrame]; + } + [contentView setFrame:newContentFrame]; }; @end diff --git a/MacPass/MPToolbarDelegate.m b/MacPass/MPToolbarDelegate.m index 46108444..39f59935 100644 --- a/MacPass/MPToolbarDelegate.m +++ b/MacPass/MPToolbarDelegate.m @@ -17,6 +17,7 @@ NSString *const MPToolbarItemEdit = @"Edit"; NSString *const MPToolbarItemDelete =@"Delete"; NSString *const MPToolbarItemAction = @"Action"; NSString *const MPToolbarItemSearch = @"Search"; +NSString *const MPToolbarItemInspector = @"Inspector"; @interface MPToolbarDelegate() @@ -32,7 +33,7 @@ NSString *const MPToolbarItemSearch = @"Search"; - (id)init { self = [super init]; if (self) { - _toolbarIdentifiers = [@[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup, MPToolbarItemAction, NSToolbarFlexibleSpaceItemIdentifier, MPToolbarItemSearch ] retain]; + _toolbarIdentifiers = [@[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup, MPToolbarItemAction, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, MPToolbarItemInspector, MPToolbarItemSearch ] retain]; _toolbarImages = [[self createToolbarImages] retain]; _toolbarItems = [[NSMutableDictionary alloc] initWithCapacity:[self.toolbarIdentifiers count]]; } @@ -107,6 +108,9 @@ NSString *const MPToolbarItemSearch = @"Search"; [button setTarget:nil]; [button setAction:@selector(showEditForm:)]; } + else if( [itemIdentifier isEqualToString:MPToolbarItemInspector]) { + [button setAction:@selector(toggleInspector:)]; + } NSRect fittingRect = [button frame]; fittingRect.size.width = MAX( (CGFloat)32.0,fittingRect.size.width); @@ -134,7 +138,8 @@ NSString *const MPToolbarItemSearch = @"Search"; MPToolbarItemAddGroup: [MPIconHelper icon:MPIconPassword], MPToolbarItemDelete: [NSImage imageNamed:NSImageNameRemoveTemplate], MPToolbarItemEdit: [MPIconHelper icon:MPIconNotepad], - MPToolbarItemAction: [NSImage imageNamed:NSImageNameActionTemplate] + MPToolbarItemAction: [NSImage imageNamed:NSImageNameActionTemplate], + MPToolbarItemInspector: [NSImage imageNamed:NSImageNameInfo], }; return imageDict; } diff --git a/MacPass/MacPass-Info.plist b/MacPass/MacPass-Info.plist index c7871a12..773e6bf7 100644 --- a/MacPass/MacPass-Info.plist +++ b/MacPass/MacPass-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 3E4 + 401 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright diff --git a/MacPass/MainWindow.xib b/MacPass/MainWindow.xib index 758e4616..a1144e32 100644 --- a/MacPass/MainWindow.xib +++ b/MacPass/MainWindow.xib @@ -2,7 +2,7 @@ 1080 - 12C60 + 12C3103 3084 1187.34 625.00 @@ -56,7 +56,7 @@ 268 - {256, 449} + {209, 449} @@ -67,13 +67,22 @@ 256 - {{257, 0}, {470, 449}} + {{210, 0}, {383, 449}} - + _NS:13 NSView + + + 268 + {{594, 0}, {133, 449}} + + + _NS:9 + NSView + {727, 449} @@ -89,7 +98,7 @@ - {{0, 0}, {2560, 1418}} + {{0, 0}, {1680, 1028}} {400, 422} {10000000000000, 10000000000000} YES @@ -129,6 +138,14 @@ 634 + + + inspectorView + + + + 676 + @@ -178,6 +195,7 @@ + @@ -192,6 +210,11 @@ + + 675 + + + @@ -207,12 +230,13 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin - 674 + 676 @@ -221,6 +245,7 @@ NSWindowController NSView + NSView NSView NSSplitView NSTextField @@ -231,6 +256,10 @@ contentView NSView + + inspectorView + NSView + outlineView NSView diff --git a/MacPass/OverlayWindow.xib b/MacPass/OverlayWindow.xib index 110237f0..21bca22a 100644 --- a/MacPass/OverlayWindow.xib +++ b/MacPass/OverlayWindow.xib @@ -53,7 +53,7 @@ 268 - {{53, 20}, {45, 19}} + {{53, 20}, {45, 18}} _NS:1535 @@ -96,7 +96,7 @@ NeXT Encapsulated PostScript v1.2 pasteboard type NeXT TIFF v4.0 pasteboard type - {{43, 47}, {64, 64}} + {{43, 46}, {64, 65}} @@ -125,7 +125,7 @@ _NS:20 - {{0, 0}, {1920, 1058}} + {{0, 0}, {1680, 1028}} {10000000000000, 10000000000000} YES