summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hartwig <mandyke@gmail.com>2012-03-07 08:18:11 +0800
committerDaniel Hartwig <mandyke@gmail.com>2012-03-07 08:18:11 +0800
commitf30ad11196e0ae7a3a2979369c696ccbb9f192bf (patch)
tree1bbe2bf7692e85653fba6719ba77677aece8c43c
parentc83ec0e908782d428409f8ae335b252157b816dd (diff)
downloadaptitude-f30ad11196e0ae7a3a2979369c696ccbb9f192bf.tar.gz
Refactor duplicated make_{info,dep,ver}_screen + insert
* src/ui.{cc,h}: - New functions show_info_screen, show_dep_screen, show_ver_screen that combine make_x_screen and insert_main_widget with standard descriptions. * src/pkg_item.cc: * src/pkg_ver_item.cc: * src/solution_item.cc: - Migrate duplicated code for above to ui.cc.
-rw-r--r--src/pkg_item.cc46
-rw-r--r--src/pkg_ver_item.cc28
-rw-r--r--src/solution_item.cc10
-rw-r--r--src/ui.cc37
-rw-r--r--src/ui.h6
5 files changed, 51 insertions, 76 deletions
diff --git a/src/pkg_item.cc b/src/pkg_item.cc
index 6dcde0fd..36a8d4c9 100644
--- a/src/pkg_item.cc
+++ b/src/pkg_item.cc
@@ -228,15 +228,7 @@ void pkg_item::set_auto(bool isauto, undo_group *undo)
void pkg_item::show_information()
{
- char buf[512]="Foo";
- snprintf(buf, 512, _("Information about %s"), package.Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s info"), package.Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_info_screen(package, visible_version());
- // what to use as the menu description?
- insert_main_widget(w, menulabel, "", tablabel);
+ show_info_screen(package, visible_version());
}
void pkg_item::show_changelog()
@@ -325,44 +317,14 @@ void pkg_item::paint(cw::tree *win, int y, bool hierarchical, const cw::style &s
bool pkg_item::dispatch_key(const cw::config::key &k, cw::tree *owner)
{
if(bindings->key_matches(k, "Versions"))
- {
- char buf[512];
- snprintf(buf, 512, _("Available versions of %s"),
- package.Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s versions"),
- package.Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_ver_screen(package);
- insert_main_widget(w, menulabel, "", tablabel);
- }
+ show_ver_screen(package);
else if(bindings->key_matches(k, "Dependencies"))
{
if(!visible_version().end())
- {
- char buf[512];
- snprintf(buf, 512, _("Dependencies of %s"), package.Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s deps"), package.Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_dep_screen(package, visible_version());
- insert_main_widget(w, menulabel, "", tablabel);
- w->show();
- }
+ show_dep_screen(package, visible_version());
}
else if(bindings->key_matches(k, "ReverseDependencies"))
- {
- char buf[512];
- snprintf(buf, 512, _("Packages depending on %s"), package.Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s reverse deps"), package.Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_dep_screen(package, visible_version(), true);
- insert_main_widget(w, menulabel, "", tablabel);
- }
+ show_dep_screen(package, visible_version(), true);
else if(bindings->key_matches(k, "InfoScreen"))
show_information();
else if(bindings->key_matches(k, "Changelog") &&
diff --git a/src/pkg_ver_item.cc b/src/pkg_ver_item.cc
index 15e027d1..de1a9d38 100644
--- a/src/pkg_ver_item.cc
+++ b/src/pkg_ver_item.cc
@@ -672,15 +672,7 @@ void pkg_ver_item::forbid_version(undo_group *undo)
void pkg_ver_item::show_information()
{
- cw::widget_ref w=make_info_screen(version.ParentPkg(), version);
-
- char buf[512];
- snprintf(buf, 512, _("Information about %s"), version.ParentPkg().Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s info"), version.ParentPkg().Name());
- string tablabel(buf);
-
- insert_main_widget(w, menulabel, "", tablabel);
+ show_info_screen(version.ParentPkg(), version);
}
pkg_ver_screen::pkg_ver_screen(const pkgCache::PkgIterator &pkg)
@@ -704,26 +696,12 @@ bool pkg_ver_item::dispatch_key(const cw::config::key &k, cw::tree *owner)
{
if(bindings->key_matches(k, "Dependencies"))
{
- char buf[512];
- snprintf(buf, 512, _("Dependencies of %s"), version.ParentPkg().Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s deps"), version.ParentPkg().Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_dep_screen(version.ParentPkg(), version);
- insert_main_widget(w, menulabel, "", tablabel);
+ show_dep_screen(version.ParentPkg(), version);
return true;
}
else if(bindings->key_matches(k, "ReverseDependencies"))
{
- char buf[512];
- snprintf(buf, 512, _("Packages depending on %s"), version.ParentPkg().Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s reverse deps"), version.ParentPkg().Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_dep_screen(version.ParentPkg(), version, true);
- insert_main_widget(w, menulabel, "", tablabel);
+ show_dep_screen(version.ParentPkg(), version, true);
return true;
}
else if(bindings->key_matches(k, "InfoScreen"))
diff --git a/src/solution_item.cc b/src/solution_item.cc
index 90ece3d5..e9f39bff 100644
--- a/src/solution_item.cc
+++ b/src/solution_item.cc
@@ -292,15 +292,7 @@ void solution_act_item::show_target_info()
if(real_ver.end())
real_ver = pkg.VersionList();
- // Show information about the corresponding package/version.
- char buf[512];
- snprintf(buf, 512, _("Information about %s"), pkg.Name());
- string menulabel(buf);
- snprintf(buf, 512, _("%s info"), pkg.Name());
- string tablabel(buf);
-
- cw::widget_ref w=make_info_screen(pkg, real_ver);
- insert_main_widget(w, menulabel, "", tablabel);
+ show_info_screen(pkg, real_ver);
}
bool solution_act_item::dispatch_key(const cw::config::key &k, cw::tree *owner)
diff --git a/src/ui.cc b/src/ui.cc
index 505d3e2f..8dfb858f 100644
--- a/src/ui.cc
+++ b/src/ui.cc
@@ -961,6 +961,17 @@ cw::widget_ref make_info_screen(const pkgCache::PkgIterator &pkg,
return rval;
}
+void show_info_screen(const pkgCache::PkgIterator &pkg,
+ const pkgCache::VerIterator &ver)
+{
+ cw::widget_ref w = make_info_screen(pkg, ver);
+ const string menulabel =
+ ssprintf(_("Information about %s"), pkg.Name());
+ const string tablabel =
+ ssprintf(_("%s info"), pkg.Name());
+ insert_main_widget(w, menulabel, "", tablabel);
+}
+
cw::widget_ref make_dep_screen(const pkgCache::PkgIterator &pkg,
const pkgCache::VerIterator &ver,
bool reverse)
@@ -971,6 +982,22 @@ cw::widget_ref make_dep_screen(const pkgCache::PkgIterator &pkg,
return rval;
}
+void show_dep_screen(const pkgCache::PkgIterator &pkg,
+ const pkgCache::VerIterator &ver,
+ bool reverse)
+{
+ cw::widget_ref w = make_dep_screen(pkg, ver, reverse);
+ const string menulabel =
+ ssprintf(reverse ? _("Packages depending on %s")
+ : _("Dependencies of %s"),
+ pkg.Name());
+ const string tablabel =
+ ssprintf(reverse ? _("%s reverse deps")
+ : _("%s deps"),
+ pkg.Name());
+ insert_main_widget(w, menulabel, "", tablabel);
+}
+
cw::widget_ref make_ver_screen(const pkgCache::PkgIterator &pkg)
{
pkg_ver_screen_ref w = pkg_ver_screen::create(pkg);
@@ -979,6 +1006,16 @@ cw::widget_ref make_ver_screen(const pkgCache::PkgIterator &pkg)
return rval;
}
+void show_ver_screen(const pkgCache::PkgIterator &pkg)
+{
+ cw::widget_ref w = make_ver_screen(pkg);
+ const string menulabel =
+ ssprintf(_("Available versions of %s"), pkg.Name());
+ const string tablabel =
+ ssprintf(_("%s versions"), pkg.Name());
+ insert_main_widget(w, menulabel, "", tablabel);
+}
+
static void do_help_about()
{
cw::fragment *f = cw::fragf(_("Aptitude %s%n%nCopyright 2000-2008 Daniel Burrows.%n"
diff --git a/src/ui.h b/src/ui.h
index af402f28..f94cefe7 100644
--- a/src/ui.h
+++ b/src/ui.h
@@ -394,12 +394,18 @@ void do_apply_solution();
// Info screen
cwidget::widgets::widget_ref make_info_screen(const pkgCache::PkgIterator &pkg,
const pkgCache::VerIterator &ver);
+void show_info_screen(const pkgCache::PkgIterator &pkg,
+ const pkgCache::VerIterator &ver);
// Dependency screen
cwidget::widgets::widget_ref make_dep_screen(const pkgCache::PkgIterator &pkg,
const pkgCache::VerIterator &ver,
bool reverse=false);
+void show_dep_screen(const pkgCache::PkgIterator &pkg,
+ const pkgCache::VerIterator &ver,
+ bool reverse=false);
// List of versions
cwidget::widgets::widget_ref make_ver_screen(const pkgCache::PkgIterator &pkg);
+void show_ver_screen(const pkgCache::PkgIterator &pkg);
// Various defaults:
extern const char *default_pkgstatusdisplay;