| 328 | } |
| 329 | |
| 330 | QIcon createOpacityIcon(qreal opacity) |
| 331 | { |
| 332 | QIcon opacityIcon; |
| 333 | |
| 334 | // Create a pixmap for each common icon size. |
| 335 | for (int size : {16, 22, 24, 32, 48}) { |
| 336 | QPixmap pixmap(QSize(size, size) * qApp->devicePixelRatio()); |
| 337 | pixmap.setDevicePixelRatio(qApp->devicePixelRatio()); |
| 338 | pixmap.fill(Qt::transparent); |
| 339 | QPainter painter(&pixmap); |
| 340 | painter.setPen(Qt::NoPen); |
| 341 | painter.setBrush(qApp->palette().color(QPalette::Active, QPalette::WindowText)); |
| 342 | |
| 343 | // Checkerboard pattern |
| 344 | painter.drawRect(QRectF(QPoint(0, 0), QPoint(size, size) / 2)); |
| 345 | painter.drawRect(QRectF(QPoint(size, size) / 2, QPoint(size, size))); |
| 346 | |
| 347 | // Opacity |
| 348 | painter.setOpacity(opacity); |
| 349 | painter.drawRect(QRect(QPoint(0, 0), QPoint(size, size))); |
| 350 | |
| 351 | painter.end(); |
| 352 | opacityIcon.addPixmap(pixmap); |
| 353 | } |
| 354 | |
| 355 | return opacityIcon; |
| 356 | } |
| 357 | |
| 358 | } |