From ab38e39b96c6ed3c69ad0df234fec2f32076d1c0 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Fri, 2 Dec 2005 13:54:20 +0000 Subject: [PATCH] made simple search configurable; this fixes #1544 --- .../gLiveSupport/src/SearchWindow.cxx | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/livesupport/src/products/gLiveSupport/src/SearchWindow.cxx b/livesupport/src/products/gLiveSupport/src/SearchWindow.cxx index 49a078451..ab6d381a0 100644 --- a/livesupport/src/products/gLiveSupport/src/SearchWindow.cxx +++ b/livesupport/src/products/gLiveSupport/src/SearchWindow.cxx @@ -291,12 +291,30 @@ SearchWindow :: constructSearchResultsView(void) throw () void SearchWindow :: onSimpleSearch(void) throw () { - Glib::ustring value = simpleSearchEntry->get_text(); + Glib::ustring value = simpleSearchEntry->get_text(); - Ptr::Ref criteria(new SearchCriteria("all", "or")); - criteria->addCondition("dc:title", "partial", value); // id3v2 Title - criteria->addCondition("dc:creator", "partial", value); // id3v2 Artist - criteria->addCondition("dc:source", "partial", value); // id3v2 Album + Ptr::Ref metadataTypes + = gLiveSupport->getMetadataTypeContainer(); + MetadataTypeContainer::Vector::const_iterator + it = metadataTypes->begin(); + + Ptr::Ref criteria(new SearchCriteria("all", "or")); + Ptr::Ref metadata; + + if (it != metadataTypes->end()) { + metadata = *it; + criteria->addCondition(*metadata->getDcName(), "partial", value); + } + + if (++it != metadataTypes->end()) { + metadata = *it; + criteria->addCondition(*metadata->getDcName(), "partial", value); + } + + if (++it != metadataTypes->end()) { + metadata = *it; + criteria->addCondition(*metadata->getDcName(), "partial", value); + } onSearch(criteria); }