Fix mouse capture of color picker

This commit is contained in:
lupoDharkael
2017-06-06 19:41:38 +02:00
parent 0ba53389d2
commit 2351cc54fb
2 changed files with 19 additions and 6 deletions

View File

@@ -58,6 +58,16 @@ QColor ColorPicker::getDrawColor() {
return m_drawColor;
}
void ColorPicker::show() {
grabMouse();
QWidget::show();
}
void ColorPicker::hide() {
releaseMouse();
QWidget::hide();
}
void ColorPicker::paintEvent(QPaintEvent *) {
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
@@ -85,13 +95,13 @@ void ColorPicker::paintEvent(QPaintEvent *) {
}
void ColorPicker::mouseMoveEvent(QMouseEvent *e) {
for(int i = 0; i < colorList.size(); ++i) {
if (m_colorAreaList.at(i).contains(e->pos())) {
m_drawColor = colorList.at(i);
update();
break;
for(int i = 0; i < colorList.size(); ++i) {
if (m_colorAreaList.at(i).contains(e->pos())) {
m_drawColor = colorList.at(i);
update();
break;
}
}
}
}
QVector<QRect> ColorPicker::handleMask() const {

View File

@@ -29,6 +29,9 @@ public:
QColor getDrawColor();
void show();
void hide();
protected:
void paintEvent(QPaintEvent *);
void mouseMoveEvent(QMouseEvent *);