[Aptitude-svn-commit] r4218 - in branches/aptitude-0.3/aptitude: . src

Daniel Burrows dburrows at costa.debian.org
Sat Sep 24 04:53:47 UTC 2005


Author: dburrows
Date: Sat Sep 24 04:53:44 2005
New Revision: 4218

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/ui.cc
   branches/aptitude-0.3/aptitude/src/ui.h
Log:
Connect the undo menu command via signals instead of directly.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sat Sep 24 04:53:44 2005
@@ -1,5 +1,10 @@
 2005-09-23  Daniel Burrows  <dburrows at debian.org>
 
+	* src/ui.cc, src/ui.h:
+
+	  Connect undo() through a signal instead of directly.  For now
+	  do_undo() is still used, though.
+
 	* src/generic/resolver_manager.cc:
 
 	  Always signal state_changed() after an undo.

Modified: branches/aptitude-0.3/aptitude/src/ui.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/ui.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/ui.cc	Sat Sep 24 04:53:44 2005
@@ -132,6 +132,10 @@
 vs_widget_ref active_status_download;
 
 sigc::signal0<void> file_quit;
+
+sigc::signal0<bool, accumulate_or> undo_undo;
+sigc::signal0<bool, accumulate_or> undo_undo_enabled;
+
 sigc::signal0<void> package_states_changed;
 
 sigc::signal0<bool, accumulate_or> package_menu_enabled;
@@ -1432,10 +1436,11 @@
   return apt_undos->size()>0;
 }
 
-static void do_undo()
+static bool do_undo()
 {
   apt_undos->undo();
   package_states_changed();
+  return true;
 }
 
 #ifdef WITH_RELOAD_CACHE
@@ -1767,7 +1772,8 @@
 vs_menu_info undo_menu[]={
   vs_menu_info(vs_menu_info::VS_MENU_ITEM, N_("Undo"), "Undo",
 	       N_("Undo the last package operation or group of operations"),
-	       sigc::ptr_fun(do_undo), sigc::ptr_fun(undo_enabled)),
+	       sigc::hide_return(undo_undo.make_slot()),
+	       undo_undo_enabled.make_slot()),
 
   VS_MENU_END
 };
@@ -2065,6 +2071,10 @@
   // display.
   package_states_changed.connect(sigc::ptr_fun(vscreen_update));
 
+  // Temporary until I get everything working properly.
+  undo_undo.connect(sigc::ptr_fun(&do_undo));
+  undo_undo_enabled.connect(sigc::ptr_fun(&undo_enabled));
+
   consume_errors.connect(sigc::ptr_fun(check_apt_errors));
 
   if(aptcfg->Exists(PACKAGE "::Theme"))
@@ -2129,7 +2139,7 @@
 				 sigc::ptr_fun(do_help_help));
   main_stacked->connect_key_post("Undo",
 				 &global_bindings,
-				 sigc::ptr_fun(do_undo));
+				 sigc::hide_return(undo_undo.make_slot()));
   main_stacked->connect_key_post("NextSolution",
 				 &global_bindings,
 				 sigc::ptr_fun(do_next_solution));

Modified: branches/aptitude-0.3/aptitude/src/ui.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/ui.h	(original)
+++ branches/aptitude-0.3/aptitude/src/ui.h	Sat Sep 24 04:53:44 2005
@@ -51,6 +51,12 @@
  */
 extern sigc::signal0<void> package_states_changed;
 
+/** Tests whether Undo -> Undo is enabled. */
+extern sigc::signal0<bool, accumulate_or> undo_undo_enabled;
+
+/** Emitted for Undo -> Undo. */
+extern sigc::signal0<bool, accumulate_or> undo_undo;
+
 /** Used to determine whether a target is available for the "package actions".
  */
 extern sigc::signal0<bool, accumulate_or> package_menu_enabled;



More information about the Aptitude-svn-commit mailing list