Sfoglia il codice sorgente

Change icon for invalid color in ctkColorPickerButton

Button icon has no color if setColor is called with invalid QColor.
Benjamin BENEY 10 anni fa
parent
commit
7eda0432a1
1 ha cambiato i file con 4 aggiunte e 2 eliminazioni
  1. 4 2
      Libs/Widgets/ctkColorPickerButton.cpp

+ 4 - 2
Libs/Widgets/ctkColorPickerButton.cpp

@@ -78,10 +78,12 @@ void ctkColorPickerButtonPrivate::computeIcon()
   Q_Q(ctkColorPickerButton);
   Q_Q(ctkColorPickerButton);
   int _iconSize = q->style()->pixelMetric(QStyle::PM_SmallIconSize);
   int _iconSize = q->style()->pixelMetric(QStyle::PM_SmallIconSize);
   QPixmap pix(_iconSize, _iconSize);
   QPixmap pix(_iconSize, _iconSize);
-  pix.fill(q->palette().button().color());
+  pix.fill(this->Color.isValid() ?
+    q->palette().button().color() : Qt::transparent);
   QPainter p(&pix);
   QPainter p(&pix);
   p.setPen(QPen(Qt::gray));
   p.setPen(QPen(Qt::gray));
-  p.setBrush(this->Color);
+  p.setBrush(this->Color.isValid() ?
+    pixmapColor : QBrush(Qt::BrushStyle::NoBrush));
   p.drawRect(2, 2, pix.width() - 5, pix.height() - 5);
   p.drawRect(2, 2, pix.width() - 5, pix.height() - 5);
 
 
   this->Icon = QIcon(pix);
   this->Icon = QIcon(pix);