Improved color palette item widget.
This commit is contained in:
@@ -20,7 +20,8 @@
|
|||||||
|
|
||||||
#include "ColorPaletteItem.h"
|
#include "ColorPaletteItem.h"
|
||||||
|
|
||||||
#include "ColorSwatch.h"
|
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -28,8 +29,13 @@
|
|||||||
//
|
//
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
const double wSwatch = 20;
|
const int border = 4;
|
||||||
const double hSwatch = 20;
|
const int wSwatch = 25;
|
||||||
|
const int hSwatch = 25;
|
||||||
|
const QColor hoverColor( 170, 200, 255 );
|
||||||
|
const QColor outlineColor( 0, 0, 0 );
|
||||||
|
const QColor emptyOutlineColor( 192, 192, 192 );
|
||||||
|
const int outlineWidthPixels = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -43,13 +49,11 @@ namespace glabels
|
|||||||
const QColor& color,
|
const QColor& color,
|
||||||
const QString& tip,
|
const QString& tip,
|
||||||
QWidget* parent )
|
QWidget* parent )
|
||||||
: QPushButton(parent), mId(id), mColor(color), mTip(tip)
|
: QWidget(parent), mId(id), mColor(color), mTip(tip), mHover(false)
|
||||||
{
|
{
|
||||||
setFlat( true );
|
setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
|
||||||
setIcon( QIcon( ColorSwatch( wSwatch, hSwatch, color ) ) );
|
setMinimumSize( wSwatch+2*border+1, hSwatch+2*border+1 );
|
||||||
setToolTip( tip );
|
setToolTip( tip );
|
||||||
|
|
||||||
connect( this, SIGNAL(clicked()), this, SLOT(onClicked()) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -64,15 +68,67 @@ namespace glabels
|
|||||||
mColor = color;
|
mColor = color;
|
||||||
mTip = tip;
|
mTip = tip;
|
||||||
|
|
||||||
setIcon( QIcon( ColorSwatch( wSwatch, hSwatch, color ) ) );
|
|
||||||
setToolTip( tip );
|
setToolTip( tip );
|
||||||
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// onClicked slot
|
/// Paint Event
|
||||||
///
|
///
|
||||||
void ColorPaletteItem::onClicked()
|
void ColorPaletteItem::paintEvent( QPaintEvent* event )
|
||||||
|
{
|
||||||
|
QPainter painter(this);
|
||||||
|
|
||||||
|
if ( mHover && mColor.alpha() )
|
||||||
|
{
|
||||||
|
painter.setBrush( QBrush( hoverColor ) );
|
||||||
|
painter.setPen( Qt::NoPen );
|
||||||
|
painter.drawRect( rect() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( mColor.alpha() )
|
||||||
|
{
|
||||||
|
QPen pen( outlineColor );
|
||||||
|
pen.setWidth( outlineWidthPixels );
|
||||||
|
painter.setPen( pen );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QPen pen( emptyOutlineColor );
|
||||||
|
pen.setWidth( outlineWidthPixels );
|
||||||
|
painter.setPen( pen );
|
||||||
|
}
|
||||||
|
|
||||||
|
painter.setBrush( QBrush( mColor ) );
|
||||||
|
painter.drawRect( border, border, wSwatch, hSwatch );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Enter Event
|
||||||
|
///
|
||||||
|
void ColorPaletteItem::enterEvent( QEvent* event )
|
||||||
|
{
|
||||||
|
mHover = true;
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Leave Event
|
||||||
|
///
|
||||||
|
void ColorPaletteItem::leaveEvent( QEvent* event )
|
||||||
|
{
|
||||||
|
mHover = false;
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Mouse Press Event
|
||||||
|
///
|
||||||
|
void ColorPaletteItem::mousePressEvent( QMouseEvent* event )
|
||||||
{
|
{
|
||||||
emit activated( mId );
|
emit activated( mId );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#ifndef glabels_ColorPaletteItem_h
|
#ifndef glabels_ColorPaletteItem_h
|
||||||
#define glabels_ColorPaletteItem_h
|
#define glabels_ColorPaletteItem_h
|
||||||
|
|
||||||
#include <QPushButton>
|
#include <QWidget>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ namespace glabels
|
|||||||
///
|
///
|
||||||
/// Color Palette Item
|
/// Color Palette Item
|
||||||
///
|
///
|
||||||
class ColorPaletteItem : public QPushButton
|
class ColorPaletteItem : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ namespace glabels
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
// Properties
|
// Public Methods
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
public:
|
public:
|
||||||
void setColor( int id,
|
void setColor( int id,
|
||||||
@@ -62,10 +62,13 @@ namespace glabels
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
// Slots
|
// Event handlers
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
private slots:
|
protected:
|
||||||
void onClicked();
|
void paintEvent( QPaintEvent* event );
|
||||||
|
void enterEvent( QEvent* event );
|
||||||
|
void leaveEvent( QEvent* event );
|
||||||
|
void mousePressEvent( QMouseEvent* event );
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
@@ -75,7 +78,8 @@ namespace glabels
|
|||||||
int mId;
|
int mId;
|
||||||
QColor mColor;
|
QColor mColor;
|
||||||
QString mTip;
|
QString mTip;
|
||||||
|
|
||||||
|
bool mHover;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user