From 657894624521b580f59ff5f58b9c0e9be159dc1c Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 20 Dec 2017 21:18:54 +0100 Subject: QListWidgetItem/QStandardItem: pass role to dataChanged() signal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QAbstractItemModel::dataChanged() gained an optional role parameter with Qt5 which was not filled within QListWidgetItem/QStandardItem setData() functions Task-number: QTBUG-55903 Task-number: QTBUG-63766 Change-Id: I4da9346ef8401cc8633dc4b2ea7d00451d1e3942 Reviewed-by: Luca Beldi Reviewed-by: Thorbjørn Lund Martsum --- .../itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp') diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp index c0ef4f271e..d393ac70da 100644 --- a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp +++ b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp @@ -137,6 +137,7 @@ private: QVector rcParent; QVector rcFirst; QVector rcLast; + QVector currentRoles; //return true if models have the same structure, and all child have the same text bool compareModels(QStandardItemModel *model1, QStandardItemModel *model2); @@ -186,6 +187,12 @@ void tst_QStandardItemModel::init() connect(m_model, SIGNAL(columnsRemoved(QModelIndex,int,int)), this, SLOT(columnsRemoved(QModelIndex,int,int))); + connect(m_model, &QAbstractItemModel::dataChanged, + this, [this](const QModelIndex &, const QModelIndex &, const QVector &roles) + { + currentRoles = roles; + }); + rcFirst.fill(-1); rcLast.fill(-1); } @@ -712,15 +719,20 @@ void tst_QStandardItemModel::checkChildren() void tst_QStandardItemModel::data() { + currentRoles.clear(); // bad args m_model->setData(QModelIndex(), "bla", Qt::DisplayRole); + QCOMPARE(currentRoles, {}); QIcon icon; for (int r=0; r < m_model->rowCount(); ++r) { for (int c=0; c < m_model->columnCount(); ++c) { m_model->setData(m_model->index(r,c), "initialitem", Qt::DisplayRole); + QCOMPARE(currentRoles, QVector({Qt::DisplayRole, Qt::EditRole})); m_model->setData(m_model->index(r,c), "tooltip", Qt::ToolTipRole); + QCOMPARE(currentRoles, {Qt::ToolTipRole}); m_model->setData(m_model->index(r,c), icon, Qt::DecorationRole); + QCOMPARE(currentRoles, {Qt::DecorationRole}); } } -- cgit v1.2.3