summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp
index d51c408ab5c..ce46170bba5 100644
--- a/src/widgets/dialogs/qcolordialog.cpp
+++ b/src/widgets/dialogs/qcolordialog.cpp
@@ -662,7 +662,7 @@ private:
int val2y(int val);
void setVal(int v);
- QPixmap *pix;
+ QPixmap pix;
};
@@ -682,14 +682,12 @@ QColorLuminancePicker::QColorLuminancePicker(QWidget* parent)
:QWidget(parent)
{
hue = 100; val = 100; sat = 100;
- pix = nullptr;
// setAttribute(WA_NoErase, true);
setFocusPolicy(Qt::StrongFocus);
}
QColorLuminancePicker::~QColorLuminancePicker()
{
- delete pix;
}
void QColorLuminancePicker::keyPressEvent(QKeyEvent *event)
@@ -725,7 +723,7 @@ void QColorLuminancePicker::setVal(int v)
if (val == v)
return;
val = qMax(0, qMin(v,255));
- delete pix; pix=nullptr;
+ pix = QPixmap();
repaint();
emit newHsv(hue, sat, val);
}
@@ -744,8 +742,7 @@ void QColorLuminancePicker::paintEvent(QPaintEvent *)
QRect r(0, foff, w, height() - 2*foff);
int wi = r.width() - 2;
int hi = r.height() - 2;
- if (!pix || pix->height() != hi || pix->width() != wi) {
- delete pix;
+ if (pix.isNull() || pix.height() != hi || pix.width() != wi) {
QImage img(wi, hi, QImage::Format_RGB32);
int y;
uint *pixel = (uint *) img.scanLine(0);
@@ -754,10 +751,10 @@ void QColorLuminancePicker::paintEvent(QPaintEvent *)
std::fill(pixel, end, QColor::fromHsv(hue, sat, y2val(y + coff)).rgb());
pixel = end;
}
- pix = new QPixmap(QPixmap::fromImage(img));
+ pix = QPixmap::fromImage(img);
}
QPainter p(this);
- p.drawPixmap(1, coff, *pix);
+ p.drawPixmap(1, coff, pix);
const QPalette &g = palette();
qDrawShadePanel(&p, r, g, true);
p.setPen(g.windowText().color());
@@ -773,7 +770,7 @@ void QColorLuminancePicker::setCol(int h, int s , int v)
val = v;
hue = h;
sat = s;
- delete pix; pix=nullptr;
+ pix = QPixmap();
repaint();
}