diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index d0096550a6..b5e1058433 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -678,6 +678,16 @@ void KItemListView::paint(QPainter* painter, const QStyleOptionGraphicsItem* opt } } +QVariant KItemListView::itemChange(GraphicsItemChange change, const QVariant &value) +{ + if (change == QGraphicsItem::ItemSceneHasChanged && scene()) { + if (!scene()->views().isEmpty()) { + m_styleOption.palette = scene()->views().at(0)->palette(); + } + } + return QGraphicsItem::itemChange(change, value); +} + void KItemListView::setItemSize(const QSizeF& size) { const QSizeF previousSize = m_itemSize; diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index 6d609a9df5..6467b8c915 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -321,6 +321,7 @@ signals: void roleEditingFinished(int index, const QByteArray& role, const QVariant& value); protected: + virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); void setItemSize(const QSizeF& size); void setStyleOption(const KItemListStyleOption& option);