From 10955275375ccdba73eaf331d039c582beaffe18 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Kupec?= Date: Wed, 1 Apr 2009 13:00:13 +0200 Subject: [PATCH] Summary improvements (bnc #389128) - always show vendors for packages with vendors to be changed - always show arch when arch changes - never show repo for removed packages (it's always @System) - 'd' for 'details' option added - some fixes --- src/Summary.cc | 15 +++++++++++++-- src/Summary.h | 2 +- src/solve-commit.cc | 14 ++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/Summary.cc b/src/Summary.cc index 50a209b..2900622 100644 --- a/src/Summary.cc +++ b/src/Summary.cc @@ -161,9 +161,10 @@ void Summary::readPool(const zypp::ResPool & pool) // reinstall else if (res->edition() == (*rmit)->edition()) { - toreinstall[res->kind()].insert(rp); if (res->arch() != (*rmit)->arch()) tochangearch[res->kind()].insert(rp); + else + toreinstall[res->kind()].insert(rp); if (res->vendor() != (*rmit)->vendor()) tochangevendor[res->kind()].insert(rp); } @@ -230,7 +231,7 @@ unsigned Summary::packagesToRemove() const void Summary::writeResolvableList(ostream & out, const ResPairSet & resolvables) { - if (_viewop == DEFAULT) + if ((_viewop & DETAILS) == 0) { ostringstream s; for (ResPairSet::const_iterator resit = resolvables.begin(); @@ -326,6 +327,8 @@ void Summary::writeNewlyInstalled(ostream & out) void Summary::writeRemoved(ostream & out) { + ViewOptions vop = _viewop; + unsetViewOption(SHOW_REPO); // never show repo here, it's always @System for_(it, toremove.begin(), toremove.end()) { string label; @@ -353,6 +356,7 @@ void Summary::writeRemoved(ostream & out) writeResolvableList(out, it->second); } + _viewop = vop; } // -------------------------------------------------------------------------- @@ -415,6 +419,7 @@ void Summary::writeDowngraded(ostream & out) "The following product is going to be downgraded:", "The following products are going to be downgraded:", it->second.size()); + out << endl << label << endl; writeResolvableList(out, it->second); } @@ -483,6 +488,8 @@ void Summary::writeSuggested(ostream & out) void Summary::writeChangedArch(ostream & out) { + ViewOptions vop = _viewop; + setViewOption(SHOW_ARCH); // always show arch here for_(it, tochangearch.begin(), tochangearch.end()) { string label; @@ -510,12 +517,15 @@ void Summary::writeChangedArch(ostream & out) writeResolvableList(out, it->second); } + _viewop = vop; } // -------------------------------------------------------------------------- void Summary::writeChangedVendor(ostream & out) { + ViewOptions vop = _viewop; + setViewOption(SHOW_VENDOR); // always show vendor here for_(it, tochangevendor.begin(), tochangevendor.end()) { string label; @@ -543,6 +553,7 @@ void Summary::writeChangedVendor(ostream & out) writeResolvableList(out, it->second); } + _viewop = vop; } // -------------------------------------------------------------------------- diff --git a/src/Summary.h b/src/Summary.h index 6ddd7fe..68a6c4b 100644 --- a/src/Summary.h +++ b/src/Summary.h @@ -32,7 +32,7 @@ public: enum _view_options { DEFAULT = 0x0300, - DETAILS = 0xfbff, + DETAILS = 0x00ff, SHOW_VERSION = 0x0001, SHOW_ARCH = 0x0002, diff --git a/src/solve-commit.cc b/src/solve-commit.cc index 8821675..5b4b78b 100755 --- a/src/solve-commit.cc +++ b/src/solve-commit.cc @@ -468,12 +468,12 @@ void solve_and_commit (Zypper & zypper) // The anserws must be separated by slash characters '/' and must // correspond to yes/no/showproblems in that order. // The answers should be lower case letters. - popts.setOptions(_("y/n/p/v/a/r/m"), 0); + popts.setOptions(_("y/n/p/v/a/r/m/d"), 0); popts.setShownCount(2); if (!(zypper.runtimeData().force_resolution && show_p_option)) popts.disable(2); // translators: help text for 'y' option in the y/n/p prompt - popts.setOptionHelp(0, _("Yes, ccept the summary and proceed with installation/removal of packages.")); + popts.setOptionHelp(0, _("Yes, accept the summary and proceed with installation/removal of packages.")); // translators: help text for 'n' option in the y/n/p prompt popts.setOptionHelp(1, _("No, cancel the operation.")); // translators: help text for 'p' option in the y/n/p prompt @@ -482,8 +482,8 @@ void solve_and_commit (Zypper & zypper) popts.setOptionHelp(4, _("Toggle display of package architectures.")); popts.setOptionHelp(5, _("Toggle display of repositories from which the packages will be installed.")); popts.setOptionHelp(6, _("Toggle display of package vendor names.")); - // popts.setOptionHelp(7, _("Explain why the packages are going to be installed.")); - // popts.setOptionHelp(8, _("Show all details.")); + popts.setOptionHelp(7, _("Toggle between showing all details and as few details as possible.")); + // popts.setOptionHelp(8, _("Explain why the packages are going to be installed.")); string prompt_text = _("Continue?"); @@ -533,6 +533,12 @@ void solve_and_commit (Zypper & zypper) summary.dumpTo(cout); break; } + case 7: // d + { + summary.toggleViewOption(Summary::DETAILS); + summary.dumpTo(cout); + break; + } default: // n need_another_solver_run = false; } -- 2.7.4