*/
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
- /**
- * Sets the visible roles to \p roles. The integer-value defines
- * the order of the visible role: Smaller values are ordered first.
- */
- void setVisibleRoles(const QHash<QByteArray, int>& roles);
- QHash<QByteArray, int> visibleRoles() const;
+ void setVisibleRoles(const QList<QByteArray>& roles);
+ QList<QByteArray> visibleRoles() const;
void setVisibleRolesSizes(const QHash<QByteArray, QSizeF> rolesSizes);
QHash<QByteArray, QSizeF> visibleRolesSizes() const;
void setHovered(bool hovered);
bool isHovered() const;
+ void setAlternatingBackgroundColors(bool enable);
+ bool alternatingBackgroundColors() const;
+
/**
* @return True if \a point is inside KItemListWidget::hoverBoundingRect(),
- * KItemListWidget::selectionToggleRect() or KItemListWidget::expansionToggleRect().
+ * KItemListWidget::textBoundingRect(), KItemListWidget::selectionToggleRect()
+ * or KItemListWidget::expansionToggleRect().
* @reimp
*/
virtual bool contains(const QPointF& point) const;
/**
- * @return Bounding rectangle for the area that acts as hovering-area. Per default
- * the bounding rectangle of the KItemListWidget is returned.
+ * @return Bounding rectangle for the area that shows the icon.
+ */
+ virtual QRectF iconBoundingRect() const = 0;
+
+ /**
+ * @return Bounding rectangle for the area that contains the text-properties.
*/
- virtual QRectF hoverBoundingRect() const;
+ virtual QRectF textBoundingRect() const = 0;
/**
* @return Rectangle for the selection-toggle that is used to select or deselect an item.
protected:
virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
- virtual void visibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
+ virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
virtual void currentChanged(bool current);
virtual void selectedChanged(bool selected);
virtual void hoveredChanged(bool hovered);
- virtual void resizeEvent(QGraphicsSceneResizeEvent* event);
+ virtual void alternatingBackgroundColorsChanged(bool enabled);
+ virtual void resizeEvent(QGraphicsSceneResizeEvent* event);
/**
* @return The current opacity of the hover-animation. When implementing a custom painting-code for a hover-state
private:
void setHoverOpacity(qreal opacity);
- void clearCache();
+ void clearHoverCache();
+ void drawTextBackground(QPainter* painter);
private:
Q_PROPERTY(qreal hoverOpacity READ hoverOpacity WRITE setHoverOpacity)
bool m_selected;
bool m_current;
bool m_hovered;
+ bool m_alternatingBackgroundColors;
QHash<QByteArray, QVariant> m_data;
- QHash<QByteArray, int> m_visibleRoles;
+ QList<QByteArray> m_visibleRoles;
QHash<QByteArray, QSizeF> m_visibleRolesSizes;
KItemListStyleOption m_styleOption;