]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Improve look-n-fell of color button - when disabled it should be drawn in a specific way
authorvsr <vsr@opencascade.com>
Fri, 10 Feb 2012 13:27:03 +0000 (13:27 +0000)
committervsr <vsr@opencascade.com>
Fri, 10 Feb 2012 13:27:03 +0000 (13:27 +0000)
src/Qtx/QtxColorButton.cxx
src/Qtx/QtxColorButton.h

index c7825fc4758ae38587f55fa73da3b75dca6680ed..b73ee71dee3b53983aa1f803724ce9abc14bd771 100644 (file)
@@ -305,11 +305,13 @@ void QtxColorButton::paintEvent( QPaintEvent* e )
   pix.fill( palette().color( backgroundRole() ) );
 
   if ( color().isValid() )
-    drawColor( &pix, color() );
+    drawColor( &pix, isEnabled() ? color() : palette().mid().color(), isEnabled() ? Qt::black : palette().mid().color() );
   else {
     QPainter pixp( &pix );
+    pixp.setPen( palette().color( isEnabled() ? QPalette::WindowText : QPalette::Mid ) );
     pixp.drawRect( 2, 2, pix.width() - 4, pix.height() - 4 );
-    pixp.fillRect( 3, 3, pix.width() - 6, pix.height() - 6, QBrush( Qt::BDiagPattern ) );
+    pixp.fillRect( 3, 3, pix.width() - 6, pix.height() - 6, 
+                  QBrush( palette().color( isEnabled() ? QPalette::WindowText : QPalette::Mid ), Qt::BDiagPattern ) );
     pixp.end();
   }
 
@@ -380,13 +382,13 @@ QPixmap QtxColorButton::buttonIcon( const QColor& c ) const
   \param c color
   \param m margin
 */
-void QtxColorButton::drawColor( QPaintDevice* pd, const QColor& c, const int m ) const
+void QtxColorButton::drawColor( QPaintDevice* pd, const QColor& c, const QColor& bc, const int m ) const
 {
   if ( !pd )
     return;
 
   QPainter p( pd );
-  p.setPen( Qt::black );
+  p.setPen( bc );
   p.fillRect( m, m, pd->width() - 2 * m - 1, pd->height() - 2 * m - 1, QBrush( c ) );
   p.drawRect( m, m, pd->width() - 2 * m - 1, pd->height() - 2 * m - 1 );
   p.end();
index 75eb4f3014ead9e453336efd1ddfa5eae824e4a0..f8cb2da2bece69231b91f1f31b5c7dc8c442f1ce 100644 (file)
@@ -72,7 +72,7 @@ private:
   void          updateState();
   void          updateButton( QToolButton* );
   QPixmap       buttonIcon( const QColor& ) const;
-  void          drawColor( QPaintDevice*, const QColor&, const int = 1 ) const;
+  void          drawColor( QPaintDevice*, const QColor&, const QColor& = Qt::black, const int = 1 ) const;
 
 private:
   typedef QMap<const QToolButton*, QColor> ColorMap;