diff --git a/GitX.xcodeproj/project.pbxproj b/GitX.xcodeproj/project.pbxproj index 01e79e9..054febf 100644 --- a/GitX.xcodeproj/project.pbxproj +++ b/GitX.xcodeproj/project.pbxproj @@ -49,6 +49,12 @@ 212A49AB12A31328009DAFAD /* deleted_file.png in Resources */ = {isa = PBXBuildFile; fileRef = 212A49A912A31328009DAFAD /* deleted_file.png */; }; 212A49AD12A31350009DAFAD /* ignored_file.png in Resources */ = {isa = PBXBuildFile; fileRef = 212A49AC12A31350009DAFAD /* ignored_file.png */; }; 212A49AF12A3135C009DAFAD /* modified_file.png in Resources */ = {isa = PBXBuildFile; fileRef = 212A49AE12A3135C009DAFAD /* modified_file.png */; }; + 213C598D12EB8BEB006F0CAE /* PBResetSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 213C598C12EB8BEB006F0CAE /* PBResetSheet.xib */; }; + 213C599012EB8BFC006F0CAE /* PBResetSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 213C598F12EB8BFC006F0CAE /* PBResetSheet.m */; }; + 213C5A6812EB8E95006F0CAE /* GTTopBlackGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 213C5A6712EB8E95006F0CAE /* GTTopBlackGradientView.m */; }; + 213C5A6B12EB8EC5006F0CAE /* GTGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 213C5A6A12EB8EC5006F0CAE /* GTGradientView.m */; }; + 213C5AC512EB91F5006F0CAE /* GTSheetWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 213C5AC112EB91F5006F0CAE /* GTSheetWindow.m */; }; + 213C5AC612EB91F5006F0CAE /* GTWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 213C5AC312EB91F5006F0CAE /* GTWindow.m */; }; 217FF0B912A1CB3300785A65 /* PBStashController.m in Sources */ = {isa = PBXBuildFile; fileRef = 217FF0B312A1CB3300785A65 /* PBStashController.m */; }; 217FF0BA12A1CB3300785A65 /* PBSubmoduleController.m in Sources */ = {isa = PBXBuildFile; fileRef = 217FF0B512A1CB3300785A65 /* PBSubmoduleController.m */; }; 217FF0BB12A1CB3300785A65 /* PBGitResetController.m in Sources */ = {isa = PBXBuildFile; fileRef = 217FF0B712A1CB3300785A65 /* PBGitResetController.m */; }; @@ -60,7 +66,6 @@ 31460CD4124185BA00B90AED /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = 31460CAF124185BA00B90AED /* ReadMe.txt */; }; 31460CD5124185BA00B90AED /* Source Code License.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 31460CB0124185BA00B90AED /* Source Code License.rtf */; }; 31460CD6124185BA00B90AED /* TODO in Resources */ = {isa = PBXBuildFile; fileRef = 31460CB1124185BA00B90AED /* TODO */; }; - 31DAA7ED1317737100463846 /* gitx_l_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 31DAA7EC1317737100463846 /* gitx_l_pub.pem */; }; 3BC07F4C0ED5A5C5009A7768 /* HistoryViewTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = 3BC07F4A0ED5A5C5009A7768 /* HistoryViewTemplate.png */; }; 3BC07F4D0ED5A5C5009A7768 /* CommitViewTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = 3BC07F4B0ED5A5C5009A7768 /* CommitViewTemplate.png */; }; 47DBDB580E94EDE700671A1E /* DBPrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDB570E94EDE700671A1E /* DBPrefsWindowController.m */; }; @@ -83,9 +88,6 @@ 91B103CC0E898EC300C84364 /* PBIconAndTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B103CB0E898EC300C84364 /* PBIconAndTextCell.m */; }; 93CB42C20EAB7B2200530609 /* PBGitDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB42C10EAB7B2200530609 /* PBGitDefaults.m */; }; 93F7857F0EA3ABF100C1F443 /* PBCommitMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F7857E0EA3ABF100C1F443 /* PBCommitMessageView.m */; }; - C3B13DD812F3A89D0045437C /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3B13DD712F3A89D0045437C /* SecurityFoundation.framework */; }; - C3B13DE412F3A8D70045437C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3B13DE312F3A8D70045437C /* Security.framework */; }; - C3B13E2312F3A9130045437C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3B13DE312F3A8D70045437C /* Security.framework */; }; D26DC6450E782C9000C777B2 /* gitx.icns in Resources */ = {isa = PBXBuildFile; fileRef = D26DC6440E782C9000C777B2 /* gitx.icns */; }; D8022FE811E124A0003C21F6 /* PBGitXMessageSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = D8022FE711E124A0003C21F6 /* PBGitXMessageSheet.xib */; }; D8022FED11E124C8003C21F6 /* PBGitXMessageSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D8022FEC11E124C8003C21F6 /* PBGitXMessageSheet.m */; }; @@ -322,6 +324,17 @@ 212A49A912A31328009DAFAD /* deleted_file.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = deleted_file.png; sourceTree = ""; }; 212A49AC12A31350009DAFAD /* ignored_file.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ignored_file.png; sourceTree = ""; }; 212A49AE12A3135C009DAFAD /* modified_file.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = modified_file.png; sourceTree = ""; }; + 213C598C12EB8BEB006F0CAE /* PBResetSheet.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PBResetSheet.xib; sourceTree = ""; }; + 213C598E12EB8BFC006F0CAE /* PBResetSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBResetSheet.h; sourceTree = ""; }; + 213C598F12EB8BFC006F0CAE /* PBResetSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBResetSheet.m; sourceTree = ""; }; + 213C5A6612EB8E95006F0CAE /* GTTopBlackGradientView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTTopBlackGradientView.h; sourceTree = ""; }; + 213C5A6712EB8E95006F0CAE /* GTTopBlackGradientView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTTopBlackGradientView.m; sourceTree = ""; }; + 213C5A6912EB8EB3006F0CAE /* GTGradientView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTGradientView.h; sourceTree = ""; }; + 213C5A6A12EB8EC5006F0CAE /* GTGradientView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTGradientView.m; sourceTree = ""; }; + 213C5AC112EB91F5006F0CAE /* GTSheetWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTSheetWindow.m; sourceTree = ""; }; + 213C5AC212EB91F5006F0CAE /* GTWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTWindow.h; sourceTree = ""; }; + 213C5AC312EB91F5006F0CAE /* GTWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTWindow.m; sourceTree = ""; }; + 213C5AC412EB91F5006F0CAE /* GTSheetWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTSheetWindow.h; sourceTree = ""; }; 217FF0B312A1CB3300785A65 /* PBStashController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBStashController.m; sourceTree = SOURCE_ROOT; }; 217FF0B412A1CB3300785A65 /* PBStashController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBStashController.h; sourceTree = SOURCE_ROOT; }; 217FF0B512A1CB3300785A65 /* PBSubmoduleController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBSubmoduleController.m; sourceTree = ""; }; @@ -347,7 +360,6 @@ 31460CAF124185BA00B90AED /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadMe.txt; sourceTree = ""; }; 31460CB0124185BA00B90AED /* Source Code License.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Source Code License.rtf"; sourceTree = ""; }; 31460CB1124185BA00B90AED /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = ""; }; - 31DAA7EC1317737100463846 /* gitx_l_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = gitx_l_pub.pem; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* GitX_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GitX_Prefix.pch; sourceTree = ""; }; 3BC07F4A0ED5A5C5009A7768 /* HistoryViewTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = HistoryViewTemplate.png; path = Images/HistoryViewTemplate.png; sourceTree = ""; }; 3BC07F4B0ED5A5C5009A7768 /* CommitViewTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = CommitViewTemplate.png; path = Images/CommitViewTemplate.png; sourceTree = ""; }; @@ -380,8 +392,6 @@ 93F7857D0EA3ABF100C1F443 /* PBCommitMessageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBCommitMessageView.h; sourceTree = ""; }; 93F7857E0EA3ABF100C1F443 /* PBCommitMessageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBCommitMessageView.m; sourceTree = ""; }; 93FCCBA80EA8AF450061B02B /* PBGitConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBGitConfig.m; sourceTree = ""; }; - C3B13DD712F3A89D0045437C /* SecurityFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityFoundation.framework; path = System/Library/Frameworks/SecurityFoundation.framework; sourceTree = SDKROOT; }; - C3B13DE312F3A8D70045437C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; D26DC6440E782C9000C777B2 /* gitx.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = gitx.icns; sourceTree = ""; }; D8022A3411DFCCA5003C21F6 /* build_libgit2.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_libgit2.sh; sourceTree = ""; }; D8022FE711E124A0003C21F6 /* PBGitXMessageSheet.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PBGitXMessageSheet.xib; sourceTree = ""; }; @@ -580,7 +590,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3B13E2312F3A9130045437C /* Security.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -596,8 +605,6 @@ F5C580E50EDA250900995434 /* libgit2.a in Frameworks */, D8E3B2B810DC9FB2001096A3 /* ScriptingBridge.framework in Frameworks */, D87127011229A21C00012334 /* QuartzCore.framework in Frameworks */, - C3B13DD812F3A89D0045437C /* SecurityFoundation.framework in Frameworks */, - C3B13DE412F3A8D70045437C /* Security.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -711,6 +718,8 @@ 21230ED41285ED760046E5A1 /* View */ = { isa = PBXGroup; children = ( + 213C5AC012EB91F5006F0CAE /* Window */, + 213C5A5D12EB8E72006F0CAE /* Gradient */, 21230ED71285EDAF0046E5A1 /* PBArgumentPicker.h */, 21230ED81285EDAF0046E5A1 /* PBArgumentPicker.m */, 21CF0B22129C7ED90065B37C /* TrackableOutlineView.h */, @@ -749,6 +758,28 @@ path = "File Markers"; sourceTree = ""; }; + 213C5A5D12EB8E72006F0CAE /* Gradient */ = { + isa = PBXGroup; + children = ( + 213C5A6612EB8E95006F0CAE /* GTTopBlackGradientView.h */, + 213C5A6712EB8E95006F0CAE /* GTTopBlackGradientView.m */, + 213C5A6912EB8EB3006F0CAE /* GTGradientView.h */, + 213C5A6A12EB8EC5006F0CAE /* GTGradientView.m */, + ); + path = Gradient; + sourceTree = ""; + }; + 213C5AC012EB91F5006F0CAE /* Window */ = { + isa = PBXGroup; + children = ( + 213C5AC412EB91F5006F0CAE /* GTSheetWindow.h */, + 213C5AC112EB91F5006F0CAE /* GTSheetWindow.m */, + 213C5AC212EB91F5006F0CAE /* GTWindow.h */, + 213C5AC312EB91F5006F0CAE /* GTWindow.m */, + ); + path = Window; + sourceTree = ""; + }; 29B97314FDCFA39411CA2CEA /* GitTest */ = { isa = PBXGroup; children = ( @@ -769,7 +800,6 @@ F5886A120ED5D33D0066E74C /* SpeedTest-Info.plist */, F567CC3A106E6B910059BB9D /* GitXTesting-Info.plist */, D89E9AB21218A9DA0097A90B /* ScriptingBridge.framework */, - C3B13DD712F3A89D0045437C /* SecurityFoundation.framework */, ); name = GitTest; sourceTree = ""; @@ -817,7 +847,6 @@ 21025C1112947AB200D87200 /* sourceListActionOver.png */, 02B41A5F123E307F00DFC531 /* PBCommitHookFailedSheet.xib */, F5F7D0641062E7940072C81C /* UpdateKey.pem */, - 31DAA7EC1317737100463846 /* gitx_l_pub.pem */, F50A41130EBB872D00208746 /* Widgets */, 47DBDB920E94F47200671A1E /* Preference Icons */, D26DC6440E782C9000C777B2 /* gitx.icns */, @@ -840,6 +869,7 @@ 21230ED11285EB5A0046E5A1 /* PBArgumentPicker.xib */, F58DB55F10566E3900CFDF4A /* PBGitSidebarView.xib */, D8022FE711E124A0003C21F6 /* PBGitXMessageSheet.xib */, + 213C598C12EB8BEB006F0CAE /* PBResetSheet.xib */, ); name = Resources; sourceTree = ""; @@ -850,7 +880,6 @@ F5C580E40EDA250900995434 /* libgit2.a */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - C3B13DE312F3A8D70045437C /* Security.framework */, ); name = Frameworks; sourceTree = ""; @@ -931,6 +960,8 @@ D8083E02111FA33700337480 /* PBCloneRepositoryPanel.m */, D8022FEB11E124C8003C21F6 /* PBGitXMessageSheet.h */, D8022FEC11E124C8003C21F6 /* PBGitXMessageSheet.m */, + 213C598E12EB8BFC006F0CAE /* PBResetSheet.h */, + 213C598F12EB8BFC006F0CAE /* PBResetSheet.m */, ); name = Sheets; sourceTree = ""; @@ -1338,6 +1369,7 @@ isa = PBXProject; buildConfigurationList = 26FC0A880875C7B200E6366F /* Build configuration list for PBXProject "GitX" */; compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( English, @@ -1427,7 +1459,7 @@ 212A49AB12A31328009DAFAD /* deleted_file.png in Resources */, 212A49AD12A31350009DAFAD /* ignored_file.png in Resources */, 212A49AF12A3135C009DAFAD /* modified_file.png in Resources */, - 31DAA7ED1317737100463846 /* gitx_l_pub.pem in Resources */, + 213C598D12EB8BEB006F0CAE /* PBResetSheet.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1597,6 +1629,11 @@ 217FF0BA12A1CB3300785A65 /* PBSubmoduleController.m in Sources */, 217FF0BB12A1CB3300785A65 /* PBGitResetController.m in Sources */, 217FF0BE12A1CB3E00785A65 /* PBRevealWithFinderCommand.m in Sources */, + 213C599012EB8BFC006F0CAE /* PBResetSheet.m in Sources */, + 213C5A6812EB8E95006F0CAE /* GTTopBlackGradientView.m in Sources */, + 213C5A6B12EB8EC5006F0CAE /* GTGradientView.m in Sources */, + 213C5AC512EB91F5006F0CAE /* GTSheetWindow.m in Sources */, + 213C5AC612EB91F5006F0CAE /* GTWindow.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1818,12 +1855,10 @@ GCC_ENABLE_OBJC_GC = required; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = DEBUG_BUILD; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_PREPROCESS = YES; PREBINDING = NO; - RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; }; name = Debug; @@ -1837,13 +1872,11 @@ x86_64, ); GCC_ENABLE_OBJC_GC = required; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_PREFIX_HEADER = $PROJECT_TEMP_DIR/revision; INFOPLIST_PREPROCESS = YES; PREBINDING = NO; - RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; }; name = Release; diff --git a/PBFileTree.xib b/PBFileTree.xib new file mode 100644 index 0000000..6728aef --- /dev/null +++ b/PBFileTree.xib @@ -0,0 +1,2127 @@ + + + + 1050 + 10H574 + 823 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 823 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 319 + + YES + + + 4370 + + YES + + + 2304 + + YES + + + 4368 + {224, 335} + + YES + + + 256 + {{223, 0}, {16, 17}} + + + YES + + 221 + 16 + 1000 + + 75628096 + 2048 + + + LucidaGrande + 11 + 3100 + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 337772096 + 2048 + Text Cell + + LucidaGrande + 13 + 1044 + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + 3 + YES + + + + 3 + 2 + + 3 + MQA + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -624951296 + + + 4 + 15 + 0 + YES + 0 + + + {{1, 1}, {224, 335}} + + + + + 4 + + + + 256 + {{225, 1}, {15, 321}} + + + _doScroller: + 0.94830659536541895 + + + + -2147483392 + {{-100, -100}, {502, 15}} + + 1 + + _doScroller: + 0.0045045050792396069 + 0.99801188707351685 + + + {241, 337} + + + 18 + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 266 + + YES + + + 258 + {{5, 4}, {230, 22}} + + YES + + 343014976 + 268436544 + + + + YES + 1 + + 6 + System + textBackgroundColor + + + + + 130560 + 0 + search + + _searchFieldSearch: + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + + _searchFieldCancel: + + 138690815 + 0 + + 400 + 75 + + 255 + + + + {{0, 337}, {241, 29}} + + PBGitGradientBarView + + + {241, 366} + + NSView + + + + + YES + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + + 2 + + + YES + + + + + + 3 + + + YES + + + + + + 4 + + + + + 5 + + + YES + + + + + + File List Scroll View + + + 6 + + + YES + + + + + + 7 + + + + + 8 + + + + + 9 + + + YES + + + + + + 10 + + + + + + + YES + + YES + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 10.CustomClassName + 10.IBPluginDependency + 2.IBPluginDependency + 2.IBViewBoundsToFrameTransform + 3.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 5.IBViewBoundsToFrameTransform + 6.CustomClassName + 6.IBPluginDependency + 7.IBPluginDependency + 8.IBPluginDependency + 9.IBPluginDependency + + + YES + {{538, 508}, {241, 366}} + com.apple.InterfaceBuilder.CocoaPlugin + {628, 654} + {{217, 442}, {480, 272}} + PBIconAndTextCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUKKAABDIgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBQAAAw3EAAA + + PBQLOutlineView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 10 + + + + YES + + GLFileView + PBWebController + + YES + + YES + accessoryView + fileListSplitView + historyController + typeBar + + + YES + NSView + NSSplitView + PBGitHistoryController + MGScopeBar + + + + YES + + YES + accessoryView + fileListSplitView + historyController + typeBar + + + YES + + accessoryView + NSView + + + fileListSplitView + NSSplitView + + + historyController + PBGitHistoryController + + + typeBar + MGScopeBar + + + + + IBProjectSource + GLFileView.h + + + + MGScopeBar + NSView + + delegate + id + + + delegate + + delegate + id + + + + IBProjectSource + MGScopeBar/MGScopeBar.h + + + + NSApplication + + IBProjectSource + NSApplication+GitXScripting.h + + + + NSCell + + IBProjectSource + View/CellTrackingRect.h + + + + NSOutlineView + + IBProjectSource + NSOutlineViewExt.h + + + + PBCollapsibleSplitView + PBNiceSplitView + + IBProjectSource + PBCollapsibleSplitView.h + + + + PBCommitList + NSTableView + + YES + + YES + controller + searchController + webController + webView + + + YES + PBGitHistoryController + PBHistorySearchController + PBWebHistoryController + WebView + + + + YES + + YES + controller + searchController + webController + webView + + + YES + + controller + PBGitHistoryController + + + searchController + PBHistorySearchController + + + webController + PBWebHistoryController + + + webView + WebView + + + + + IBProjectSource + PBCommitList.h + + + + PBGitGradientBarView + NSView + + IBProjectSource + PBGitGradientBarView.h + + + + PBGitHistoryController + PBViewController + + YES + + YES + cherryPick: + createBranch: + createTag: + merge: + openFilesAction: + openSelectedFile: + rebase: + refresh: + selectNext: + selectPrevious: + setBranchFilter: + setDetailedView: + setTreeView: + showAddRemoteSheet: + showCommitsFromTree: + showInFinderAction: + toggleQLPreviewPanel: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + cherryPick: + createBranch: + createTag: + merge: + openFilesAction: + openSelectedFile: + rebase: + refresh: + selectNext: + selectPrevious: + setBranchFilter: + setDetailedView: + setTreeView: + showAddRemoteSheet: + showCommitsFromTree: + showInFinderAction: + toggleQLPreviewPanel: + + + YES + + cherryPick: + id + + + createBranch: + id + + + createTag: + id + + + merge: + id + + + openFilesAction: + id + + + openSelectedFile: + id + + + rebase: + id + + + refresh: + id + + + selectNext: + id + + + selectPrevious: + id + + + setBranchFilter: + id + + + setDetailedView: + id + + + setTreeView: + id + + + showAddRemoteSheet: + id + + + showCommitsFromTree: + id + + + showInFinderAction: + id + + + toggleQLPreviewPanel: + id + + + + + YES + + YES + allBranchesFilterItem + cherryPickButton + commitController + commitList + fileBrowser + fileView + historySplitView + localRemoteBranchesFilterItem + mergeButton + rebaseButton + refController + scopeBarView + searchController + searchField + selectedBranchFilterItem + treeController + upperToolbarView + webHistoryController + webView + + + YES + NSButton + NSButton + NSArrayController + PBCommitList + NSOutlineView + GLFileView + PBCollapsibleSplitView + NSButton + NSButton + NSButton + PBRefController + PBGitGradientBarView + PBHistorySearchController + NSSearchField + NSButton + NSTreeController + PBGitGradientBarView + PBWebHistoryController + id + + + + YES + + YES + allBranchesFilterItem + cherryPickButton + commitController + commitList + fileBrowser + fileView + historySplitView + localRemoteBranchesFilterItem + mergeButton + rebaseButton + refController + scopeBarView + searchController + searchField + selectedBranchFilterItem + treeController + upperToolbarView + webHistoryController + webView + + + YES + + allBranchesFilterItem + NSButton + + + cherryPickButton + NSButton + + + commitController + NSArrayController + + + commitList + PBCommitList + + + fileBrowser + NSOutlineView + + + fileView + GLFileView + + + historySplitView + PBCollapsibleSplitView + + + localRemoteBranchesFilterItem + NSButton + + + mergeButton + NSButton + + + rebaseButton + NSButton + + + refController + PBRefController + + + scopeBarView + PBGitGradientBarView + + + searchController + PBHistorySearchController + + + searchField + NSSearchField + + + selectedBranchFilterItem + NSButton + + + treeController + NSTreeController + + + upperToolbarView + PBGitGradientBarView + + + webHistoryController + PBWebHistoryController + + + webView + id + + + + + IBProjectSource + PBGitHistoryController.h + + + + PBHistorySearchController + NSObject + + YES + + YES + selectSearchMode: + stepperPressed: + updateSearch: + + + YES + id + id + id + + + + YES + + YES + selectSearchMode: + stepperPressed: + updateSearch: + + + YES + + selectSearchMode: + id + + + stepperPressed: + id + + + updateSearch: + id + + + + + YES + + YES + commitController + historyController + numberOfMatchesField + progressIndicator + searchField + stepper + + + YES + NSArrayController + PBGitHistoryController + NSTextField + NSProgressIndicator + NSSearchField + NSSegmentedControl + + + + YES + + YES + commitController + historyController + numberOfMatchesField + progressIndicator + searchField + stepper + + + YES + + commitController + NSArrayController + + + historyController + PBGitHistoryController + + + numberOfMatchesField + NSTextField + + + progressIndicator + NSProgressIndicator + + + searchField + NSSearchField + + + stepper + NSSegmentedControl + + + + + IBProjectSource + PBHistorySearchController.h + + + + PBIconAndTextCell + NSTextFieldCell + + IBProjectSource + PBIconAndTextCell.h + + + + PBNiceSplitView + NSSplitView + + IBProjectSource + PBNiceSplitView.h + + + + PBQLOutlineView + NSOutlineView + + controller + PBGitHistoryController + + + controller + + controller + PBGitHistoryController + + + + IBProjectSource + PBQLOutlineView.h + + + + PBRefController + NSObject + + YES + + YES + checkout: + cherryPick: + copyPatch: + copySHA: + createBranch: + createTag: + diffWithHEAD: + fetchRemote: + merge: + pullRemote: + pushDefaultRemoteForRef: + pushToRemote: + pushUpdatesToRemote: + rebaseHeadBranch: + reset: + showTagInfoSheet: + + + YES + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + PBRefMenuItem + + + + YES + + YES + checkout: + cherryPick: + copyPatch: + copySHA: + createBranch: + createTag: + diffWithHEAD: + fetchRemote: + merge: + pullRemote: + pushDefaultRemoteForRef: + pushToRemote: + pushUpdatesToRemote: + rebaseHeadBranch: + reset: + showTagInfoSheet: + + + YES + + checkout: + PBRefMenuItem + + + cherryPick: + PBRefMenuItem + + + copyPatch: + PBRefMenuItem + + + copySHA: + PBRefMenuItem + + + createBranch: + PBRefMenuItem + + + createTag: + PBRefMenuItem + + + diffWithHEAD: + PBRefMenuItem + + + fetchRemote: + PBRefMenuItem + + + merge: + PBRefMenuItem + + + pullRemote: + PBRefMenuItem + + + pushDefaultRemoteForRef: + PBRefMenuItem + + + pushToRemote: + PBRefMenuItem + + + pushUpdatesToRemote: + PBRefMenuItem + + + rebaseHeadBranch: + PBRefMenuItem + + + reset: + PBRefMenuItem + + + showTagInfoSheet: + PBRefMenuItem + + + + + YES + + YES + branchPopUp + commitController + commitList + historyController + + + YES + NSPopUpButton + NSArrayController + PBCommitList + PBGitHistoryController + + + + YES + + YES + branchPopUp + commitController + commitList + historyController + + + YES + + branchPopUp + NSPopUpButton + + + commitController + NSArrayController + + + commitList + PBCommitList + + + historyController + PBGitHistoryController + + + + + IBProjectSource + PBRefController.h + + + + PBRefMenuItem + NSMenuItem + + refish + id + + + refish + + refish + id + + + + IBProjectSource + PBRefMenuItem.h + + + + PBViewController + NSViewController + + refresh: + id + + + refresh: + + refresh: + id + + + + IBProjectSource + PBViewController.h + + + + PBWebController + NSObject + + YES + + YES + repository + view + + + YES + id + WebView + + + + YES + + YES + repository + view + + + YES + + repository + id + + + view + WebView + + + + + IBProjectSource + PBWebController.h + + + + PBWebHistoryController + PBWebController + + YES + + YES + contextMenuDelegate + historyController + + + YES + id + PBGitHistoryController + + + + YES + + YES + contextMenuDelegate + historyController + + + YES + + contextMenuDelegate + id + + + historyController + PBGitHistoryController + + + + + IBProjectSource + PBWebHistoryController.h + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSArrayController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSArrayController.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSManagedObjectContext + NSObject + + IBFrameworkSource + CoreData.framework/Headers/NSManagedObjectContext.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CIImageProvider.h + + + + NSObject + + IBFrameworkSource + ScriptingBridge.framework/Headers/SBApplication.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUAppcast.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUUpdater.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebDownload.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebEditingDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebFrameLoadDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebJavaPlugIn.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPlugin.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPluginContainer.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPolicyDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebResourceLoadDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebScriptObject.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebUIDelegate.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSOutlineView + NSTableView + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSearchField + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSSearchField.h + + + + NSSearchFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSSearchFieldCell.h + + + + NSSegmentedControl + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSegmentedControl.h + + + + NSSplitView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSSplitView.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableView + NSControl + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTreeController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSTreeController.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSViewController + NSResponder + + view + NSView + + + view + + view + NSView + + + + IBFrameworkSource + AppKit.framework/Headers/NSViewController.h + + + + WebView + NSView + + YES + + YES + goBack: + goForward: + makeTextLarger: + makeTextSmaller: + makeTextStandardSize: + reload: + reloadFromOrigin: + stopLoading: + takeStringURLFrom: + toggleContinuousSpellChecking: + toggleSmartInsertDelete: + + + YES + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + goBack: + goForward: + makeTextLarger: + makeTextSmaller: + makeTextStandardSize: + reload: + reloadFromOrigin: + stopLoading: + takeStringURLFrom: + toggleContinuousSpellChecking: + toggleSmartInsertDelete: + + + YES + + goBack: + id + + + goForward: + id + + + makeTextLarger: + id + + + makeTextSmaller: + id + + + makeTextStandardSize: + id + + + reload: + id + + + reloadFromOrigin: + id + + + stopLoading: + id + + + takeStringURLFrom: + id + + + toggleContinuousSpellChecking: + id + + + toggleSmartInsertDelete: + id + + + + + IBFrameworkSource + WebKit.framework/Headers/WebView.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + GitX.xcodeproj + 3 + + diff --git a/PBGitHistoryController.h b/PBGitHistoryController.h index 93bfea0..3023fbb 100644 --- a/PBGitHistoryController.h +++ b/PBGitHistoryController.h @@ -27,6 +27,7 @@ IBOutlet PBRefController *refController; IBOutlet NSSearchField *searchField; IBOutlet NSArrayController* commitController; + IBOutlet NSSearchField *filesSearchField; IBOutlet NSTreeController* treeController; IBOutlet NSOutlineView* fileBrowser; NSArray *currentFileBrowserSelectionPath; @@ -93,6 +94,7 @@ // Find/Search methods - (IBAction)selectNext:(id)sender; - (IBAction)selectPrevious:(id)sender; +- (IBAction) updateSearch:(id) sender; - (void) copyCommitInfo; - (void) copyCommitSHA; diff --git a/PBGitHistoryController.m b/PBGitHistoryController.m index e3be741..a76a254 100644 --- a/PBGitHistoryController.m +++ b/PBGitHistoryController.m @@ -810,6 +810,32 @@ NSImage *image = [workspace iconForFile:path]; [image setSize:NSMakeSize(15, 15)]; [cell setImage:image]; + + NSColor *textColor = [NSColor blackColor]; + if ([object filterPredicate] && !([[filesSearchField stringValue] length] > 0 && [[object filterPredicate] evaluateWithObject:object])) { + textColor = [NSColor lightGrayColor]; + } + + + [cell setTextColor:textColor]; +} + +#pragma mark - + +- (IBAction) updateSearch:(NSSearchField *) sender { + static NSPredicate *predicateTemplate = nil; + if (!predicateTemplate) { + predicateTemplate = [NSPredicate predicateWithFormat:@"path CONTAINS[c] $SEARCH_STRING"]; + } + + NSString *searchString = [sender stringValue]; + NSPredicate *predicate = nil; + if ([searchString length] > 0) { + predicate = [predicateTemplate predicateWithSubstitutionVariables: + [NSDictionary dictionaryWithObject:searchString forKey:@"SEARCH_STRING"]]; + } + [gitTree setFilterPredicate:predicate]; + [treeController setContent:gitTree.filteredChildren]; } @end diff --git a/PBGitHistoryView.xib b/PBGitHistoryView.xib index 90d1e1b..8d7e9fc 100644 --- a/PBGitHistoryView.xib +++ b/PBGitHistoryView.xib @@ -2,10 +2,10 @@ 1050 - 10J567 - 788 + 10H574 + 804 1038.35 - 462.00 + 461.00 YES @@ -15,13 +15,13 @@ YES - 788 - 788 + 804 + 804 YES - + YES @@ -491,7 +491,7 @@ - d 'de' MMMM 'de' yyyy HH:mm + d MMMM yyyy HH:mm NO @@ -968,184 +968,109 @@ 4370 YES - + - 274 + 4372 YES - - - 266 - {{5, 212.5}, {196, 19}} - - YES - - 343014976 - 268698688 - - - LucidaGrande - 9 - 3614 - - - YES - 1 - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - - - - - 4370 + + + 2304 YES - - - 2304 - + + + 4368 + {216, 233} + + YES + + + 256 + {{223, 0}, {16, 17}} + + YES - - - 4368 - {190, 208} - - YES - - - 256 - {{223, 0}, {16, 17}} - - - YES - - 187 - 16 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - + + 213 + 16 + 1000 + + 75628096 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + - 3 - 2 - - - 17 - -624951296 - - - 4 - 15 - 0 - YES - 0 + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + - {{1, 1}, {190, 208}} - - - - - 4 - - - - 256 - {{191, 1}, {15, 208}} - - - _doScroller: - 0.98701298701298701 - - - - -2147483392 - {{-100, -100}, {502, 15}} - - 1 - - _doScroller: - 0.0045045050792396069 - 0.99801188707351685 + 3 + 2 + + + 17 + -624951296 + + + 4 + 15 + 0 + YES + 0 - {{0, 0.5}, {207, 210}} - - - 18 - - - - QSAAAEEgAABBmAAAQZgAAA + {{1, 1}, {216, 233}} + + + + + 4 + + + + 256 + {{217, 1}, {15, 233}} + + + _doScroller: + 0.99481862783432007 + + + + -2147483392 + {{-100, -100}, {502, 15}} + + 1 + + _doScroller: + 0.0045045050792396069 + 0.99801188707351685 - {207, 235} + {233, 235} - NSView + + 18 + + + + QSAAAEEgAABBmAAAQZgAAA @@ -1191,12 +1116,12 @@ - {{665, 0}, {84, 24}} + {{639, 0}, {84, 24}} NSView - {{0, 211}, {749, 24}} + {{0, 211}, {723, 24}} MGScopeBar @@ -1224,7 +1149,7 @@ public.url-name - {749, 210} + {723, 210} @@ -1234,7 +1159,7 @@ YES - {{208, 0}, {749, 235}} + {{234, 0}, {723, 235}} NSView @@ -2332,11 +2257,56 @@ YES + - + + 10 + + + YES + + + + + + File List Scroll View + + + 17 + + + + + 16 + + + + + 15 + + + YES + + + + + + 18 + + + YES + + + + + + 19 + + + 311 @@ -2650,75 +2620,6 @@ - - 491 - - - YES - - - - - - - 10 - - - YES - - - - - - File List Scroll View - - - 17 - - - - - 16 - - - - - 15 - - - YES - - - - - - 18 - - - YES - - - - - - 19 - - - - - 492 - - - YES - - - - - - 493 - - - @@ -2781,7 +2682,6 @@ 333.IBPluginDependency 337.IBAttributePlaceholdersKey 337.IBPluginDependency - 337.IBViewBoundsToFrameTransform 338.IBPluginDependency 34.CustomClassName 34.IBPluginDependency @@ -2834,9 +2734,6 @@ 486.IBPluginDependency 49.IBAttributePlaceholdersKey 49.IBPluginDependency - 491.IBPluginDependency - 492.IBPluginDependency - 493.IBPluginDependency 50.IBPluginDependency 51.IBPluginDependency 6.IBPluginDependency @@ -2929,9 +2826,6 @@ com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC6AAAwdAAAA - com.apple.InterfaceBuilder.CocoaPlugin GitXTextFieldCell com.apple.InterfaceBuilder.CocoaPlugin @@ -3018,7 +2912,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.WebKitIBPlugin - {{1702, 241}, {955, 434}} + {{1084, 241}, {955, 434}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3038,9 +2932,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3059,7 +2950,7 @@ - 493 + 490 diff --git a/PBGitTree.h b/PBGitTree.h index 27cef62..72b7204 100644 --- a/PBGitTree.h +++ b/PBGitTree.h @@ -21,6 +21,9 @@ NSString* localFileName; NSDate* localMtime; + + NSPredicate *filterPredicate; + NSMutableArray *filteredChildren; } + (PBGitTree*) rootForCommit: (id) commit; @@ -41,6 +44,9 @@ @property(retain) PBGitRepository* repository; @property(assign) __weak PBGitTree* parent; +@property (nonatomic, copy) NSPredicate *filterPredicate; +@property(readonly) NSArray *filteredChildren; + @property(readonly) NSArray* children; @property(readonly) NSString* fullPath; @property(readonly) NSString* contents; diff --git a/PBGitTree.m b/PBGitTree.m index c966fa5..f1ba694 100644 --- a/PBGitTree.m +++ b/PBGitTree.m @@ -15,6 +15,55 @@ @implementation PBGitTree @synthesize sha, path, repository, leaf, parent; +@synthesize filterPredicate; +@synthesize filteredChildren; + +#pragma mark - +#pragma mark get/set + +- (NSArray *) filteredChildren { + if (!filteredChildren) { + filteredChildren = [[NSMutableArray alloc] init]; + [filteredChildren addObjectsFromArray:self.children]; + } + return filteredChildren; +} + +- (void) setFilterPredicate:(NSPredicate *) newPredicate { + if (newPredicate != filterPredicate) { + [filterPredicate release]; + filterPredicate = [newPredicate retain]; + + if (leaf) { + return; + } + + // initiate filtering + [filteredChildren removeAllObjects]; + filteredChildren = [[NSMutableArray alloc] init]; + + if (filterPredicate == nil) { + [filteredChildren addObjectsFromArray:self.children]; + } + + for (id item in self.children) { + [item setFilterPredicate:filterPredicate]; + if (filterPredicate) { + if ([item leaf]) { + if ([filterPredicate evaluateWithObject:item]) { + [filteredChildren addObject:item]; + } + } else { + if ([[item filteredChildren] count] > 0) { + [filteredChildren addObject:item]; + } + } + } + } + } +} + +#pragma mark - + (PBGitTree*) rootForCommit:(id) commit { @@ -40,6 +89,7 @@ - init { + filteredChildren = nil; children = nil; localFileName = nil; leaf = YES;