diff options
| author | Frank Reininghaus <[email protected]> | 2013-09-04 21:34:03 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-09-04 21:37:01 +0200 |
| commit | 8f7c3619ec734bbf31ae81315a6548db9cbd19aa (patch) | |
| tree | f7706c4e400baf6fd73834e569271307a2137338 /src/kitemviews/kstandarditemlistwidget.h | |
| parent | a4ef4bbfdebad708e4b3c772c1ce3e236a4da145 (diff) | |
Try to avoid calling the model's data method if only "text" is needed
Currently, KStandardItemListWidgetInformant::itemSizeHint() calls the
model's data(int) method for every single item, but the full data is
actually only needed for the size calculation in Compact View. In
Details View, no data is needed at all to determine the size required
for the item, and in Icons View, only the name is needed.
This patch makes it possible for subclasses of
KStandardItemListWidgetInformant to provide an alternative way to
obtain the "text", and implements this in the subclass
KFileItemListWidgetInformant.
The final goal is to achieve that the QHash which contains all data
for a file item is only created if it is really needed, e.g., because
the view needs access to the data for displaying the item on the
screen.
REVIEW: 112253
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.h')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h index 4bf6116fd..7dd93b2b8 100644 --- a/src/kitemviews/kstandarditemlistwidget.h +++ b/src/kitemviews/kstandarditemlistwidget.h @@ -45,6 +45,15 @@ public: const KItemListView* view) const; protected: /** + * @return The value of the "text" role. The default implementation returns + * view->model()->data(index)["text"]. If a derived class can + * prevent the (possibly expensive) construction of the + * QHash<QByteArray, QVariant> returned by KItemModelBase::data(int), + * it can reimplement this function. + */ + virtual QString itemText(int index, const KItemListView* view) const; + + /** * @return String representation of the role \a role. The representation of * a role might depend on other roles, so the values of all roles * are passed as parameter. |
