21 m_filterIsDefined (false),
22 m_rgbBackground (QColor (Qt::white)),
28 QColor ViewSegmentFilter::colorFromSetting (
ColorFilterMode coloFilterMode,
35 int r = 0, g = 0, b = 0;
37 switch (coloFilterMode)
42 if (qGray (m_rgbBackground.rgb ()) < 127) {
49 r = qFloor ((1.0 - s) * 255);
50 g = qFloor ((1.0 - s) * 255);
51 b = qFloor ((1.0 - s) * 255);
60 int HUE_THRESHOLD_LOW = qFloor (0.666 *
HUE_MIN + 0.333 *
HUE_MAX);
61 int HUE_THRESHOLD_HIGH = qFloor (0.333 *
HUE_MIN + 0.666 *
HUE_MAX);
63 if (hue < HUE_THRESHOLD_LOW) {
65 double s = double (hue -
HUE_MIN) / double (HUE_THRESHOLD_LOW -
HUE_MIN);
66 r = qFloor ((1.0 - s) * 255);
68 }
else if (hue < HUE_THRESHOLD_HIGH) {
70 double s = double (hue - HUE_THRESHOLD_LOW) / double (HUE_THRESHOLD_HIGH - HUE_THRESHOLD_LOW);
71 g = qFloor ((1.0 - s) * 255);
75 double s = double (hue - HUE_THRESHOLD_HIGH) / double (
HUE_MAX - HUE_THRESHOLD_HIGH);
76 b = qFloor ((1.0 - s) * 255);
99 g = qFloor ((1.0 - s) * 255);
100 b = qFloor ((1.0 - s) * 255);
109 r = qFloor (s * 255);
122 int rgbAverage = (r + g + b) / 3;
128 return QColor (r, g, b);
131 QColor ViewSegmentFilter::colorHigh ()
const
136 m_colorFilterSettings.
hueHigh (),
145 QColor ViewSegmentFilter::colorLow ()
const
150 m_colorFilterSettings.
hueLow (),
161 QPainter painter(
this);
163 if (m_filterIsDefined) {
166 QLinearGradient gradient (0, height()/2, width(), height()/2);
169 gradient.setColorAt (0.0, colorLow ());
170 gradient.setColorAt (1.0, colorHigh ());
171 painter.setBrush (gradient);
174 painter.setPen (Qt::NoPen);
176 painter.drawRect (0, 0, width(), height());
186 const QPixmap &pixmap)
190 m_colorFilterSettings = colorFilterSettings;
191 m_filterIsDefined =
true;
195 QImage img = pixmap.toImage();
205 <<
" enabled=" << (enabled ?
"true" :
"false");
215 m_filterIsDefined =
false;