blob: 453939c96ecaa433aa478b86c2bdb82ba95dcd81 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#include "library/colordelegate.h"
#include <QColor>
#include <QPainter>
#include <QStyle>
#include <QTableView>
#include "library/trackmodel.h"
#include "moc_colordelegate.cpp"
#include "util/color/rgbcolor.h"
ColorDelegate::ColorDelegate(QTableView* pTableView)
: TableItemDelegate(pTableView) {
}
void ColorDelegate::paintItem(
QPainter* painter,
const QStyleOptionViewItem& option,
const QModelIndex& index) const {
const auto color = mixxx::RgbColor::fromQVariant(index.data());
if (color) {
painter->fillRect(option.rect, mixxx::RgbColor::toQColor(color));
} else {
// Filter out track color that is hidden
if (option.state & QStyle::State_Selected) {
painter->fillRect(option.rect, option.palette.highlight());
}
}
// Draw a border if the color cell has focus
if (option.state & QStyle::State_HasFocus) {
// This uses a color from the stylesheet:
// WTrackTableView {
// qproperty-focusBorderColor: red;
// }
QPen borderPen(
m_pFocusBorderColor,
1,
Qt::SolidLine,
Qt::SquareCap);
painter->setPen(borderPen);
painter->setBrush(QBrush(Qt::transparent));
painter->drawRect(
option.rect.left(),
option.rect.top(),
option.rect.width() - 1,
option.rect.height() - 1);
}
}
|