* find_i function for case insensitive searching

* card::contains uses case insensitive find
* Added card::contains_words for quick search, which searches for each word separately

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1484 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2010-08-04 22:33:20 +00:00
parent be922940a2
commit 50a26e4c76
5 changed files with 29 additions and 2 deletions
+15 -1
View File
@@ -57,10 +57,24 @@ String Card::identification() const {
bool Card::contains(String const& query) const {
FOR_EACH_CONST(v, data) {
if (v->toString().find(query) != String::npos) return true;
if (find_i(v->toString(),query) != String::npos) return true;
}
return false;
}
bool Card::contains_words(String const& query) const {
// iterate over the words
for (size_t i = 0 ; i < query.size() ; ) {
size_t end = query.find_first_of(_(" "),i);
if (end == i) {
i++;
} else {
end = min(end,query.size());
if (!contains(query.substr(i,end-i))) return false;
i = end;
}
}
return true;
}
IndexMap<FieldP, ValueP>& Card::extraDataFor(const StyleSheet& stylesheet) {
return extra_data.get(stylesheet.name(), stylesheet.extra_card_fields);