void CommitDetailsTest::test_index() { CommitDetails cd; QVERIFY( !cd.index(0, 0).isValid() ); cd.setOption("Option1", "OldVal", "NewVal"); QModelIndex index = cd.index(0, 0); CommitDetailsItem * item = static_cast<CommitDetailsItem*>(index.internalPointer()); QVERIFY( is_not_null(item) ); QCOMPARE( item->optionName(), QString("Option1") ); QCOMPARE( item->oldValue(), QString("OldVal") ); QCOMPARE( item->currentValue(), QString("NewVal") ); QVERIFY( !cd.index(0, 0, index).isValid() ); }
QVariant CommitDetails::data(const QModelIndex &index, int role) const { QVariant returnValue; if(role == Qt::DisplayRole && index.isValid()) { int rowNumber = index.row(); int colNumber = index.column(); if(rowNumber >= 0 && rowNumber < m_items.size()) { CommitDetailsItem * item = m_items.at(rowNumber); switch (colNumber) { case 0: returnValue = item->optionName(); break; case 1: { QString oldValue = item->oldValue(); returnValue = oldValue.isEmpty() ? "--" : QString("\"%1\"").arg(oldValue); break; } case 2: { QString value = item->currentValue(); returnValue = value.isEmpty() ? "--" : QString("\"%1\"").arg(value); break; } default: break; } } } return returnValue; }