File indexing completed on 2024-05-05 05:13:11
0001 /* 0002 This file is part of Akregator. 0003 0004 SPDX-FileCopyrightText: 2008 Frank Osterfeld <osterfeld@kde.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0007 */ 0008 0009 #pragma once 0010 0011 #include <QList> 0012 #include <QSortFilterProxyModel> 0013 0014 namespace Akregator 0015 { 0016 class FilterColumnsProxyModel : public QSortFilterProxyModel 0017 { 0018 public: 0019 enum Mode { 0020 Blacklist, 0021 Whitelist, 0022 }; 0023 0024 explicit FilterColumnsProxyModel(QObject *parent = nullptr); 0025 0026 void setColumnEnabled(int col, bool enabled = true); 0027 [[nodiscard]] bool isColumnEnabled(int col) const; 0028 0029 [[nodiscard]] Mode mode() const; 0030 void setMode(Mode mode); 0031 0032 private: 0033 [[nodiscard]] bool filterAcceptsColumn(int source_column, const QModelIndex &source_parent) const override; 0034 0035 private: 0036 QList<bool> m_columnStates; 0037 int m_vecSize = 0; 0038 Mode m_mode = Whitelist; 0039 }; 0040 } // namespace Akregator