MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / drawHeader

Method drawHeader

launcher/ui/instanceview/VisualGroup.cpp:158–287  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158void VisualGroup::drawHeader(QPainter *painter, const QStyleOptionViewItem &option)
159{
160 painter->setRenderHint(QPainter::Antialiasing);
161
162 const QRect optRect = option.rect;
163 QFont font(QApplication::font());
164 font.setBold(true);
165 const QFontMetrics fontMetrics = QFontMetrics(font);
166
167 QColor outlineColor = option.palette.text().color();
168 outlineColor.setAlphaF(0.35);
169
170 //BEGIN: top left corner
171 {
172 painter->save();
173 painter->setPen(outlineColor);
174 const QPointF topLeft(optRect.topLeft());
175 QRectF arc(topLeft, QSizeF(4, 4));
176 arc.translate(0.5, 0.5);
177 painter->drawArc(arc, 1440, 1440);
178 painter->restore();
179 }
180 //END: top left corner
181
182 //BEGIN: left vertical line
183 {
184 QPoint start(optRect.topLeft());
185 start.ry() += 3;
186 QPoint verticalGradBottom(optRect.topLeft());
187 verticalGradBottom.ry() += fontMetrics.height() + 5;
188 QLinearGradient gradient(start, verticalGradBottom);
189 gradient.setColorAt(0, outlineColor);
190 gradient.setColorAt(1, Qt::transparent);
191 painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
192 }
193 //END: left vertical line
194
195 //BEGIN: horizontal line
196 {
197 QPoint start(optRect.topLeft());
198 start.rx() += 3;
199 QPoint horizontalGradTop(optRect.topLeft());
200 horizontalGradTop.rx() += optRect.width() - 6;
201 painter->fillRect(QRect(start, QSize(optRect.width() - 6, 1)), outlineColor);
202 }
203 //END: horizontal line
204
205 //BEGIN: top right corner
206 {
207 painter->save();
208 painter->setPen(outlineColor);
209 QPointF topRight(optRect.topRight());
210 topRight.rx() -= 4;
211 QRectF arc(topRight, QSizeF(4, 4));
212 arc.translate(0.5, 0.5);
213 painter->drawArc(arc, 0, 1440);
214 painter->restore();
215 }

Callers 1

paintEventMethod · 0.80

Calls 4

translateMethod · 0.80
setFontMethod · 0.80
textMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected