Add a new type of role to ComicModel to display a title composed with the available info

This commit is contained in:
Luis Ángel San Martín 2022-10-09 11:22:06 +02:00
parent 41767958d0
commit 0a00fd3020
2 changed files with 10 additions and 1 deletions

View File

@ -1,6 +1,7 @@
#include <QtGui> #include <QtGui>
#include <QtDebug> #include <QtDebug>
#include <QStringBuilder>
#include <limits> #include <limits>
#include "comic_item.h" #include "comic_item.h"
@ -237,6 +238,7 @@ QHash<int, QByteArray> ComicModel::roleNames() const
roles[HasBeenOpenedRole] = "has_been_opened"; roles[HasBeenOpenedRole] = "has_been_opened";
roles[CoverPathRole] = "cover_path"; roles[CoverPathRole] = "cover_path";
roles[PublicationDate] = "date"; roles[PublicationDate] = "date";
roles[ReadableTitle] = "readable_title";
return roles; return roles;
} }
@ -275,7 +277,13 @@ QVariant ComicModel::data(const QModelIndex &index, int role) const
return item->data(Number); return item->data(Number);
else if (role == TitleRole) else if (role == TitleRole)
return item->data(Title).isNull() ? item->data(FileName) : item->data(Title); return item->data(Title).isNull() ? item->data(FileName) : item->data(Title);
else if (role == FileNameRole) else if (role == ReadableTitle) {
QString title;
if (!item->data(Number).isNull()) {
title = title % "#" % item->data(Number).toString() % " ";
}
return QVariant(title % (item->data(Title).isNull() ? item->data(FileName).toString() : item->data(Title).toString()));
} else if (role == FileNameRole)
return item->data(FileName); return item->data(FileName);
else if (role == RatingRole) else if (role == RatingRole)
return item->data(Rating); return item->data(Rating);

View File

@ -54,6 +54,7 @@ public:
HasBeenOpenedRole, HasBeenOpenedRole,
CoverPathRole, CoverPathRole,
PublicationDateRole, PublicationDateRole,
ReadableTitle,
}; };
enum Mode { enum Mode {