51{
52 QRect remainingArea = areaRect;
53
54 {
55 QColor bgFillColor =
palette().color(QPalette::Base);
56
57 QVariant variant = model()->headerData(layerIndex, orientation(), Qt::BackgroundRole);
58 if (variant.canConvert<QBrush>()) {
59 QBrush brush = qvariant_cast<QBrush>(variant);
60 painter->setBrush(brush);
61 painter->setPen(Qt::NoPen);
62 painter->drawRect(areaRect);
63
64 bgFillColor = brush.color();
65 }
66
67 QColor rimlight = bgFillColor.lighter(115);
68 painter->setPen(QPen(rimlight, 2));
69 painter->setBrush(rimlight);
70 painter->drawLine(areaRect.topLeft(), areaRect.topRight());
71 }
72
73
75
76 if (isLayerActive) {
78 const int lineWidth = 2;
79
80 painter->setPen(QPen(lineColor, lineWidth));
81 painter->setBrush(lineColor);
82
84 lines << QLine(areaRect.topLeft(), areaRect.topRight()).translated(0,1);
85 lines << QLine(areaRect.bottomLeft(), areaRect.bottomRight()).translated(0,-1);
86 painter->drawLines(lines);
87 }
88
89
90 painter->save();
92 const uint pinWidth = areaRect.height() - 4;
93 QRect pinArea =
kisTrimLeft(pinWidth, remainingArea);
94 const uint difference = pinArea.height() - pinWidth;
95 pinArea.setHeight(pinWidth);
96 pinArea.translate(0, difference / 2);
97
99 QRect iconRect = pinArea - QMargins(5,5,5,5);
100
101 if (!isPinned) {
102 iconRect = pinArea - QMargins(6,4,4,6);
103 painter->setOpacity(0.35);
104 }
105
106 icon.paint(painter, iconRect);
107 painter->restore();
108
109
110 const int textSpace = remainingArea.width() -
m_d->iconSectionWidth(layerIndex);
111 const QRect textArea =
kisTrimLeft(textSpace, remainingArea);
112 QString text = model()->headerData(layerIndex, orientation(), Qt::DisplayRole).toString();
113 text = fontMetrics().elidedText(text, textElideMode(), textArea.width());
114 style()->drawItemText(painter, textArea, Qt::AlignLeft | Qt::AlignVCenter,
palette(), isEnabled(), text, QPalette::ButtonText);
115
116
119
120 const int numIcons =
m_d->numIcons(layerIndex);
121 for (int i = 0; i < numIcons; i++) {
123
124 const bool isActive = prop->
state.toBool();
126 if (!isActive) {
127 painter->setOpacity(0.35);
128 }
129 QRect iconRect =
m_d->propertyIconRect(layerIndex, i).translated(areaRect.topLeft());
130 icon.paint(painter, iconRect);
131 painter->setOpacity(1.0);
132 }
133}
static KisAnimTimelineColors * instance()
QColor activeLayerBackground() const
QIcon loadIcon(const QString &name)
rgba palette[MAX_PALETTE]