+void KItemListGroupHeader::setRole(const QByteArray &role)
+{
+ if (m_role != role) {
+ const QByteArray previous = m_role;
+ m_role = role;
+ update();
+ roleChanged(role, previous);
+ }
+}
+
+QByteArray KItemListGroupHeader::role() const
+{
+ return m_role;
+}
+
+void KItemListGroupHeader::setData(const QVariant &data)
+{
+ if (m_data != data) {
+ const QVariant previous = m_data;
+ m_data = data;
+ update();
+ dataChanged(data, previous);
+ }
+}
+
+QVariant KItemListGroupHeader::data() const
+{
+ return m_data;
+}
+
+void KItemListGroupHeader::setStyleOption(const KItemListStyleOption &option)
+{
+ if (m_styleOption == option) {
+ return;
+ }
+
+ const KItemListStyleOption previous = m_styleOption;
+ m_styleOption = option;
+ m_dirtyCache = true;
+ styleOptionChanged(option, previous);
+}
+
+const KItemListStyleOption &KItemListGroupHeader::styleOption() const
+{
+ return m_styleOption;
+}
+
+void KItemListGroupHeader::setScrollOrientation(Qt::Orientation orientation)
+{
+ if (m_scrollOrientation != orientation) {
+ const Qt::Orientation previous = m_scrollOrientation;
+ m_scrollOrientation = orientation;
+ if (orientation == Qt::Vertical) {
+ m_dirtyCache = true;
+ }
+ scrollOrientationChanged(orientation, previous);
+ }
+}
+
+void KItemListGroupHeader::setItemIndex(int index)
+{
+ if (m_itemIndex != index) {
+ const int previous = m_itemIndex;
+ m_itemIndex = index;
+ m_dirtyCache = true;
+ itemIndexChanged(m_itemIndex, previous);
+ }
+}
+
+int KItemListGroupHeader::itemIndex() const
+{
+ return m_itemIndex;
+}
+
+Qt::Orientation KItemListGroupHeader::scrollOrientation() const
+{
+ return m_scrollOrientation;
+}
+
+void KItemListGroupHeader::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(painter)
+ Q_UNUSED(option)
+ Q_UNUSED(widget)
+
+ if (m_dirtyCache) {
+ updateCache();
+ }
+
+ paintSeparator(painter, m_separatorColor);
+ paintRole(painter, m_roleBounds, m_roleColor);
+}
+
+void KItemListGroupHeader::roleChanged(const QByteArray ¤t, const QByteArray &previous)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+}
+
+void KItemListGroupHeader::dataChanged(const QVariant ¤t, const QVariant &previous)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+}
+
+void KItemListGroupHeader::styleOptionChanged(const KItemListStyleOption ¤t, const KItemListStyleOption &previous)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+}
+
+void KItemListGroupHeader::scrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+}
+
+void KItemListGroupHeader::itemIndexChanged(int current, int previous)
+{
+ Q_UNUSED(current)
+ Q_UNUSED(previous)
+}
+
+void KItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent *event)
+{
+ QGraphicsWidget::resizeEvent(event);
+ if (event->oldSize().height() != event->newSize().height()) {
+ m_dirtyCache = true;
+ }
+ updateSize();
+}
+
+void KItemListGroupHeader::updateCache()