[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 > QHash< int, QByteArray >
SummaryModel::roleNames() const 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 QVariant
@ -36,8 +38,18 @@ SummaryModel::data( const QModelIndex& index, int role ) const
{ {
return QVariant(); return QVariant();
} }
const auto item = m_summary.at( index.row() ); auto& item = m_summary.at( index.row() );
return role == Qt::DisplayRole ? item.title : item.message; 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 int

View File

@ -38,6 +38,13 @@ class SummaryModel : public QAbstractListModel
friend class Config; friend class Config;
public: 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 ); explicit SummaryModel( QObject* parent = nullptr );
int rowCount( const QModelIndex& = QModelIndex() ) const override; int rowCount( const QModelIndex& = QModelIndex() ) const override;
QVariant data( const QModelIndex& index, int role ) const override; QVariant data( const QModelIndex& index, int role ) const override;