2 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #ifndef KITEMLISTSIZEHINTRESOLVER_H
8 #define KITEMLISTSIZEHINTRESOLVER_H
10 #include "dolphin_export.h"
11 #include "kitemviews/kitemmodelbase.h"
19 * @brief Calculates and caches the sizehints of items in KItemListView.
21 class DOLPHIN_EXPORT KItemListSizeHintResolver
24 explicit KItemListSizeHintResolver(const KItemListView
*itemListView
);
25 virtual ~KItemListSizeHintResolver();
27 QSizeF
sizeHint(int index
);
28 bool isElided(int index
);
30 void itemsInserted(const KItemRangeList
&itemRanges
);
31 void itemsRemoved(const KItemRangeList
&itemRanges
);
32 void itemsMoved(const KItemRange
&range
, const QList
<int> &movedToIndexes
);
33 void itemsChanged(int index
, int count
, const QSet
<QByteArray
> &roles
);
39 const KItemListView
*m_itemListView
;
40 mutable QVector
<std::pair
<qreal
/* height */, bool /* isElided */>> m_logicalHeightHintCache
;
41 mutable qreal m_logicalWidthHint
;
42 mutable qreal m_minHeightHint
;
43 bool m_needsResolving
;