vstyleditemdelegate.cpp 1004 B

12345678910111213141516171819202122232425262728293031
  1. #include "vstyleditemdelegate.h"
  2. #include <QPainter>
  3. #include <QDebug>
  4. #include "vpalette.h"
  5. extern VPalette *g_palette;
  6. VStyledItemDelegate::VStyledItemDelegate(QObject *p_parent)
  7. : QStyledItemDelegate(p_parent)
  8. {
  9. m_itemHitBg = QBrush(QColor(g_palette->color("search_hit_item_bg")));
  10. m_itemHitFg = QBrush(QColor(g_palette->color("search_hit_item_fg")));
  11. }
  12. void VStyledItemDelegate::paint(QPainter *p_painter,
  13. const QStyleOptionViewItem &p_option,
  14. const QModelIndex &p_index) const
  15. {
  16. if (isHit(p_index)) {
  17. QStyleOptionViewItem option(p_option);
  18. p_painter->fillRect(option.rect, m_itemHitBg);
  19. // Does not work anyway.
  20. // option.palette.setBrush(QPalette::Base, m_itemHitBg);
  21. option.palette.setBrush(QPalette::Text, m_itemHitFg);
  22. QStyledItemDelegate::paint(p_painter, option, p_index);
  23. } else {
  24. QStyledItemDelegate::paint(p_painter, p_option, p_index);
  25. }
  26. }