ctkSearchBoxTest2.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Qt includes
  2. #include <QApplication>
  3. #include <QDebug>
  4. #include <QLabel>
  5. #include <QListView>
  6. #include <QSortFilterProxyModel>
  7. #include <QStringListModel>
  8. #include <QTimer>
  9. #include <QVBoxLayout>
  10. //CTK includes
  11. #include "ctkSearchBox.h"
  12. // STD includes
  13. #include <cstdlib>
  14. #include <iostream>
  15. // ------------------------------------------------------------------------------
  16. int ctkSearchBoxTest2(int argc, char* argv[])
  17. {
  18. QApplication app(argc, argv);
  19. QStringList stringList;
  20. stringList<<"totoa"<<"TOTOaa"<<"tic"<<"tac"<<"nice"<<"slicer"<<"monday"<<"july"<<"phone";
  21. ctkSearchBox search3;
  22. search3.show();
  23. search3.setText("phone");
  24. QRegExp regExp(search3.text(),Qt::CaseInsensitive, QRegExp::Wildcard);
  25. //QStringList testFilter = stringList.filter(search3.text());
  26. QStringList testFilter = stringList.filter(regExp);
  27. qDebug() << "Result of Test Filter : " << testFilter;
  28. if (testFilter.size() >= stringList.size())
  29. {
  30. qDebug() << "Line : " << __LINE__<< " error with the filter : " << search3.text();
  31. }
  32. QStringListModel listModel(stringList);
  33. QSortFilterProxyModel filterModel;
  34. filterModel.setSourceModel(&listModel);
  35. filterModel.setFilterCaseSensitivity(Qt::CaseInsensitive);
  36. filterModel.setFilterWildcard(search3.text());
  37. QObject::connect(&search3, SIGNAL(textChanged(QString)),
  38. &filterModel, SLOT(setFilterWildcard(QString)));
  39. QListView listView;
  40. listView.setModel(&filterModel);
  41. listView.show();
  42. if (argc < 2 || QString(argv[1]) != "-I" )
  43. {
  44. QTimer::singleShot(200, &app, SLOT(quit()));
  45. }
  46. return app.exec();
  47. }