From 8545381f0ae8a380626916fedfcbbe0c73b9e51f Mon Sep 17 00:00:00 2001 From: David Faure Date: Sun, 3 Jul 2016 11:43:50 +0200 Subject: [PATCH] Add KExtraColumnsProxyModel::removeColumn, will be needed by StatisticsProxyModel --- autotests/kextracolumnsproxymodeltest.cpp | 2 ++ src/kextracolumnsproxymodel.cpp | 6 ++++++ src/kextracolumnsproxymodel.h | 9 +++++++++ 3 files changed, 17 insertions(+) diff --git a/autotests/kextracolumnsproxymodeltest.cpp b/autotests/kextracolumnsproxymodeltest.cpp index 4b9d95f..fbc2e5a 100644 --- a/autotests/kextracolumnsproxymodeltest.cpp +++ b/autotests/kextracolumnsproxymodeltest.cpp @@ -52,7 +52,9 @@ private: TwoExtraColumnsProxyModel() : KExtraColumnsProxyModel(), m_extraColumnData('Z') { appendColumn(QStringLiteral("H5")); + appendColumn(QStringLiteral("WRONG")); // removed two lines below, just to test removeColumn appendColumn(QStringLiteral("H6")); + removeColumn(1); } QVariant extraColumnData(const QModelIndex &, int row, int extraColumn, int role) const Q_DECL_OVERRIDE { diff --git a/src/kextracolumnsproxymodel.cpp b/src/kextracolumnsproxymodel.cpp index 8c64b9d..4183ec9 100644 --- a/src/kextracolumnsproxymodel.cpp +++ b/src/kextracolumnsproxymodel.cpp @@ -61,6 +61,12 @@ void KExtraColumnsProxyModel::appendColumn(const QString &header) d->m_extraHeaders.append(header); } +void KExtraColumnsProxyModel::removeColumn(int idx) +{ + Q_D(KExtraColumnsProxyModel); + d->m_extraHeaders.remove(idx); +} + bool KExtraColumnsProxyModel::setExtraColumnData(const QModelIndex &parent, int row, int extraColumn, const QVariant &data, int role) { Q_UNUSED(parent); diff --git a/src/kextracolumnsproxymodel.h b/src/kextracolumnsproxymodel.h index 6be8be9..fc595d9 100644 --- a/src/kextracolumnsproxymodel.h +++ b/src/kextracolumnsproxymodel.h @@ -65,9 +65,18 @@ public: /** * Appends an extra column. * @param header an optional text for the horizontal header + * This does not emit any signals - do it in the initial setup phase */ void appendColumn(const QString &header = QString()); + /** + * Removes an extra column. + * @param idx index of the extra column (starting from 0). + * This does not emit any signals - do it in the initial setup phase + * @since 5.24 + */ + void removeColumn(int idx); + /** * This method is called by data() for extra columns. * Reimplement this method to return the data for the extra columns.