160 const qreal pixelRatio = devicePixelRatio();
161 QPixmap pixmap(size * pixelRatio);
162 pixmap.setDevicePixelRatio(pixelRatio);
163 pixmap.fill(Qt::transparent);
165 p.setRenderHint(QPainter::Antialiasing,
true);
166 p.translate(0.5, 0.5);
168 if (!FlatProjectsMode) {
170 lg.setCoordinateMode(QGradient::ObjectBoundingMode);
171 lg.setFinalStop(0, 1);
173 lg.setColorAt(0, QColor(0, 0, 0, 10));
174 lg.setColorAt(1, QColor(0, 0, 0, 16));
176 lg.setColorAt(0, QColor(255, 255, 255, 0));
177 lg.setColorAt(1, QColor(255, 255, 255, 50));
180 p.setPen(QColor(255, 255, 255, 140));
181 p.drawRoundedRect(1, 1, size.width() - 3, size.height() - 3, 1, 1);
182 p.setPen(QPen(QColor(0, 0, 0, 40)));
183 p.drawLine(0, 1, 0, size.height() - 2);
185 p.drawLine(1, size.height() - 1, size.width() - 1, size.height() - 1);
188 p.drawRoundedRect(0, 0, size.width(), size.height(), 1, 1);
191 p.setPen(palette().color(QPalette::Text));
193 QRect textRect = p.fontMetrics().boundingRect(text());
194 textRect.setWidth(textRect.width() + 15);
195 textRect.setHeight(textRect.height() + 4);
196 textRect.moveCenter(rect().center());
198 p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());
201 QStyleOption arrowOpt;
202 arrowOpt.initFrom(
this);
203 QPalette pal = arrowOpt.palette;
204 pal.setBrush(QPalette::All, QPalette::Text, QColor(0, 0, 0));
206 QRect(size.width() - arrowsize - 6, height() / 2 - arrowsize / 2, arrowsize, arrowsize);
207 arrowOpt.palette = pal;
208 style()->drawPrimitive(checked ? QStyle::PE_IndicatorArrowUp : QStyle::PE_IndicatorArrowDown,
209 &arrowOpt, &p,
this);