File indexing completed on 2024-05-12 05:13:03

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 #include "filtercolumnsproxymodel.h"
0010 
0011 using namespace Akregator;
0012 
0013 FilterColumnsProxyModel::FilterColumnsProxyModel(QObject *parent)
0014     : QSortFilterProxyModel(parent)
0015 {
0016 }
0017 
0018 bool FilterColumnsProxyModel::filterAcceptsColumn(int source_column, const QModelIndex &) const
0019 {
0020     return source_column >= m_vecSize ? m_mode == Blacklist : m_columnStates[source_column];
0021 }
0022 
0023 void FilterColumnsProxyModel::setColumnEnabled(int col, bool enabled)
0024 {
0025     if (col >= m_columnStates.count()) {
0026         m_columnStates.resize(col + 1);
0027         m_vecSize = col + 1;
0028     }
0029     m_columnStates[col] = enabled;
0030 }
0031 
0032 bool FilterColumnsProxyModel::isColumnEnabled(int col) const
0033 {
0034     Q_ASSERT(col >= 0);
0035     return col < m_columnStates.count() ? m_columnStates[col] : m_mode == Blacklist;
0036 }
0037 
0038 FilterColumnsProxyModel::Mode FilterColumnsProxyModel::mode() const
0039 {
0040     return m_mode;
0041 }
0042 
0043 void FilterColumnsProxyModel::setMode(Mode mode)
0044 {
0045     m_mode = mode;
0046 }