From: gregor herrmann Date: Fri, 8 Jul 2011 14:52:32 +0000 (+0000) Subject: Split search keyword string on whitespace. X-Git-Tag: 0.5.1~17 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/47eda2bf0b2819f2e24ea50fc18604e96e246a95 Split search keyword string on whitespace. --- diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp index f11ead7..9bd3609 100644 --- a/src/sql/sqlengine.cpp +++ b/src/sql/sqlengine.cpp @@ -313,9 +313,12 @@ int SqlEngine::searchEvent(int aConferenceId, const QHash &aCol } sql += QString("WHERE EVENT.xid_conference = %1 AND (").arg( aConferenceId ); + QStringList searchKeywords = aKeyword.split(QRegExp("\\s+")); foreach (QString table, aColumns.uniqueKeys()){ foreach (QString column, aColumns.values(table)){ - sql += QString("%1.%2 LIKE '\%' || :%1%2 || '\%' OR ").arg( table, column ); + for (int i=0; i < searchKeywords.count(); i++){ + sql += QString("%1.%2 LIKE '\%' || :%1%2 || '\%' OR ").arg( table, column ); + } } } sql.chop( QString(" OR ").length() ); @@ -325,7 +328,9 @@ int SqlEngine::searchEvent(int aConferenceId, const QHash &aCol query.prepare(sql); foreach (QString table, aColumns.uniqueKeys()){ foreach (QString column, aColumns.values(table)){ - query.bindValue(QString(":%1%2").arg(table, column), aKeyword ); + foreach (QString keyword, searchKeywords){ + query.bindValue(QString(":%1%2").arg(table, column), keyword ); + } } }