1 /* 2 modelutils.h 3 4 This file is part of GammaRay, the Qt application inspection and 5 manipulation tool. 6 7 Copyright (C) 2010-2021 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com 8 Author: Kevin Funk <kevin.funk@kdab.com> 9 10 Licensees holding valid commercial KDAB GammaRay licenses may use this file in 11 accordance with GammaRay Commercial License Agreement provided with the Software. 12 13 Contact info@kdab.com if any conditions of this licensing are not clear to you. 14 15 This program is free software; you can redistribute it and/or modify 16 it under the terms of the GNU General Public License as published by 17 the Free Software Foundation, either version 2 of the License, or 18 (at your option) any later version. 19 20 This program is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 GNU General Public License for more details. 24 25 You should have received a copy of the GNU General Public License 26 along with this program. If not, see <http://www.gnu.org/licenses/>. 27 */ 28 29 #ifndef GAMMARAY_MODELUTILS_H 30 #define GAMMARAY_MODELUTILS_H 31 32 #include "gammaray_common_export.h" 33 34 #include <QModelIndex> 35 36 namespace GammaRay { 37 namespace ModelUtils { 38 39 typedef bool (*MatchAcceptor)(const QVariant &); 40 41 /** 42 * Return a list of items that are accepted by an acceptor function 43 * This class extends the functionality provided in QAbstractItemModel::match(...) 44 * 45 * If (accept(v)) for an item v in the model returns true, it will be appended 46 * to the result list 47 * 48 * @param accept Function in the form 'bool f(const QVariant&)' 49 * 50 * @see QAbstractItemModel::match(...) 51 */ 52 GAMMARAY_COMMON_EXPORT QModelIndexList match(const QModelIndex &start, int role, 53 MatchAcceptor accept, int hits = 1, 54 Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchWrap)); 55 } 56 } 57 58 Q_DECLARE_METATYPE(GammaRay::ModelUtils::MatchAcceptor) 59 60 #endif // GAMMARAY_MODELUTILS_H 61