diff --git a/apps/opencs/view/filter/editwidget.cpp b/apps/opencs/view/filter/editwidget.cpp index 997ecf546..4d77ff02f 100644 --- a/apps/opencs/view/filter/editwidget.cpp +++ b/apps/opencs/view/filter/editwidget.cpp @@ -2,6 +2,7 @@ #include "editwidget.hpp" #include +#include #include "../../model/world/data.hpp" @@ -59,6 +60,11 @@ void CSVFilter::EditWidget::filterRowsInserted (const QModelIndex& parent, int s void CSVFilter::EditWidget::createFilterRequest (std::vector< std::pair< std::string, std::vector< std::string > > >& filterSource) { + clear(); + + std::string filter(generateFilter(*filterSource.begin())); + insert(QString::fromStdString(filter)); + for (unsigned i = 0; i < filterSource.size(); ++i) //test { std::cout< >& seekedString) +{ + const unsigned columns = seekedString.second.size(); + + bool multipleColumns = false; + switch (columns) + { + case 0: //empty + return ""; //no column to filter + break; + + case 1: //one column to look for + multipleColumns = false; + break; + + default: + multipleColumns = true; + break; + } + + std::stringstream ss; + if (multipleColumns) + { + ss<<"!or("; + for (unsigned i = 0; i < columns; ++i) + { + ss<<"string("<<'"'< filter); + private: + std::string generateFilter(std::pair >& seekedString); + private slots: void textChanged (const QString& text);