┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodelrolesupdater.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kfileitemmodelrolesupdater.h')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.h b/src/kitemviews/kfileitemmodelrolesupdater.h
index fc6e78295..61e85188e 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.h
+++ b/src/kitemviews/kfileitemmodelrolesupdater.h
@@ -318,6 +318,13 @@ private:
QHash<QByteArray, QVariant> rolesData(const KFileItem &item, int index);
/**
+ * Sets \a data on the model item at \a index without re-entering
+ * slotItemsChanged() for this self-induced change (other listeners, e.g. the
+ * view, still get the change). Replaces a manual disconnect/setData/connect.
+ */
+ void setModelData(int index, const QHash<QByteArray, QVariant> &data);
+
+ /**
* Must be invoked if a property has been changed that affects
* the look of the preview. Takes care to update all previews.
*/
@@ -361,6 +368,10 @@ private:
// during the roles-updater has been paused by setPaused().
bool m_clearPreviews;
+ // True while setModelData() applies a self-induced change, so that
+ // slotItemsChanged() ignores it instead of resolving roles again.
+ bool m_applyingChangesToModel = false;
+
// Remembers which items have been handled already, to prevent that
// previews and other expensive roles are determined again.
QSet<KFileItem> m_finishedItems;