From 6040395dc9ee34a36fd1ad92802bef9a956b8831 Mon Sep 17 00:00:00 2001 From: Justin Palmer Date: Thu, 12 Jun 2008 20:46:11 -0700 Subject: [PATCH] Add search UI with menu --- ApplicationController.rb | 34 ++++++++++++ English.lproj/MainMenu.xib | 104 +++++++++++++++++++++++++++++++++++-- 2 files changed, 135 insertions(+), 3 deletions(-) diff --git a/ApplicationController.rb b/ApplicationController.rb index 4f47781..a94616b 100644 --- a/ApplicationController.rb +++ b/ApplicationController.rb @@ -36,6 +36,7 @@ class ApplicationController < OSX::NSObject ib_outlet :local_branches_menu ib_outlet :remote_branches_menu ib_outlet :tags_menu + ib_outlet :search_field def applicationDidFinishLaunching(sender) @window.makeKeyAndOrderFront(self) @@ -58,6 +59,7 @@ def awakeFromNib @branch_field.cell.setBackgroundStyle(NSBackgroundStyleRaised) setup_refs_view_menu + setup_search_field end end @@ -81,6 +83,14 @@ def swap_tab(segment) @tab_panel.selectTabViewItemWithIdentifier(tag) end + def set_search_category(sender) + menu = @search_field.cell.searchMenuTemplate + menu.itemWithTitle(@current_search_item).setState(NSOffState) + menu.itemWithTitle(sender.title).setState(NSOnState) + @search_field.cell.setSearchMenuTemplate(menu) + @current_search_item = sender.title + end + private def setup_refs_view_menu [@local_branches_menu, @remote_branches_menu, @tags_menu].each { |m| m.submenu.setAutoenablesItems(false) } @@ -101,5 +111,29 @@ def setup_refs_view_menu add_menu_item.call(heads, @local_branches_menu) add_menu_item.call(repo.remotes, @remote_branches_menu) add_menu_item.call(repo.tags, @tags_menu) + end + + def setup_search_field + @search_menu = NSMenu.alloc.initWithTitle("Search Menu") + @search_field.cell.setSearchMenuTemplate(@search_menu) + @search_menu.setAutoenablesItems(false) + + add_menu_item = lambda do |title, tooltip, state| + item = NSMenuItem.alloc.initWithTitle_action_keyEquivalent(title, :set_search_category, "") + @search_menu.addItem(item) + item.setToolTip(tooltip) + item.setEnabled(true) + item.setTarget(self) + if state + item.setState(NSOnState) + @current_search_item = title + end + end + + add_menu_item.call("Commits", "Search commit messages", true) + add_menu_item.call("SHA1", "Find a commit by its SHA1 hash", false) + add_menu_item.call("Author", "Find all all commits by a particular author", false) + add_menu_item.call("Path", "Find commits based on a path", false) + end end diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib index 2f08008..940d6aa 100644 --- a/English.lproj/MainMenu.xib +++ b/English.lproj/MainMenu.xib @@ -519,6 +519,75 @@ 2 + + + 292 + {{292, 11}, {154, 22}} + + YES + + 343014976 + 268436480 + + + + YES + 1 + + 6 + System + textBackgroundColor + + 3 + MQA + + + + + 130560 + 0 + search + _searchFieldSearch: + + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + _searchFieldCancel: + + + 138690815 + 0 + + 400 + 75 + + 255 + + {990, 682} @@ -1459,6 +1528,14 @@ 529 + + + search_field + + + + 555 + @@ -1504,6 +1581,7 @@ + @@ -2131,6 +2209,20 @@ NetorkController + + 553 + + + YES + + + + + + 554 + + + @@ -2265,6 +2357,8 @@ 520.IBPluginDependency 525.IBPluginDependency 526.IBPluginDependency + 553.IBPluginDependency + 554.IBPluginDependency 56.IBPluginDependency 56.ImportedFromIB2 57.IBEditorWindowLastContentRect @@ -2303,9 +2397,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{44, 112}, {990, 682}} + {{52, 157}, {990, 682}} com.apple.InterfaceBuilder.CocoaPlugin - {{44, 112}, {990, 682}} + {{52, 157}, {990, 682}} {{146, 174}, {990, 682}} @@ -2439,6 +2533,8 @@ com.apple.WebKitIBPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin {{488, 641}, {218, 193}} com.apple.InterfaceBuilder.CocoaPlugin @@ -2468,7 +2564,7 @@ - 552 + 555 @@ -2501,6 +2597,7 @@ main_canvas main_view remote_branches_menu + search_field tab_panel tags_menu window @@ -2518,6 +2615,7 @@ id id id + id