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 }