summaryrefslogtreecommitdiff
path: root/src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp
diff options
context:
space:
mode:
authorJonathan Marsden <jmarsden@fastmail.fm>2009-10-08 22:55:24 -0700
committerRoberto C. Sanchez <roberto@connexer.com>2014-10-21 22:48:29 -0400
commitf059e59ca0acc7229512daa13718c4e61bd8c4af (patch)
tree5bf4da987c725bbbf59c8e4f54bd2b139eab3e11 /src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp
parente9a6c09d68a7682c562e75d65dceac32446d3b79 (diff)
parentdd2f7ce46df53f2c377c02d1bf4df8adcf092072 (diff)
Imported Debian patch 2.3-1
Diffstat (limited to 'src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp')
-rw-r--r--src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp b/src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp
new file mode 100644
index 0000000..f416175
--- /dev/null
+++ b/src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp
@@ -0,0 +1,43 @@
+/*********
+*
+* In the name of the Father, and of the Son, and of the Holy Spirit.
+*
+* This file is part of BibleTime's source code, http://www.bibletime.info/.
+*
+* Copyright 1999-2009 by the BibleTime developers.
+* The BibleTime source code is licensed under the GNU General Public License
+* version 2.0.
+*
+**********/
+
+#include "backend/bookshelfmodel/btmodulenamefilterproxymodel.h"
+
+BtModuleNameFilterProxyModel::BtModuleNameFilterProxyModel(QObject *parent)
+ : QSortFilterProxyModel(parent), m_enabled(true)
+{
+ setFilterCaseSensitivity(Qt::CaseInsensitive);
+}
+
+BtModuleNameFilterProxyModel::~BtModuleNameFilterProxyModel() {
+ // Intentionally empty
+}
+
+bool BtModuleNameFilterProxyModel::filterAcceptsRow(int row,
+ const QModelIndex &p) const
+{
+ if (!m_enabled) return true;
+
+ const QAbstractItemModel *m(sourceModel());
+ Q_ASSERT(m != 0);
+
+ QModelIndex itemIndex(m->index(row, 0, p));
+ int numChildren(m->rowCount(itemIndex));
+ if (numChildren == 0) {
+ return QSortFilterProxyModel::filterAcceptsRow(row, p);
+ } else {
+ for (int i(0); i < numChildren; i++) {
+ if (filterAcceptsRow(i, itemIndex)) return true;
+ }
+ return false;
+ }
+}