| 156 | } |
| 157 | |
| 158 | void 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 | } |
no test coverage detected