diff --git a/src/model/danboorupostmodel.cpp b/src/model/danboorupostmodel.cpp index 169b87d..be94af6 100644 --- a/src/model/danboorupostmodel.cpp +++ b/src/model/danboorupostmodel.cpp @@ -98,6 +98,31 @@ QVariant DanbooruPostModel::data(const QModelIndex &index, int role) const return post->fileUrl().fileName(); } + if (role == DanbooruPostModel::PixmapRole) { + QPixmap pixmap = post->pixmap(); + return pixmap; + } + + if (role == FileUrlRole) { + return post->fileUrl(); + } + + if (role == ThumbUrlRole) { + return post->thumbnailUrl(); + } + + if (role == SizeRole) { + return post->size(); + } + + if (role == ResolutionRole) { + return QSize(post->width(), post->height()); + } + + if (role == RatingRole) { + return post->rating(); + } + return QVariant(); } @@ -115,4 +140,18 @@ void DanbooruPostModel::clear() reset(); } +QHash< int, QByteArray > DanbooruPostModel::roleNames() const +{ + QHash roles; + roles[PixmapRole] = "thumbPix"; + roles[FileUrlRole] = "fileUrl"; + roles[ThumbUrlRole] = "thumbnailUrl"; + roles[RatingRole] = "rating"; + roles[TagRole] = "tags"; + roles[SizeRole] = "fileSize"; + roles[ResolutionRole] = "resolution"; + return roles; +} + + }; diff --git a/src/model/danboorupostmodel.h b/src/model/danboorupostmodel.h index 1e57b20..de1649e 100644 --- a/src/model/danboorupostmodel.h +++ b/src/model/danboorupostmodel.h @@ -59,6 +59,17 @@ public: int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; void clear(); + QHash roleNames() const; + + enum PostRoles { + PixmapRole = Qt::UserRole + 1000, + FileUrlRole = Qt::UserRole + 1001, + ThumbUrlRole = Qt::UserRole + 1002, + SizeRole = Qt::UserRole + 1003, + RatingRole = Qt::UserRole + 1004, + TagRole = Qt::UserRole + 1005, + ResolutionRole = Qt::UserRole + 1006 + }; private: QVector m_items;