widgets: Add option to draw selected GroupedIconView header
This commit is contained in:
parent
6b34d0435f
commit
e77595fba6
|
@ -114,7 +114,7 @@ void SettingsItemDelegate::paint(QPainter* painter,
|
||||||
|
|
||||||
if (is_separator) {
|
if (is_separator) {
|
||||||
GroupedIconView::DrawHeader(painter, option.rect, option.font,
|
GroupedIconView::DrawHeader(painter, option.rect, option.font,
|
||||||
option.palette, index.data().toString());
|
option.palette, index.data().toString(), false);
|
||||||
} else {
|
} else {
|
||||||
QStyledItemDelegate::paint(painter, option, index);
|
QStyledItemDelegate::paint(painter, option, index);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ int GroupedIconView::header_height() const { return default_header_height_; }
|
||||||
|
|
||||||
void GroupedIconView::DrawHeader(QPainter* painter, const QRect& rect,
|
void GroupedIconView::DrawHeader(QPainter* painter, const QRect& rect,
|
||||||
const QFont& font, const QPalette& palette,
|
const QFont& font, const QPalette& palette,
|
||||||
const QString& text) {
|
const QString& text, bool selected) {
|
||||||
painter->save();
|
painter->save();
|
||||||
|
|
||||||
// Bold font
|
// Bold font
|
||||||
|
@ -73,6 +73,10 @@ void GroupedIconView::DrawHeader(QPainter* painter, const QRect& rect,
|
||||||
bold_font.setBold(true);
|
bold_font.setBold(true);
|
||||||
QFontMetrics metrics(bold_font);
|
QFontMetrics metrics(bold_font);
|
||||||
|
|
||||||
|
if (selected) {
|
||||||
|
painter->fillRect(rect, palette.highlight());
|
||||||
|
}
|
||||||
|
|
||||||
QRect text_rect(rect);
|
QRect text_rect(rect);
|
||||||
text_rect.setHeight(metrics.height());
|
text_rect.setHeight(metrics.height());
|
||||||
text_rect.moveTop(
|
text_rect.moveTop(
|
||||||
|
@ -291,7 +295,8 @@ void GroupedIconView::paintEvent(QPaintEvent* e) {
|
||||||
DrawHeader(&painter,
|
DrawHeader(&painter,
|
||||||
header_rect.translated(-horizontalOffset(), -verticalOffset()),
|
header_rect.translated(-horizontalOffset(), -verticalOffset()),
|
||||||
font(), palette(),
|
font(), palette(),
|
||||||
model()->index(header.first_row, 0).data(Role_Group).toString());
|
model()->index(header.first_row, 0).data(Role_Group).toString(),
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ class GroupedIconView : public QListView {
|
||||||
|
|
||||||
static void DrawHeader(QPainter* painter, const QRect& rect,
|
static void DrawHeader(QPainter* painter, const QRect& rect,
|
||||||
const QFont& font, const QPalette& palette,
|
const QFont& font, const QPalette& palette,
|
||||||
const QString& text);
|
const QString& text, bool selected);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int header_height() const;
|
virtual int header_height() const;
|
||||||
|
|
Loading…
Reference in New Issue