From b72f1d53558344392daa916f69ece7db8c7a9d89 Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Fri, 21 Mar 2014 17:30:03 +0100 Subject: added functionality to filter box --- src/sessiontreemodel.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/sessiontreemodel.cpp') diff --git a/src/sessiontreemodel.cpp b/src/sessiontreemodel.cpp index 2078aaa..722850e 100644 --- a/src/sessiontreemodel.cpp +++ b/src/sessiontreemodel.cpp @@ -172,13 +172,33 @@ void SessionTreeModel::removeItem(const QString& name) { QList SessionTreeModel::lookForItem(const QString& label) { QList result; - for (int i = 0; i < root_->childCount(); ++i) { - SessionTreeItem* item = root_->child(i); - if (item->session()->shortDescription().contains(label, Qt::CaseInsensitive)) { - result.append(const_cast(item->session())); + if (label.startsWith("\"")) { + QString searchTerm = label; + searchTerm.remove(0, 1); + if (label.endsWith("\"")) { + searchTerm.chop(1); + } + QList items; + items.append(searchTerm); + for (int i = 0; i < root_->childCount(); ++i) { + SessionTreeItem* item = root_->child(i); + if (item->session()->containsKeywords(items)) { + result.append(const_cast(item->session())); + } + } + } else { + QList items = label.split(" ", QString::SkipEmptyParts); + + for (int i = 0; i < root_->childCount(); ++i) { + SessionTreeItem* item = root_->child(i); + if (item->session()->containsKeywords(items)) { + result.append(const_cast(item->session())); + } } } + return result; + } void SessionTreeModel::updateView() { -- cgit v1.2.3-55-g7522