Author: lslezak Date: Fri Aug 15 15:56:07 2008 New Revision: 50123 URL: http://svn.opensuse.org/viewcvs/yast?rev=50123&view=rev Log: - ui::Selectable in Pkg::GetPatterns() Modified: branches/tmp/lslezak/pkg-bindings/src/Selection.cc Modified: branches/tmp/lslezak/pkg-bindings/src/Selection.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/pkg-bindings/src/Selection.cc?rev=50123&r1=50122&r2=50123&view=diff ============================================================================== --- branches/tmp/lslezak/pkg-bindings/src/Selection.cc (original) +++ branches/tmp/lslezak/pkg-bindings/src/Selection.cc Fri Aug 15 15:56:07 2008 @@ -110,51 +110,27 @@ try { - for (zypp::ResPool::byKind_iterator it - = zypp_ptr()->pool().byKindBegin(zypp::ResKind::pattern); - it != zypp_ptr()->pool().byKindEnd(zypp::ResKind::pattern) ; ++it ) + for (zypp::ResPoolProxy::const_iterator it = zypp_ptr()->poolProxy().byKindBegin(zypp::ResKind::pattern); + it != zypp_ptr()->poolProxy().byKindEnd(zypp::ResKind::pattern); + ++it) { - std::string pattern; - if (status == "all") - { - pattern = it->resolvable()->name(); - } - else if (status == "available") - { - // ignore installed patterns - if( !it->status().wasInstalled() ) - pattern = it->resolvable()->name(); - } - else if (status == "selected") - { - if( it->status().isToBeInstalled() ) - pattern = it->resolvable()->name(); - } - else if (status == "installed") - { - if( it->status().wasInstalled() ) - pattern = it->resolvable()->name(); - } - else - { - y2warning("Unknown status in Pkg::GetPatterns(%s, ...)", status.c_str()); - break; - } - - if (pattern.empty()) - { - continue; - } - - std::string pattern_cat = zypp::dynamic_pointer_cast<const zypp::Pattern>(it->resolvable())->category(); + if (status == "all" || (status == "available" && (*it)->hasCandidateObj()) + // TODO FIXME isSatified() should be here??? + || (status == "installed" && (*it)->hasInstalledObj()) + || (status == "selected" && (*it)->fate() == zypp::ui::Selectable::TO_INSTALL) + ) + { + // check the required category + std::string pattern_cat = zypp::dynamic_pointer_cast<const zypp::Pattern>((*it)->theObj().resolvable())->category(); + + if (!category.empty() && pattern_cat != category) + { + continue; // asked for explicit category, but it doesn't match + } - if (!category.empty() && pattern_cat != category) - { - continue; // asked for explicit category, but it doesn't match + patterns->add(YCPString((*it)->name())); } - - patterns->add (YCPString (pattern)); } } catch (...) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org