8 #include "itemsmodel.h" 10 #include <knewstuffcore_debug.h> 11 #include <KLocalizedString> 14 #include "imageloader_p.h" 24 ItemsModel::~ItemsModel()
28 int ItemsModel::rowCount(
const QModelIndex & )
const 30 return m_entries.count();
38 EntryInternal entry = m_entries[index.
row()];
42 int ItemsModel::row(
const EntryInternal &entry)
const 44 return m_entries.indexOf(entry);
54 void ItemsModel::addEntry(
const EntryInternal &entry)
57 if (!m_entries.contains(entry)) {
58 QString preview = entry.previewUrl(EntryInternal::PreviewSmall1);
59 if (!m_hasPreviewImages && !preview.
isEmpty()) {
60 m_hasPreviewImages =
true;
62 Q_EMIT dataChanged(index(0, 0), index(rowCount() - 1, 0));
66 qCDebug(KNEWSTUFFCORE) <<
"adding entry " << entry.name() <<
" to the model";
67 beginInsertRows(
QModelIndex(), m_entries.count(), m_entries.count());
68 m_entries.append(entry);
71 if (!preview.
isEmpty() && entry.previewImage(EntryInternal::PreviewSmall1).isNull()) {
72 m_engine->loadPreview(entry, EntryInternal::PreviewSmall1);
77 void ItemsModel::removeEntry(
const EntryInternal &entry)
79 qCDebug(KNEWSTUFFCORE) <<
"removing entry " << entry.name() <<
" from the model";
80 int index = m_entries.indexOf(entry);
83 m_entries.removeAt(index);
88 void ItemsModel::slotEntryChanged(
const EntryInternal &entry)
90 int i = m_entries.indexOf(entry);
92 Q_EMIT dataChanged(entryIndex, entryIndex);
95 void ItemsModel::clearEntries()
102 void ItemsModel::slotEntryPreviewLoaded(
const EntryInternal &entry, EntryInternal::PreviewType type)
105 if (type != EntryInternal::PreviewSmall1) {
108 slotEntryChanged(entry);
111 bool ItemsModel::hasPreviewImages()
const 113 return m_hasPreviewImages;
Contains the core functionality for handling interaction with NewStuff providers. ...
Encapsulates a KNSCore::Engine for use in Qt Quick.
bool isEmpty() const const
QVariant fromValue(const T &value)
KNewStuff data entry container.