File indexing completed on 2024-05-12 16:01:34
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_NODE_FILTER_PROXY_MODEL_H 0008 #define __KIS_NODE_FILTER_PROXY_MODEL_H 0009 0010 #include <QScopedPointer> 0011 #include <QSortFilterProxyModel> 0012 #include "kis_types.h" 0013 #include "kritaui_export.h" 0014 0015 class KisNodeModel; 0016 class KisNodeDummy; 0017 class KisNodeManager; 0018 0019 0020 class KRITAUI_EXPORT KisNodeFilterProxyModel : public QSortFilterProxyModel 0021 { 0022 Q_OBJECT 0023 public: 0024 KisNodeFilterProxyModel(QObject *parent); 0025 ~KisNodeFilterProxyModel() override; 0026 0027 void setNodeModel(KisNodeModel *model); 0028 0029 bool setData(const QModelIndex &index, const QVariant &value, int role) override; 0030 0031 bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 0032 void setAcceptedLabels(const QSet<int> &value); 0033 void setTextFilter(const QString &text); 0034 0035 KisNodeSP nodeFromIndex(const QModelIndex &index) const; 0036 QModelIndex indexFromNode(KisNodeSP node) const; 0037 0038 void unsetDummiesFacade(); 0039 0040 Q_SIGNALS: 0041 void sigBeforeBeginRemoveRows(const QModelIndex &parent, int start, int end); 0042 0043 public Q_SLOTS: 0044 void setActiveNode(KisNodeSP node); 0045 0046 private Q_SLOTS: 0047 void slotUpdateCurrentNodeFilter(); 0048 void slotBeforeBeginRemoveRows(const QModelIndex &parent, int start, int end); 0049 0050 private: 0051 struct Private; 0052 const QScopedPointer<Private> m_d; 0053 }; 0054 0055 #endif /* __KIS_NODE_FILTER_PROXY_MODEL_H */