Subject: Re: [sup-devel] [PATCH] Add global keybinding to clear all hooks

From: Rich Lane <[email-masked]>
Date: Fri, 14 May 2010 12:05:41 -0400

Applied to master.
_______________________________________________
Sup-devel mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-devel

---

From: Ben Walton <[email-masked]>
Date: Fri, 14 May 2010 11:22:24 -0400

When developing/tweaking hooks, it's inconvenient to use the console
mode to run the clear hooks command.  Add a globally available key
binding ('H') to trigger HookManager.clear.  As this is now more
exposed in the UI, make HookManager flash a notice to the
BufferManager indicating that it cleared the hooks.

Signed-off-by: Ben Walton <[email-masked]>
---
 bin/sup         |    3 +++
 lib/sup/hook.rb |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/bin/sup b/bin/sup
index ef4092f..8638c78 100755
--- a/bin/sup
+++ b/bin/sup
@@ -86,6 +86,7 @@ global_keymap = Keymap.new do |k|
   k.add :nothing, "Do nothing", :ctrl_g
   k.add :recall_draft, "Edit most recent draft message", 'R'
   k.add :show_inbox, "Show the Inbox buffer", 'I'
+  k.add :clear_hooks, "Clear all hooks", 'H'
   k.add :show_console, "Show the Console buffer", '~'
 
   ## Submap for less often used keybindings
@@ -330,6 +331,8 @@ begin
       end
     when :show_inbox
       BufferManager.raise_to_front ibuf
+    when :clear_hooks
+      HookManager.clear
     when :show_console
       b, new = bm.spawn_unless_exists("Console", :system => true) { ConsoleMode.new }
       b.mode.run
diff --git a/lib/sup/hook.rb b/lib/sup/hook.rb
index 08738cd..a2a39a5 100644
--- a/lib/sup/hook.rb
+++ b/lib/sup/hook.rb
@@ -112,7 +112,7 @@ EOS
 
   def enabled? name; !hook_for(name).nil? end
 
-  def clear; @hooks.clear; end
+  def clear; @hooks.clear; BufferManager.flash "Hooks cleared" end
   def clear_one k; @hooks.delete k; end
 
 private
-- 
1.7.0