[Aptitude-devel] r3038 - in branches/aptitude-0.3/aptitude: . src
Daniel Burrows
dburrows@costa.debian.org
Fri, 22 Apr 2005 03:46:38 +0000
Author: dburrows
Date: Fri Apr 22 03:46:35 2005
New Revision: 3038
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/broken_indicator.cc
branches/aptitude-0.3/aptitude/src/pkg_view.cc
Log:
Start trying to use the broken indicator; fix a guard against nullity.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Fri Apr 22 03:46:35 2005
@@ -1,5 +1,15 @@
2005-04-21 Daniel Burrows <dburrows@debian.org>
+ * src/broken_indicator.cc, src/pkg_view.cc:
+
+ Hook up the broken indicator to the package-view class, and do
+ some awful hacking to make it sort of update. Needs work, such
+ as actually getting the package_state_changed signal or
+ something similar hooked up.
+
+ Also, fix the guard against a NULL cache so we don't crash on
+ startup (doh).
+
* src/Makefile.am, src/broken_indicator.cc, src/broken_indicator.h, src/generic/aptitude_resolver.h:
Write a first draft of the widget to display information about
Modified: branches/aptitude-0.3/aptitude/src/broken_indicator.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/broken_indicator.cc (original)
+++ branches/aptitude-0.3/aptitude/src/broken_indicator.cc Fri Apr 22 03:46:35 2005
@@ -46,10 +46,19 @@
*/
class broken_indicator:public vs_text_layout
{
+public:
+ broken_indicator()
+ {
+ update();
+ }
+
void update()
{
if((!apt_cache_file) || !(*apt_cache_file)->resolver_exists())
- set_fragment(NULL);
+ {
+ set_fragment(NULL);
+ return;
+ }
string next=global_bindings.keyname("NextSolution");
string prev=global_bindings.keyname("PrevSolution");
@@ -169,9 +178,19 @@
"Error"));
}
}
-public:
- broken_indicator()
+
+ /** \todo horribly inefficient. */
+ int width_request()
{
update();
+
+ return vs_text_layout::width_request();
}
};
+
+vscreen_widget *make_broken_indicator()
+{
+ // FIXME: this should really work by attaching to the
+ // package_state_changed signal, but that signal doesn't work...
+ return new broken_indicator;
+}
Modified: branches/aptitude-0.3/aptitude/src/pkg_view.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/pkg_view.cc (original)
+++ branches/aptitude-0.3/aptitude/src/pkg_view.cc Fri Apr 22 03:46:35 2005
@@ -6,6 +6,7 @@
#include "aptitude.h"
+#include "broken_indicator.h"
#include "desc_parse.h"
#include "edit_pkg_hier.h"
#include "menu_redirect.h"
@@ -384,6 +385,9 @@
wt->add_widget_opts(w, 0, 0, 1, 1, vs_table::EXPAND | vs_table::SHRINK, vs_table::EXPAND | vs_table::SHRINK);
wt->add_widget_opts(ws, 0, 1, 1, 1, vs_table::ALIGN_RIGHT, vs_table::ALIGN_CENTER | vs_table::FILL);
+ wt->add_widget_opts(make_broken_indicator(),
+ 1, 0, 1, 2, vs_table::EXPAND, vs_table::EXPAND);
+
lt->add_widget_opts(l, 0, 0, 1, 1, vs_table::EXPAND | vs_table::SHRINK, vs_table::EXPAND | vs_table::SHRINK);
lt->add_widget_opts(ls, 0, 1, 1, 1, vs_table::ALIGN_RIGHT, vs_table::ALIGN_CENTER | vs_table::FILL);