MCPcopy Create free account
hub / github.com/OpenMS/OpenMS / paintEvent

Method paintEvent

src/openms_gui/source/VISUAL/MultiGradientSelector.cpp:56–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54 }
55
56 void MultiGradientSelector::paintEvent(QPaintEvent * /* e */)
57 {
58 static QPixmap pixmap = QPixmap(size());
59 pixmap.fill(palette().window().color());
60
61 //calculate gradient area width
62 if (gradient_area_width_ == 0)
63 {
64 gradient_area_width_ = width() - 2 * margin_ - 2;
65 }
66
67 QPainter painter(&pixmap);
68
69 //gradient field outline
70 painter.setPen(QColor(0, 0, 0));
71 painter.drawRect(margin_, margin_, width() - 2 * margin_, height() - 2 * margin_ - lever_area_height_);
72
73 //draw gradient
74 for (Int i = 0; i <= gradient_area_width_; ++i)
75 {
76 painter.setPen(gradient_.interpolatedColorAt(i, 0, gradient_area_width_));
77 painter.drawLine(margin_ + 1 + i, margin_ + 1, margin_ + 1 + i, height() - margin_ - lever_area_height_ - 1);
78 }
79
80 //levers
81 painter.setPen(QColor(0, 0, 0));
82 for (UInt i = 0; i < (UInt)gradient_.size(); ++i)
83 {
84 Int pos = Int(float(gradient_.position(i)) / 100.0 * gradient_area_width_ + margin_ + 1);
85 painter.drawRect(pos - 4, height() - margin_ - lever_area_height_ + 5, 9, 9);
86 painter.drawLine(pos - 4, height() - margin_ - lever_area_height_ + 5, pos, height() - margin_ - lever_area_height_);
87 painter.drawLine(pos, height() - margin_ - lever_area_height_, pos + 4, height() - margin_ - lever_area_height_ + 5);
88 painter.fillRect(pos - 3, height() - margin_ - lever_area_height_ + 6, 8, 8, gradient_.color(i));
89
90 //selected lever
91 if (Int(gradient_.position(i)) == selected_)
92 {
93 painter.fillRect(pos - 2, height() - margin_ - lever_area_height_ + 3, 6, 3, QColor(0, 0, 0));
94 painter.fillRect(pos - 1, height() - margin_ - lever_area_height_ + 1, 4, 3, QColor(0, 0, 0));
95 }
96 }
97
98 QPainter painter2(this);
99 painter2.drawPixmap(0, 0, pixmap);
100 }
101
102 void MultiGradientSelector::mousePressEvent(QMouseEvent * e)
103 {

Callers

nothing calls this directly

Calls 6

QColorClass · 0.85
colorMethod · 0.80
interpolatedColorAtMethod · 0.80
sizeFunction · 0.50
sizeMethod · 0.45
positionMethod · 0.45

Tested by

no test coverage detected