56 lines
1.0 KiB
C++
56 lines
1.0 KiB
C++
|
#include <QStylePainter>
|
||
|
#include "PreviewColorArea.h"
|
||
|
|
||
|
PreviewColorArea::PreviewColorArea(QWidget *parent)
|
||
|
: QWidget(parent)
|
||
|
, m_curColor(Qt::black)
|
||
|
, m_newColor(Qt::black)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
PreviewColorArea::~PreviewColorArea()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::setCurColor(const QColor &c)
|
||
|
{
|
||
|
m_curColor = c;
|
||
|
repaint();
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::setNewColor(const QColor &c)
|
||
|
{
|
||
|
m_newColor = c;
|
||
|
update();
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::paintEvent(QPaintEvent *)
|
||
|
{
|
||
|
QStylePainter painter(this);
|
||
|
paint(painter, geometry());
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::resizeEvent(QResizeEvent *)
|
||
|
{
|
||
|
update();
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::paint(QPainter &painter, QRect rect) const
|
||
|
{
|
||
|
int iMiddleWidth = rect.width() / 2;
|
||
|
int iHeight = rect.height();
|
||
|
painter.fillRect(0, 0, iMiddleWidth, iHeight, m_curColor);
|
||
|
painter.fillRect(iMiddleWidth, 0, iMiddleWidth, iHeight, m_newColor);
|
||
|
painter.setPen(QPen(Qt::black, 1));
|
||
|
painter.drawRect(0, 0, width() - 1, height() - 1);
|
||
|
}
|
||
|
|
||
|
void PreviewColorArea::svChangedSlot(int h, int s, int v)
|
||
|
{
|
||
|
m_newColor.setHsv(h, s, v);
|
||
|
update();
|
||
|
emit svChangedSignal(h, s, v);
|
||
|
}
|