7 #include "CmdMediator.h" 8 #include "CoordSystem.h" 9 #include "DocumentModelColorFilter.h" 10 #include "DocumentSerialize.h" 11 #include "EngaugeAssert.h" 13 #include <QStringList> 14 #include <QTextStream> 15 #include <QXmlStreamWriter> 20 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::DocumentModelColorFilter";
25 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::DocumentModelColorFilter";
33 QStringList::const_iterator itr;
34 for (itr = graphCurveNames.begin (); itr != graphCurveNames.end (); itr++) {
36 const QString &graphCurveName = *itr;
45 ColorFilterSettingsList::const_iterator itr;
47 QString curveName = itr.key();
56 ColorFilterSettingsList::const_iterator itr;
58 QString curveName = itr.key();
68 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
69 return m_colorFilterSettingsList [curveName].colorFilterMode();
74 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
75 return m_colorFilterSettingsList [curveName];
80 return m_colorFilterSettingsList;
85 QStringList curveNames (m_colorFilterSettingsList.keys());
86 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::foregroundHigh" 87 <<
" curve=" << curveName.toLatin1().data()
88 <<
" curves=" << curveNames.join(
",").toLatin1().data();
90 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
91 return m_colorFilterSettingsList [curveName].foregroundHigh();
96 QStringList curveNames (m_colorFilterSettingsList.keys());
97 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::foregroundLow" 98 <<
" curve=" << curveName.toLatin1().data()
99 <<
" curves=" << curveNames.join(
",").toLatin1().data();
101 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
102 return m_colorFilterSettingsList [curveName].foregroundLow();
107 QStringList curveNames (m_colorFilterSettingsList.keys());
108 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::high" 109 <<
" curve=" << curveName.toLatin1().data()
110 <<
" curves=" << curveNames.join(
",").toLatin1().data();
112 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
113 return m_colorFilterSettingsList [curveName].high();
118 QStringList curveNames (m_colorFilterSettingsList.keys());
119 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::hueHigh" 120 <<
" curve=" << curveName.toLatin1().data()
121 <<
" curves=" << curveNames.join(
",").toLatin1().data();
123 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
124 return m_colorFilterSettingsList [curveName].hueHigh();
129 QStringList curveNames (m_colorFilterSettingsList.keys());
130 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::hueLow" 131 <<
" curve=" << curveName.toLatin1().data()
132 <<
" curves=" << curveNames.join(
",").toLatin1().data();
134 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
135 return m_colorFilterSettingsList [curveName].hueLow();
140 QStringList curveNames (m_colorFilterSettingsList.keys());
141 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::intensityHigh" 142 <<
" curve=" << curveName.toLatin1().data()
143 <<
" curves=" << curveNames.join(
",").toLatin1().data();
145 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
146 return m_colorFilterSettingsList [curveName].intensityHigh();
151 QStringList curveNames (m_colorFilterSettingsList.keys());
152 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::intensityLow" 153 <<
" curve=" << curveName.toLatin1().data()
154 <<
" curves=" << curveNames.join(
",").toLatin1().data();
156 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
157 return m_colorFilterSettingsList [curveName].intensityLow();
162 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::loadXml";
166 m_colorFilterSettingsList.clear();
170 bool inFilter =
false;
171 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
172 (reader.name() != DOCUMENT_SERIALIZE_FILTER)) {
173 loadNextFromReader(reader);
174 if (reader.atEnd()) {
179 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
180 (reader.name() == DOCUMENT_SERIALIZE_COLOR_FILTER)) {
185 if (inFilter && ((reader.tokenType() == QXmlStreamReader::StartElement) &&
186 (reader.name() == DOCUMENT_SERIALIZE_COLOR_FILTER))) {
188 QXmlStreamAttributes attributes = reader.attributes();
190 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_CURVE_NAME)) {
192 QString curveName = attributes.value(DOCUMENT_SERIALIZE_CURVE_NAME).toString();
205 reader.raiseError(QObject::tr (
"Cannot read filter data"));
209 loadNextFromReader(reader);
214 QStringList curveNames (m_colorFilterSettingsList.keys());
215 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::low" 216 <<
" curve=" << curveName.toLatin1().data()
217 <<
" curves=" << curveNames.join(
",").toLatin1().data();
219 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
220 return m_colorFilterSettingsList [curveName].low();
225 QStringList curveNames (m_colorFilterSettingsList.keys());
226 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::saturationHigh" 227 <<
" curve=" << curveName.toLatin1().data()
228 <<
" curves=" << curveNames.join(
",").toLatin1().data();
230 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
231 return m_colorFilterSettingsList [curveName].saturationHigh();
236 QStringList curveNames (m_colorFilterSettingsList.keys());
237 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::saturationLow" 238 <<
" curve=" << curveName.toLatin1().data()
239 <<
" curves=" << curveNames.join(
",").toLatin1().data();
241 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
242 return m_colorFilterSettingsList [curveName].saturationLow();
247 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelColorFilter::saveXml";
249 writer.writeStartElement(DOCUMENT_SERIALIZE_FILTER);
252 ColorFilterSettingsList::const_iterator itr;
253 for (itr = m_colorFilterSettingsList.begin (); itr != m_colorFilterSettingsList.end (); itr++) {
255 QString curveName = itr.key();
258 colorFilterSettings.
saveXml(writer,
262 writer.writeEndElement();
268 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
269 m_colorFilterSettingsList [curveName].setColorFilterMode(colorFilterMode);
275 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
276 m_colorFilterSettingsList [curveName].setForegroundHigh(foregroundHigh);
282 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
283 m_colorFilterSettingsList [curveName].setForegroundLow(foregroundLow);
289 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
290 m_colorFilterSettingsList [curveName].setHigh(s0To1);
296 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
297 m_colorFilterSettingsList [curveName].setHueHigh(hueHigh);
303 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
304 m_colorFilterSettingsList [curveName].setHueLow(hueLow);
310 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
311 m_colorFilterSettingsList [curveName].setIntensityHigh(intensityHigh);
317 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
318 m_colorFilterSettingsList [curveName].setIntensityLow(intensityLow);
324 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
325 m_colorFilterSettingsList [curveName].setLow(s0To1);
331 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
332 m_colorFilterSettingsList [curveName].setSaturationHigh(saturationHigh);
338 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
339 m_colorFilterSettingsList [curveName].setSaturationLow(saturationLow);
345 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
346 m_colorFilterSettingsList [curveName].setValueHigh(valueHigh);
352 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
353 m_colorFilterSettingsList [curveName].setValueLow(valueLow);
358 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
359 return m_colorFilterSettingsList [curveName].valueHigh();
364 ENGAUGE_ASSERT (m_colorFilterSettingsList.contains (curveName));
365 return m_colorFilterSettingsList [curveName].valueLow();
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.
int valueHigh(const QString &curveName) const
Get method for value high.
DocumentModelColorFilter()
Default constructor.
Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointSt...
int valueLow(const QString &curveName) const
Get method for value low.
void setColorFilterMode(const QString &curveName, ColorFilterMode colorFilterMode)
Set method for filter mode.
int hueHigh(const QString &curveName) const
Get method for hue higher bound.
ColorFilterSettings colorFilterSettings() const
Return the color filter.
int saturationLow(const QString &curveName) const
Get method for saturation lower bound.
int foregroundHigh(const QString &curveName) const
Get method for foreground higher bound.
Storage of data belonging to one coordinate system.
virtual QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
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...
ColorFilterMode colorFilterMode(const QString &curveName) const
Get method for filter mode.
void setValueLow(const QString &curveName, int valueLow)
Set method for value low.
int hueLow(const QString &curveName) const
Get method for hue lower bound.
int saturationHigh(const QString &curveName) const
Get method for saturation higher bound.
DocumentModelColorFilter & operator=(const DocumentModelColorFilter &other)
Assignment constructor.
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 high(const QString &curveName) const
High value of foreground, hue, intensity, saturation or value according to current filter mode...
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
int intensityLow(const QString &curveName) const
Get method for intensity lower bound.
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.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
void setIntensityHigh(const QString &curveName, int intensityHigh)
Set method for intensity higher bound.
int foregroundLow(const QString &curveName) const
Get method for foreground lower bound.
Container for one set of digitized Points.
void setLow(const QString &curveName, double s0To1)
Set the low value for the current filter mode.
void setSaturationLow(const QString &curveName, int saturationLow)
Set method for saturation low.
virtual Curve * curveForCurveName(const QString &curveName)
See CurvesGraphs::curveForCurveName, although this also works for AXIS_CURVE_NAME.
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.
void saveXml(QXmlStreamWriter &writer, const QString &curveName) const
Save curve filter to stream.
void setValueHigh(const QString &curveName, int valueHigh)
Set method for value high.
double low(const QString &curveName) const
Low value of foreground, hue, intensity, saturation or value according to current filter mode normali...
virtual const Curve & curveAxes() const
Get method for axis curve.