1 #include "CmdMediator.h"
2 #include "DocumentModelColorFilter.h"
3 #include "DocumentSerialize.h"
4 #include "EngaugeAssert.h"
7 #include <QXmlStreamWriter>
22 QStringList::const_iterator itr;
23 for (itr = graphCurveNames.begin (); itr != graphCurveNames.end (); itr++) {
25 const QString &graphCurveName = *itr;
34 ColorFilterSettingsList::const_iterator itr;
36 QString curveName = itr.key();
45 ColorFilterSettingsList::const_iterator itr;
47 QString curveName = itr.key();
57 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
58 return m_colorFilterSettingsList [curveName].colorFilterMode();
63 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
64 return m_colorFilterSettingsList [curveName];
69 return m_colorFilterSettingsList;
74 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
75 return m_colorFilterSettingsList [curveName].foregroundHigh();
80 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
81 return m_colorFilterSettingsList [curveName].foregroundLow();
86 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
87 return m_colorFilterSettingsList [curveName].high();
92 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
93 return m_colorFilterSettingsList [curveName].hueHigh();
98 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
99 return m_colorFilterSettingsList [curveName].hueLow();
104 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
105 return m_colorFilterSettingsList [curveName].intensityHigh();
110 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
111 return m_colorFilterSettingsList [curveName].intensityLow();
116 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::loadXml";
120 m_colorFilterSettingsList.clear();
122 while ((reader.tokenType() != QXmlStreamReader::EndElement) &&
123 (reader.name() != DOCUMENT_SERIALIZE_FILTER)) {
124 loadNextFromReader(reader);
125 if (reader.atEnd()) {
130 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
131 (reader.name() == DOCUMENT_SERIALIZE_COLOR_FILTER)) {
133 QXmlStreamAttributes attributes = reader.attributes();
135 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_CURVE_NAME)) {
137 QString curveName = attributes.value(DOCUMENT_SERIALIZE_CURVE_NAME).toString();
150 reader.raiseError(
"Cannot read filter data");
156 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
157 return m_colorFilterSettingsList [curveName].low();
162 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
163 return m_colorFilterSettingsList [curveName].saturationHigh();
168 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
169 return m_colorFilterSettingsList [curveName].saturationLow();
174 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::saveXml";
176 writer.writeStartElement(DOCUMENT_SERIALIZE_FILTER);
179 ColorFilterSettingsList::const_iterator itr;
180 for (itr = m_colorFilterSettingsList.begin (); itr != m_colorFilterSettingsList.end (); itr++) {
182 colorFilterSettings.
saveXml(writer);
185 writer.writeEndElement();
189 ColorFilterMode colorFilterMode)
191 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
192 m_colorFilterSettingsList [curveName].setColorFilterMode(colorFilterMode);
198 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
199 m_colorFilterSettingsList [curveName].setForegroundHigh(foregroundHigh);
205 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
206 m_colorFilterSettingsList [curveName].setForegroundLow(foregroundLow);
212 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
213 m_colorFilterSettingsList [curveName].setHigh(s0To1);
219 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
220 m_colorFilterSettingsList [curveName].setHueHigh(hueHigh);
226 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
227 m_colorFilterSettingsList [curveName].setHueLow(hueLow);
233 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
234 m_colorFilterSettingsList [curveName].setIntensityHigh(intensityHigh);
240 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
241 m_colorFilterSettingsList [curveName].setIntensityLow(intensityLow);
247 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
248 m_colorFilterSettingsList [curveName].setLow(s0To1);
254 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
255 m_colorFilterSettingsList [curveName].setSaturationHigh(saturationHigh);
261 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
262 m_colorFilterSettingsList [curveName].setSaturationLow(saturationLow);
268 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
269 m_colorFilterSettingsList [curveName].setValueHigh(valueHigh);
275 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
276 m_colorFilterSettingsList [curveName].setValueLow(valueLow);
281 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
282 return m_colorFilterSettingsList [curveName].valueHigh();
287 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
288 return m_colorFilterSettingsList [curveName].valueLow();
DocumentModelColorFilter()
Default constructor.
int valueHigh(const QString &curveName) const
Get method for value high.
Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointSt...
void setColorFilterMode(const QString &curveName, ColorFilterMode colorFilterMode)
Set method for filter mode.
int saturationLow(const QString &curveName) const
Get method for saturation lower bound.
const Curve & curveAxes() const
Get method for axis curve.
int valueLow(const QString &curveName) const
Get method for value low.
void setValueLow(const QString &curveName, int valueLow)
Set method for value low.
int foregroundLow(const QString &curveName) const
Get method for foreground lower bound.
DocumentModelColorFilter & operator=(const DocumentModelColorFilter &other)
Assignment constructor.
int intensityLow(const QString &curveName) const
Get method for intensity lower bound.
void setForegroundLow(const QString &curveName, int foregroundLow)
Set method for foreground lower bound.
void setHueLow(const QString &curveName, int hueLow)
Set method for hue lower bound.
double low(const QString &curveName) const
Low value of foreground, hue, intensity, saturation or value according to current filter mode normali...
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
void setIntensityLow(const QString &curveName, int intensityLow)
Set method for intensity lower bound.
void setHigh(const QString &curveName, double s0To1)
Set the high value for the current filter mode.
void setForegroundHigh(const QString &curveName, int foregroundHigh)
Set method for foreground higher bound.
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
int hueLow(const QString &curveName) const
Get method for hue lower bound.
double high(const QString &curveName) const
High value of foreground, hue, intensity, saturation or value according to current filter mode...
void saveXml(QXmlStreamWriter &writer) const
Save curve filter to stream.
void setIntensityHigh(const QString &curveName, int intensityHigh)
Set method for intensity higher bound.
int hueHigh(const QString &curveName) const
Get method for hue higher bound.
int foregroundHigh(const QString &curveName) const
Get method for foreground higher bound.
ColorFilterMode colorFilterMode(const QString &curveName) const
Get method for filter mode.
Storage of one imported image and the data attached to that image.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
Container for one set of digitized Points.
QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
void setLow(const QString &curveName, double s0To1)
Set the low value for the current filter mode.
const ColorFilterSettings colorFilterSettings(const QString &curveName) const
Get method for copying one color filter. Cannot return just a reference or else there is a warning ab...
void setSaturationLow(const QString &curveName, int saturationLow)
Set method for saturation low.
void setSaturationHigh(const QString &curveName, int saturationHigh)
Set method for saturation high.
void setHueHigh(const QString &curveName, int hueHigh)
Set method for hue higher bound.
const Curve * curveForCurveName(const QString &curveName) const
See CurvesGraphs::curveForCurveNames, although this also works for AXIS_CURVE_NAME.
void setValueHigh(const QString &curveName, int valueHigh)
Set method for value high.
int intensityHigh(const QString &curveName) const
Get method for intensity higher bound.
const ColorFilterSettingsList & colorFilterSettingsList() const
Get method for copying all color filters in one step.
ColorFilterSettings colorFilterSettings() const
Return the color filter.
int saturationHigh(const QString &curveName) const
Get method for saturation higher bound.