diff options
author | Daniel Hartwig <mandyke@gmail.com> | 2012-03-07 08:18:11 +0800 |
---|---|---|
committer | Daniel Hartwig <mandyke@gmail.com> | 2012-03-07 08:18:11 +0800 |
commit | f30ad11196e0ae7a3a2979369c696ccbb9f192bf (patch) | |
tree | 1bbe2bf7692e85653fba6719ba77677aece8c43c | |
parent | c83ec0e908782d428409f8ae335b252157b816dd (diff) | |
download | aptitude-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.cc | 46 | ||||
-rw-r--r-- | src/pkg_ver_item.cc | 28 | ||||
-rw-r--r-- | src/solution_item.cc | 10 | ||||
-rw-r--r-- | src/ui.cc | 37 | ||||
-rw-r--r-- | src/ui.h | 6 |
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) @@ -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" @@ -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; |