MCPcopy Create free account
hub / github.com/MultiMC/Launcher / drawHeader

Method drawHeader

launcher/ui/instanceview/VisualGroup.cpp:131–260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

129}
130
131void VisualGroup::drawHeader(QPainter *painter, const QStyleOptionViewItem &option)
132{
133 painter->setRenderHint(QPainter::Antialiasing);
134
135 const QRect optRect = option.rect;
136 QFont font(QApplication::font());
137 font.setBold(true);
138 const QFontMetrics fontMetrics = QFontMetrics(font);
139
140 QColor outlineColor = option.palette.text().color();
141 outlineColor.setAlphaF(0.35);
142
143 //BEGIN: top left corner
144 {
145 painter->save();
146 painter->setPen(outlineColor);
147 const QPointF topLeft(optRect.topLeft());
148 QRectF arc(topLeft, QSizeF(4, 4));
149 arc.translate(0.5, 0.5);
150 painter->drawArc(arc, 1440, 1440);
151 painter->restore();
152 }
153 //END: top left corner
154
155 //BEGIN: left vertical line
156 {
157 QPoint start(optRect.topLeft());
158 start.ry() += 3;
159 QPoint verticalGradBottom(optRect.topLeft());
160 verticalGradBottom.ry() += fontMetrics.height() + 5;
161 QLinearGradient gradient(start, verticalGradBottom);
162 gradient.setColorAt(0, outlineColor);
163 gradient.setColorAt(1, Qt::transparent);
164 painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
165 }
166 //END: left vertical line
167
168 //BEGIN: horizontal line
169 {
170 QPoint start(optRect.topLeft());
171 start.rx() += 3;
172 QPoint horizontalGradTop(optRect.topLeft());
173 horizontalGradTop.rx() += optRect.width() - 6;
174 painter->fillRect(QRect(start, QSize(optRect.width() - 6, 1)), outlineColor);
175 }
176 //END: horizontal line
177
178 //BEGIN: top right corner
179 {
180 painter->save();
181 painter->setPen(outlineColor);
182 QPointF topRight(optRect.topRight());
183 topRight.rx() -= 4;
184 QRectF arc(topRight, QSizeF(4, 4));
185 arc.translate(0.5, 0.5);
186 painter->drawArc(arc, 0, 1440);
187 painter->restore();
188 }

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