[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));
}