Author: lslezak Date: Fri Aug 15 14:39:56 2008 New Revision: 50119 URL: http://svn.opensuse.org/viewcvs/yast?rev=50119&view=rev Log: - use ui::Selectable in Pkg::SourceProductData() Modified: branches/tmp/lslezak/pkg-bindings/src/Source_Get.cc Modified: branches/tmp/lslezak/pkg-bindings/src/Source_Get.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/pkg-bindings/src/S... ============================================================================== --- branches/tmp/lslezak/pkg-bindings/src/Source_Get.cc (original) +++ branches/tmp/lslezak/pkg-bindings/src/Source_Get.cc Fri Aug 15 14:39:56 2008 @@ -278,14 +278,26 @@ try { - // find a product for the given source - zypp::ResPool::byKind_iterator it = zypp_ptr()->pool().byKindBegin(zypp::ResKind::product); - - for( ; it != zypp_ptr()->pool().byKindEnd(zypp::ResKind::product) ; ++it) + for (zypp::ResPoolProxy::const_iterator it = zypp_ptr()->poolProxy().byKindBegin(zypp::ResKind::product); + it != zypp_ptr()->poolProxy().byKindEnd(zypp::ResKind::product); + ++it) { - zypp::Product::constPtr product = boost::dynamic_pointer_cast<const zypp::Product>( it->resolvable() ); + zypp::Product::constPtr product = NULL; + + // search in available products + for (zypp::ui::Selectable::available_iterator inst_it = (*it)->availableBegin(); + inst_it != (*it)->availableEnd(); + ++inst_it) + { + zypp::Product::constPtr prod = boost::dynamic_pointer_cast<const zypp::Product>(inst_it->resolvable()); + if (product && logFindAlias(product->repoInfo().alias()) == static_cast<size_t>(src_id->value())) + { + product = prod; + break; + } + } - if( logFindAlias(product->repoInfo().alias()) == static_cast<size_t>(src_id->value())) + if (product) { ret->add( YCPString("label"), YCPString( product->summary() ) ); ret->add( YCPString("vendor"), YCPString( product->vendor() ) ); @@ -293,20 +305,13 @@ ret->add( YCPString("productversion"), YCPString( product->edition().version() ) ); ret->add( YCPString("relnotesurl"), YCPString( product->releaseNotesUrl().asString())); - #warning SourceProductData not finished - /* - data->add( YCPString("datadir"), YCPString( descr->content_datadir().asString() ) ); - TODO (?): "baseproductname", "baseproductversion", "defaultbase", "architectures", - "requires", "linguas", "labelmap", "language", "timezone", "descrdir", "datadir" - */ - break; } } - if( it == zypp_ptr()->pool().byKindEnd(zypp::ResKind::product) ) + if(ret->size() == 0) { - y2error ("Product for source '%lld' not found", src_id->value()); + y2warning("Product for source '%lld' not found", src_id->value()); } } catch (...) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org