Keep a set of all the tags from the posts stored

This allows later on to get post-specific tags.
This commit is contained in:
Luca Beltrame 2015-02-20 23:35:13 +01:00
parent f6aa593ee5
commit 942d1ffd1e
2 changed files with 10 additions and 0 deletions

View file

@ -57,6 +57,7 @@ void DanbooruPostModel::addPost(Danbooru::DanbooruPost *post)
beginInsertRows(QModelIndex(), m_items.size(), m_items.size()); beginInsertRows(QModelIndex(), m_items.size(), m_items.size());
m_items.append(post); m_items.append(post);
m_postTags.unite(post->tags());
endInsertRows(); endInsertRows();
} }
@ -147,5 +148,11 @@ QHash< int, QByteArray > DanbooruPostModel::roleNames() const
return roles; return roles;
} }
QStringList DanbooruPostModel::postTags() const
{
return m_postTags.toList();
}
}; };

View file

@ -28,6 +28,7 @@
#include <QAbstractListModel> #include <QAbstractListModel>
#include <QVector> #include <QVector>
#include <QSet>
namespace Danbooru namespace Danbooru
{ {
@ -57,6 +58,7 @@ public:
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
void clear(); void clear();
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
QStringList postTags() const;
enum PostRoles { enum PostRoles {
FileUrlRole = Qt::UserRole + 1001, FileUrlRole = Qt::UserRole + 1001,
@ -69,6 +71,7 @@ public:
private: private:
QVector<DanbooruPost *> m_items; QVector<DanbooruPost *> m_items;
QSet<QString> m_postTags;
public Q_SLOTS: public Q_SLOTS:
/** /**