From c3fb74ec2352fe27d065307611f609d12fb9909b Mon Sep 17 00:00:00 2001 From: "craig.p.drummond" Date: Mon, 1 Jul 2013 19:53:45 +0000 Subject: [PATCH] Search in dynamic page now also searches rules --- ChangeLog | 1 + dynamic/dynamic.h | 1 + dynamic/dynamicproxymodel.cpp | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8b586201b..fc7f98493 100644 --- a/ChangeLog +++ b/ChangeLog @@ -102,6 +102,7 @@ Live. 65. Place search fields on bottom of views, and hide by default. Show when Ctrl-F is used for views, and Ctrl-Shift-F for playqueue. +66. When searching in dynamic page, also search rules themselves. 1.0.3 ----- diff --git a/dynamic/dynamic.h b/dynamic/dynamic.h index 0d439044b..bc52272b8 100644 --- a/dynamic/dynamic.h +++ b/dynamic/dynamic.h @@ -106,6 +106,7 @@ public: QVariant data(const QModelIndex &, int) const; Qt::ItemFlags flags(const QModelIndex &index) const; Entry entry(const QString &e); + Entry entry(int row) const { return row>=0 && rowdata(sourceModel()->index(sourceRow, 0, sourceParent), Qt::DisplayRole).toString()); + if (matchesFilter(QStringList() << sourceModel()->data(sourceModel()->index(sourceRow, 0, sourceParent), Qt::DisplayRole).toString())) { + return true; + } + + Dynamic::Entry item = Dynamic::self()->entry(sourceRow); + foreach (const Dynamic::Rule & r, item.rules) { + Dynamic::Rule::ConstIterator it=r.constBegin(); + Dynamic::Rule::ConstIterator end=r.constEnd(); + for (; it!=end; ++it) { + if (matchesFilter(QStringList() << it.value())) { + return true; + } + } + } + return false; }