diff options
author | Jonathan Marsden <jmarsden@fastmail.fm> | 2009-10-08 22:55:24 -0700 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-10-21 22:48:29 -0400 |
commit | f059e59ca0acc7229512daa13718c4e61bd8c4af (patch) | |
tree | 5bf4da987c725bbbf59c8e4f54bd2b139eab3e11 /src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp | |
parent | e9a6c09d68a7682c562e75d65dceac32446d3b79 (diff) | |
parent | dd2f7ce46df53f2c377c02d1bf4df8adcf092072 (diff) |
Imported Debian patch 2.3-1
Diffstat (limited to 'src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp')
-rw-r--r-- | src/backend/bookshelfmodel/btmodulenamefilterproxymodel.cpp | 43 |
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; + } +} |