[summary] Improve role names in SummaryModel

This commit is contained in:
Adriaan de Groot 2021-10-04 12:59:50 +02:00
parent 4731d79a4f
commit d951a9d317
2 changed files with 22 additions and 3 deletions

View File

@ -26,7 +26,9 @@ SummaryModel::SummaryModel( QObject* parent )
QHash< int, QByteArray >
SummaryModel::roleNames() const
{
return { { Qt::DisplayRole, "title" }, { Qt::UserRole, "message" } };
// Not including WidgetRole here because that wouldn't make sense
// in a QML context which is where the roleNames are important.
return { { TitleRole, "title" }, { MessageRole, "message" } };
}
QVariant
@ -36,8 +38,18 @@ SummaryModel::data( const QModelIndex& index, int role ) const
{
return QVariant();
}
const auto item = m_summary.at( index.row() );
return role == Qt::DisplayRole ? item.title : item.message;
auto& item = m_summary.at( index.row() );
switch ( role )
{
case TitleRole:
return item.title;
case MessageRole:
return item.message;
case WidgetRole:
return item.widget ? QVariant::fromValue( item.widget ) : QVariant();
default:
return QVariant();
}
}
int

View File

@ -38,6 +38,13 @@ class SummaryModel : public QAbstractListModel
friend class Config;
public:
enum Roles : int
{
TitleRole = Qt::DisplayRole, // Name of the step
MessageRole = Qt::UserRole, // String saying what it will do
WidgetRole, // Pointer to widget
};
explicit SummaryModel( QObject* parent = nullptr );
int rowCount( const QModelIndex& = QModelIndex() ) const override;
QVariant data( const QModelIndex& index, int role ) const override;