1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/*
objectidfilterproxymodel.h
This file is part of GammaRay, the Qt application inspection and manipulation tool.
SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
Author: Filipe Azevedo <filipe.azevedo@kdab.com>
SPDX-License-Identifier: GPL-2.0-or-later
Contact KDAB at <info@kdab.com> for commercial licensing options.
*/
#ifndef GAMMARAY_OBJECTIDFILTERPROXYMODEL_H
#define GAMMARAY_OBJECTIDFILTERPROXYMODEL_H
#include "gammaray_common_export.h"
#include <common/objectid.h>
#include <QSortFilterProxyModel>
namespace GammaRay {
/**
* @brief A RecursiveFilterProxyModel for ObjectIds.
*
* Filter in and sort according to the objects list.
*/
class GAMMARAY_COMMON_EXPORT ObjectIdsFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
public:
/**
* Constructor.
* @param parent is the parent object for this instance.
*/
explicit ObjectIdsFilterProxyModel(QObject *parent = nullptr);
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;
GammaRay::ObjectIds ids() const;
void setIds(const GammaRay::ObjectIds &ids);
protected:
/**
* Determines if the item in the specified row can be included in the model.
* @param source_row is a non-zero integer representing the row of the item.
* @param source_parent is the parent QModelIndex for this model.
* @return true if the item in the row can be included in the model;
* otherwise returns false.
*/
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
/**
* Determines if the specified ObjectID can be included in the model.
* @param id is a ref to the ObjectId to test.
* @return true if the ObjectId can be included in the model; false otherwise.
*/
bool filterAcceptsObjectId(const GammaRay::ObjectId &id) const;
private:
GammaRay::ObjectIds m_ids;
};
}
#endif // GAMMARAY_OBJECIDFILTERPROXYMODEL_H
|