Add a clear() method to empty the list of the model (better than

creating a new one every time) and rename m_posts to m_items
This commit is contained in:
Luca Beltrame 2013-07-28 17:13:28 +02:00
parent 6a3a866ad5
commit 521bdad42c

View file

@ -22,7 +22,7 @@
// Own // Own
#include "danboorutablemodel.h" #include "danboorupostmodel.h"
#include "libdanbooru/danboorupost.h" #include "libdanbooru/danboorupost.h"
// Qt // Qt
@ -32,47 +32,50 @@
namespace Danbooru { namespace Danbooru {
DanbooruTableModel::DanbooruTableModel(QObject* parent): QAbstractListModel(parent) DanbooruPostModel::DanbooruPostModel(QObject* parent): QAbstractListModel(parent)
{ {
} }
DanbooruTableModel::~DanbooruTableModel() DanbooruPostModel::~DanbooruPostModel()
{ {
qDeleteAll(m_posts);
m_posts.clear(); if (!m_items.isEmpty()) {
qDeleteAll(m_items);
m_items.clear();
}
} }
int DanbooruTableModel::rowCount(const QModelIndex& parent) const int DanbooruPostModel::rowCount(const QModelIndex& parent) const
{ {
Q_UNUSED(parent) Q_UNUSED(parent)
return m_posts.size(); return m_items.size();
} }
void DanbooruTableModel::addPost(Danbooru::DanbooruPost* post) void DanbooruPostModel::addPost(Danbooru::DanbooruPost* post)
{ {
beginInsertRows(QModelIndex(), m_posts.size(), m_posts.size() + 1); beginInsertRows(QModelIndex(), m_items.size(), m_items.size() + 1);
m_posts.append(post); m_items.append(post);
endInsertRows(); endInsertRows();
} }
QVariant DanbooruTableModel::data(const QModelIndex& index, int role) const QVariant DanbooruPostModel::data(const QModelIndex& index, int role) const
{ {
if (!index.isValid()) { if (!index.isValid()) {
return QVariant(); return QVariant();
} }
if (index.row() >= m_posts.size() || index.row() < 0) { if (index.row() >= m_items.size() || index.row() < 0) {
return QVariant(); return QVariant();
} }
if (m_posts.isEmpty()) { if (m_items.isEmpty()) {
return QVariant(); return QVariant();
} }
DanbooruPost* post = m_posts.at(index.row()); DanbooruPost* post = m_items.at(index.row());
if (!post) { if (!post) {
return QVariant(); return QVariant();
@ -98,4 +101,17 @@ namespace Danbooru {
return QVariant(); return QVariant();
} }
void DanbooruPostModel::clear() {
if (m_items.isEmpty()) {
return;
}
beginRemoveRows(QModelIndex(),0, m_items.size());
qDeleteAll(m_items);
m_items.clear();
endRemoveRows();
reset();
}
}; };