File indexing completed on 2024-05-12 17:08:30
0001 /* 0002 * SPDX-FileCopyrightText: 2021 David Redondo <kde@david-redondo.de> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "ReverseColumnsProxyModel.h" 0008 0009 ReverseColumnsProxyModel::ReverseColumnsProxyModel(QObject *parent) 0010 : KRearrangeColumnsProxyModel(parent) 0011 { 0012 } 0013 0014 void ReverseColumnsProxyModel::setSourceModel(QAbstractItemModel *sourceModel) 0015 { 0016 auto oldModel = this->sourceModel(); 0017 if (oldModel == sourceModel) { 0018 return; 0019 } 0020 if (oldModel) { 0021 oldModel->disconnect(this); 0022 } 0023 KRearrangeColumnsProxyModel::setSourceModel(sourceModel); 0024 if (sourceModel) { 0025 connect(sourceModel, &QAbstractItemModel::columnsInserted, this, &ReverseColumnsProxyModel::reverseColumns); 0026 connect(sourceModel, &QAbstractItemModel::columnsRemoved, this, &ReverseColumnsProxyModel::reverseColumns); 0027 connect(sourceModel, &QAbstractItemModel::modelReset, this, &ReverseColumnsProxyModel::reverseColumns); 0028 reverseColumns(); 0029 } 0030 } 0031 void ReverseColumnsProxyModel::reverseColumns() 0032 { 0033 if (!sourceModel()) { 0034 return; 0035 } 0036 QVector<int> columns(sourceModel()->columnCount()); 0037 std::iota(columns.rbegin(), columns.rend(), 0); 0038 setSourceColumns(columns); 0039 }