20 #include <QTextStream> 21 #include <QXmlStreamWriter> 51 m_colorFilterMode (colorFilterMode),
52 m_intensityLow (intensityLow),
53 m_intensityHigh (intensityHigh),
54 m_foregroundLow (foregroundLow),
55 m_foregroundHigh (foregroundHigh),
58 m_saturationLow (saturationLow),
59 m_saturationHigh (saturationHigh),
60 m_valueLow (valueLow),
61 m_valueHigh (valueHigh)
67 m_colorFilterMode (other.colorFilterMode()),
68 m_intensityLow (other.intensityLow()),
69 m_intensityHigh (other.intensityHigh()),
70 m_foregroundLow (other.foregroundLow()),
71 m_foregroundHigh (other.foregroundHigh()),
72 m_hueLow (other.hueLow()),
73 m_hueHigh (other.hueHigh()),
74 m_saturationLow (other.saturationLow()),
75 m_saturationHigh (other.saturationHigh()),
76 m_valueLow (other.valueLow()),
77 m_valueHigh (other.valueHigh())
109 qDeleteAll (m_strategies);
114 return m_colorFilterMode;
117 void ColorFilterSettings::createStrategies ()
119 qDeleteAll (m_strategies);
135 return m_foregroundHigh;
140 return m_foregroundLow;
145 if (m_strategies.contains (m_colorFilterMode)) {
149 return strategy->
high (*
this);
168 return m_intensityHigh;
173 return m_intensityLow;
182 QXmlStreamAttributes attributes = reader.attributes();
209 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
213 if (reader.atEnd()) {
221 reader.raiseError (QObject::tr (
"Cannot read curve filter data"));
227 if (m_strategies.contains (m_colorFilterMode)) {
229 return strategy->
low (*
this);
237 QTextStream &str)
const 239 str << indentation <<
"ColorFilterSettings\n";
243 if (m_strategies.contains (m_colorFilterMode)) {
253 return m_saturationHigh;
258 return m_saturationLow;
262 const QString &curveName)
const 280 writer.writeEndElement();
302 if (m_strategies.contains (m_colorFilterMode)) {
304 return strategy->
setHigh (*
this,
337 if (m_strategies.contains (m_colorFilterMode)) {
339 return strategy->
setLow (*
this,
void setSaturationLow(int saturationLow)
Set method for saturation low.
void setLow(double s0To1)
Set the low value for the current filter mode.
int valueHigh() const
Get method for value high.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_HIGH
void setHueLow(int hueLow)
Set method for hue lower bound.
Leaf class for hue strategy for ColorFilterSettings.
Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointSt...
int hueHigh() const
Get method for hue higher bound.
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Leaf class for saturation strategy for ColorFilterSettings.
void setColorFilterMode(ColorFilterMode colorFilterMode)
Set method for filter mode.
const QString INDENTATION_DELTA
int foregroundLow() const
Get method for foreground lower bound.
const int INTENSITY_HIGH_DEFAULT
Base class for strategy pattern whose subclasses process the different color filter settings modes (o...
virtual void printStream(const ColorFilterSettings &colorFilterSettings, QString indentation, QTextStream &str) const =0
Print the low and high values.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_HIGH
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_MODE
const int SATURATION_LOW_DEFAULT
double high() const
High value of foreground, hue, intensity, saturation or value according to current filter mode...
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_LOW
const int FOREGROUND_LOW_DEFAULT
const int HUE_LOW_DEFAULT
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_HIGH
ColorFilterSettings & operator=(const ColorFilterSettings &other)
Assignment operator.
void setForegroundLow(int foregroundLow)
Set method for foreground lower bound.
#define LOG4CPP_INFO_S(logger)
double low() const
Low value of foreground, hue, intensity, saturation or value according to current filter mode...
QString colorFilterModeToString(ColorFilterMode colorFilterMode)
void setHigh(double s0To1)
Set the high value for the current filter mode.
virtual void setHigh(ColorFilterSettings &colorFilterSettings, double s0To1)=0
Set the high value given the normalized value.
virtual void setLow(ColorFilterSettings &colorFilterSettings, double s0To1)=0
Set the low value given the normalized value.
void setHueHigh(int hueHigh)
Set method for hue higher bound.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_SATURATION_HIGH
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void setForegroundHigh(int foregroundHigh)
Set method for foreground higher bound.
Leaf class for value strategy for ColorFilterSettings.
int foregroundHigh() const
Get method for foreground higher bound.
const int INTENSITY_LOW_DEFAULT
static ColorFilterSettings defaultFilter()
Initial default for any Curve.
int intensityHigh() const
Get method for intensity higher bound.
void setIntensityHigh(int intensityHigh)
Set method for intensity higher bound.
int intensityLow() const
Get method for intensity lower bound.
Leaf class for intensity strategy for ColorFilterSettings.
int saturationHigh() const
Get method for saturation higher bound.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_HUE_LOW
const int INTENSITY_MIN
Constants for use by CurveFilter and other curve-related classes.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_LOW
void setValueHigh(int valueHigh)
Set method for value high.
const int SATURATION_HIGH_DEFAULT
void setIntensityLow(int intensityLow)
Set method for intensity lower bound.
int valueLow() const
Get method for value low.
void setValueLow(int valueLow)
Set method for value low.
virtual double high(const ColorFilterSettings &colorFilterSettings) const =0
Return the high value normalized to 0 to 1.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_INTENSITY_LOW
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_VALUE_HIGH
ColorFilterMode colorFilterMode() const
Get method for filter mode.
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_MODE_STRING
void setSaturationHigh(int saturationHigh)
Set method for saturation high.
log4cpp::Category * mainCat
void loadXml(QXmlStreamReader &reader)
Load curve filter to stream.
~ColorFilterSettings()
Destructor deallocates memory.
const int VALUE_LOW_DEFAULT
Leaf class for foreground strategy for ColorFilterSettings.
void saveXml(QXmlStreamWriter &writer, const QString &curveName) const
Save curve filter to stream.
ColorFilterSettings()
Default constructor only for use when this class is being stored by a container that requires the def...
const int VALUE_HIGH_DEFAULT
const QString DOCUMENT_SERIALIZE_COLOR_FILTER_FOREGROUND_LOW
int hueLow() const
Get method for hue lower bound.
const int FOREGROUND_HIGH_DEFAULT
virtual double low(const ColorFilterSettings &colorFilterSettings) const =0
Return the low value normalized to 0 to 1.
const int HUE_HIGH_DEFAULT
const QString DOCUMENT_SERIALIZE_CURVE_NAME
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
int saturationLow() const
Get method for saturation lower bound.