X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fcollection.cpp;h=165b77007fce815eac0b4498d58950895ca1706d;hp=aa607bdedcde65ecfd298b21af06fc9dc42aeac2;hb=2af11bfb5184092e58cb9a0055ae03a271af28cb;hpb=f8820db0e2d1de85752de809f0a8e24394a33f61 diff --git a/source/collection.cpp b/source/collection.cpp index aa607bd..165b770 100644 --- a/source/collection.cpp +++ b/source/collection.cpp @@ -1,3 +1,4 @@ +#include #include "collection.h" using namespace std; @@ -102,13 +103,15 @@ IO::Seekable *Collection::open_from_sources(const string &name) void Collection::gather_names_from_sources(list &names, const CollectionItemTypeBase &type) const { + set new_names; for(SourceList::const_iterator i=sources.begin(); i!=sources.end(); ++i) { std::list available_names = (*i)->get_names(type); for(std::list::iterator j=available_names.begin(); j!=available_names.end(); ++j) if(!items.count(*j)) - names.push_back(*j); + new_names.insert(*j); } + names.insert(names.end(), new_names.begin(), new_names.end()); } void Collection::load_items_from_sources(const CollectionItemTypeBase &type)