| 129 | } |
| 130 | |
| 131 | void 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 | } |
no test coverage detected