[Aptitude-devel] r3041 - in branches/aptitude-0.3/aptitude: . src src/generic

Daniel Burrows dburrows@costa.debian.org
Fri, 22 Apr 2005 23:07:26 +0000


Author: dburrows
Date: Fri Apr 22 23:07:22 2005
New Revision: 3041

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
   branches/aptitude-0.3/aptitude/src/generic/aptcache.h
   branches/aptitude-0.3/aptitude/src/main.cc
Log:
Make package_state_changed useful.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Fri Apr 22 23:07:22 2005
@@ -1,5 +1,12 @@
 2005-04-22  Daniel Burrows  <dburrows@debian.org>
 
+	* src/generic/aptcache.cc, src/generic/aptcache.h, src/main.cc:
+
+	  Make "package_state_changed" an argumentless signal, and call it
+	  whenever a package's install version changes.  Also added a
+	  missing discard_resolver()/create_resolver() pair in
+	  set_candidate_version.
+
 	* src/generic/problemresolver/problemresolver.h:
 
 	  Add a flag to enable or disable debugging; debugging is disabled

Modified: branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptcache.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptcache.cc	Fri Apr 22 23:07:22 2005
@@ -805,6 +805,8 @@
       cleanup_after_change(undo);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 }
 
@@ -843,6 +845,8 @@
       cleanup_after_change(undo);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 }
 
@@ -857,6 +861,8 @@
       // to store the currently to-be-installed version.
       VerIterator prev=(*this)[(ver.ParentPkg())].InstVerIter(GetCache());
 
+      discard_resolver(undo);
+
       if(undo)
 	undo->add_item(new candver_undoer(prev, this));
 
@@ -868,6 +874,11 @@
       SetCandidateVersion(ver);
 
       mark_and_sweep(undo);
+
+      if(BrokenCount()>0)
+	create_resolver();
+
+      package_state_changed();
     }
 }
 
@@ -893,6 +904,8 @@
 	  cleanup_after_change(undo, false);
 
 	  duplicate_cache(&backup_state);
+
+	  package_state_changed();
 	}
     }
 }
@@ -913,6 +926,8 @@
       cleanup_after_change(undo, false);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 }
 
@@ -931,6 +946,8 @@
       cleanup_after_change(undo);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 }
 
@@ -960,6 +977,8 @@
       cleanup_after_change(undo);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 
   return rval;
@@ -982,6 +1001,8 @@
       cleanup_after_change(undo);
 
       duplicate_cache(&backup_state);
+
+      package_state_changed();
     }
 
   return !founderr;

Modified: branches/aptitude-0.3/aptitude/src/generic/aptcache.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptcache.h	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptcache.h	Fri Apr 22 23:07:22 2005
@@ -435,8 +435,10 @@
   void restore_apt_state(const apt_state_snapshot *snapshot);
   // Restores the *APT* cache to the given state.
 
-  // Emitted when a package's marking is changed (to install, for instance).
-  sigc::signal1<void, const PkgIterator &> package_state_changed;
+  /** This signal is emitted if any package's install state is
+   *  changed.
+   */
+  sigc::signal0<void> package_state_changed;
 
   // Emitted when a package's categorization is potentially changed.
   // (in particular, when package "new" states are forgotten)

Modified: branches/aptitude-0.3/aptitude/src/main.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/main.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/main.cc	Fri Apr 22 23:07:22 2005
@@ -59,11 +59,6 @@
 #include "pkg_grouppolicy.h"
 #include "pkg_view.h"
 
-static void do_vscreen_update(const pkgCache::PkgIterator &)
-{
-  vscreen_update();
-}
-
 static void show_version()
 {
   printf(_("%s %s compiled at %s %s\n"),
@@ -426,7 +421,7 @@
 
   if(apt_cache_file)
     {
-      (*apt_cache_file)->package_state_changed.connect(sigc::ptr_fun(do_vscreen_update));
+      (*apt_cache_file)->package_state_changed.connect(sigc::ptr_fun(vscreen_update));
       (*apt_cache_file)->package_category_changed.connect(sigc::ptr_fun(vscreen_update));
     }