commit 3fdb4b5d04370806721f18effff4cec3c7849309
parent dd6410cbab3cf80b1de2072a946754d87b2a84f9
Author: William Morgan <wmorgan-sup@masanjin.net>
Date: Tue, 5 Jan 2010 15:40:29 -0800
Merge branch 'insta-save' into next
Diffstat:
3 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/lib/sup/modes/inbox-mode.rb b/lib/sup/modes/inbox-mode.rb
@@ -37,6 +37,7 @@ class InboxMode < ThreadIndexMode
UndoManager.register "archiving thread" do
thread.apply_label :inbox
add_or_unhide thread.first
+ Index.save_thread thread
end
cursor_thread.remove_label :inbox
@@ -50,6 +51,7 @@ class InboxMode < ThreadIndexMode
threads.map do |t|
t.apply_label :inbox
add_or_unhide t.first
+ Index.save_thread t
end
regen_text
end
@@ -71,6 +73,7 @@ class InboxMode < ThreadIndexMode
thread.apply_label :inbox
thread.apply_label :unread if was_unread
add_or_unhide thread.first
+ Index.save_thread thread
end
cursor_thread.remove_label :unread
@@ -94,6 +97,7 @@ class InboxMode < ThreadIndexMode
threads.zip(old_labels).each do |t, l|
t.labels = l
add_or_unhide t.first
+ Index.save_thread t
end
regen_text
end
diff --git a/lib/sup/modes/thread-index-mode.rb b/lib/sup/modes/thread-index-mode.rb
@@ -265,7 +265,7 @@ EOS
def toggle_starred
t = cursor_thread or return
undo = actually_toggle_starred t
- UndoManager.register "toggling thread starred status", undo
+ UndoManager.register "toggling thread starred status", undo, lambda { Index.save_thread t }
update_text_for_line curpos
cursor_down
Index.save_thread t
@@ -273,7 +273,8 @@ EOS
def multi_toggle_starred threads
UndoManager.register "toggling #{threads.size.pluralize 'thread'} starred status",
- threads.map { |t| actually_toggle_starred t }
+ threads.map { |t| actually_toggle_starred t },
+ lambda { threads.each { |t| Index.save_thread t } }
regen_text
threads.each { |t| Index.save_thread t }
end
@@ -351,14 +352,16 @@ EOS
def toggle_archived
t = cursor_thread or return
undo = actually_toggle_archived t
- UndoManager.register "deleting/undeleting thread #{t.first.id}", undo, lambda { update_text_for_line curpos }
+ UndoManager.register "deleting/undeleting thread #{t.first.id}", undo, lambda { update_text_for_line curpos },
+ lambda { Index.save_thread t }
update_text_for_line curpos
Index.save_thread t
end
def multi_toggle_archived threads
undos = threads.map { |t| actually_toggle_archived t }
- UndoManager.register "deleting/undeleting #{threads.size.pluralize 'thread'}", undos, lambda { regen_text }
+ UndoManager.register "deleting/undeleting #{threads.size.pluralize 'thread'}", undos, lambda { regen_text },
+ lambda { threads.each { |t| Index.save_thread t } }
regen_text
threads.each { |t| Index.save_thread t }
end
@@ -425,7 +428,7 @@ EOS
undos = threads.map { |t| actually_toggle_spammed t }
threads.each { |t| HookManager.run("mark-as-spam", :thread => t) }
UndoManager.register "marking/unmarking #{threads.size.pluralize 'thread'} as spam",
- undos, lambda { regen_text }
+ undos, lambda { regen_text }, lambda { threads.each { |t| Index.save_thread t } }
regen_text
threads.each { |t| Index.save_thread t }
end
@@ -439,7 +442,7 @@ EOS
def multi_toggle_deleted threads
undos = threads.map { |t| actually_toggle_deleted t }
UndoManager.register "deleting/undeleting #{threads.size.pluralize 'thread'}",
- undos, lambda { regen_text }
+ undos, lambda { regen_text }, lambda { threads.each { |t| Index.save_thread t } }
regen_text
threads.each { |t| Index.save_thread t }
end
@@ -455,6 +458,7 @@ EOS
threads.each do |t|
t.remove_label :killed
add_or_unhide t.first
+ Index.save_thread t
end
regen_text
end
@@ -530,6 +534,7 @@ EOS
thread.labels = old_labels
update_text_for_line pos
UpdateManager.relay self, :labeled, thread.first
+ Index.save_thread thread
end
UpdateManager.relay self, :labeled, thread.first
@@ -567,6 +572,7 @@ EOS
threads.zip(old_labels).map do |t, old_labels|
t.labels = old_labels
UpdateManager.relay self, :labeled, t.first
+ Index.save_thread t
end
regen_text
end
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -279,6 +279,7 @@ EOS
Index.save_thread @thread
UndoManager.register "labeling thread" do
@thread.labels = old_labels
+ Index.save_thread @thread
UpdateManager.relay self, :labeled, @thread.first
end
end
@@ -527,6 +528,7 @@ EOS
Index.save_thread @thread
UndoManager.register "archiving 1 thread" do
@thread.apply_label :inbox
+ Index.save_thread @thread
UpdateManager.relay self, :unarchived, @thread.first
end
end
@@ -539,6 +541,7 @@ EOS
Index.save_thread @thread
UndoManager.register "marking 1 thread as spam" do
@thread.remove_label :spam
+ Index.save_thread @thread
UpdateManager.relay self, :unspammed, @thread.first
end
end
@@ -551,6 +554,7 @@ EOS
Index.save_thread @thread
UndoManager.register "deleting 1 thread" do
@thread.remove_label :deleted
+ Index.save_thread @thread
UpdateManager.relay self, :undeleted, @thread.first
end
end