8 #include "CurveStyles.h" 10 #include "EngaugeAssert.h" 11 #include "GraphicsLinesForCurve.h" 12 #include "GraphicsLinesForCurves.h" 13 #include "GraphicsPoint.h" 14 #include "GraphicsPointAbstractBase.h" 15 #include "GraphicsScene.h" 19 #include <QGraphicsItem> 20 #include <QTextStream> 21 #include "QtToString.h" 22 #include "Transformation.h" 29 const QString &pointIdentifier,
33 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::addPoint" 34 <<
" curve=" << curveName.toLatin1().data()
35 <<
" identifier=" << pointIdentifier.toLatin1().data()
36 <<
" ordinal=" << ordinal
37 <<
" pos=" << QPointFToString (point.
pos()).toLatin1().data();
39 m_graphicsLinesForCurve [curveName]->addPoint (pointIdentifier,
45 const QStringList &curveNames)
47 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::addRemoveCurves" 48 <<
" curveCount=" << m_graphicsLinesForCurve.count();
51 QStringList::const_iterator itrC;
52 for (itrC = curveNames.begin (); itrC != curveNames.end (); itrC++) {
54 QString curveName = *itrC;
56 if (!m_graphicsLinesForCurve.contains (curveName)) {
61 m_graphicsLinesForCurve [curveName] = item;
66 GraphicsLinesContainer::const_iterator itrG, itrGNext;
67 for (itrG = m_graphicsLinesForCurve.begin (); itrG != m_graphicsLinesForCurve.end (); itrG = itrGNext) {
69 const QString curveName = itrG.key ();
75 if (!curveNames.contains (curveName)) {
78 m_graphicsLinesForCurve.remove (curveName);
85 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::lineMembershipPurge";
87 GraphicsLinesContainer::const_iterator itr;
88 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
90 const QString curveName = itr.key ();
99 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::lineMembershipReset";
101 GraphicsLinesContainer::const_iterator itr;
102 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
113 QTextStream str (&text);
116 std::cerr << text.toLatin1().data();
120 QTextStream &str)
const 122 str << indentation <<
"GraphicsLinesForCurves\n";
124 indentation += INDENTATION_DELTA;
126 GraphicsLinesContainer::const_iterator itr;
127 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
138 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::removePoint" 139 <<
" point=" << identifier.toLatin1().data ()
140 <<
" curveCount=" << m_graphicsLinesForCurve.count();
144 ENGAUGE_ASSERT (m_graphicsLinesForCurve.contains (curveName));
145 double ordinal = m_graphicsLinesForCurve [curveName]->identifierToOrdinal (identifier);
146 m_graphicsLinesForCurve [curveName]->removePoint(ordinal);
151 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::removeTemporaryPointIfExists";
155 ENGAUGE_ASSERT (m_graphicsLinesForCurve.contains (curveName));
156 m_graphicsLinesForCurve [curveName]->removeTemporaryPointIfExists ();
161 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::resetOnLoad";
163 GraphicsLinesContainer::iterator itr;
164 for (itr = m_graphicsLinesForCurve.begin(); itr != m_graphicsLinesForCurve.end(); itr++) {
169 m_graphicsLinesForCurve.clear();
174 const QString &curveName,
178 LOG4CPP_DEBUG_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateAfterCommand" 179 <<
" point=" << point.
identifier().toLatin1().data()
180 <<
" curveCount=" << m_graphicsLinesForCurve.count();
182 ENGAUGE_ASSERT (m_graphicsLinesForCurve.contains (curveName));
183 m_graphicsLinesForCurve [curveName]->updateAfterCommand (scene,
191 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateCurveStyles";
193 GraphicsLinesContainer::const_iterator itr;
194 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
196 QString curveName = itr.key();
198 m_graphicsLinesForCurve [curveName]->updateCurveStyle (modelCurveStyles.
curveStyle (curveName));
204 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateGraphicsLinesToMatchGraphicsPoints";
206 GraphicsLinesContainer::const_iterator itr;
207 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
209 QString curveName = itr.key();
212 if (curveName != AXIS_CURVE_NAME) {
214 m_graphicsLinesForCurve [curveName]->updateGraphicsLinesToMatchGraphicsPoints(curveStyles.
lineStyle (curveName));
221 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateHighlightOpacity" 222 <<
" highlightOpacity=" << highlightOpacity;
224 GraphicsLinesContainer::const_iterator itr;
225 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
227 QString curveName = itr.key();
229 m_graphicsLinesForCurve [curveName]->updateHighlightOpacity (highlightOpacity);
236 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updatePointOrdinalsAfterDrag";
238 GraphicsLinesContainer::const_iterator itr;
239 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
241 QString curveName = itr.key();
void lineMembershipPurge(const CurveStyles &curveStyles)
Mark the end of addPoint calls. Remove stale lines, insert missing lines, and draw the graphics lines...
void removePoint(const QString &identifier)
Remove the specified point. The act of deleting it will automatically remove it from the GraphicsScen...
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
static QString curveNameFromPointIdentifier(const QString &pointIdentifier)
Parse the curve name from the specified point identifier. This does the opposite of uniqueIdentifierG...
void lineMembershipReset()
Mark points as unwanted. Afterwards, lineMembershipPurge gets called.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
QPointF pos() const
Proxy method for QGraphicsItem::pos.
GraphicsLinesForCurves()
Single constructor.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
void addPoint(const QString &curveName, const QString &pointIdentifier, double ordinal, GraphicsPoint &point)
Add new point.
void lineMembershipReset()
Mark points as unwanted. Afterwards, lineMembershipPurge gets called.
const PointStyle pointStyle(const QString &curveName) const
Get method for copying one point style. Cannot return just a reference or else there is a warning abo...
void removeTemporaryPointIfExists()
Remove temporary point if it exists.
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
Window that displays the geometry information, as a table, for the current curve. ...
static QString temporaryPointIdentifier()
Point identifier for temporary point that is used by DigitzeStateAxis.
void updateAfterCommand(GraphicsScene &scene, const CurveStyles &curveStyles, const QString &curveName, const Point &point, GeometryWindow *geometryWindow)
Update the GraphicsScene with the specified Point from the Document. If it does not exist yet in the ...
void updatePointOrdinalsAfterDrag(const CurveStyles &curveStyles, const Transformation &transformation)
See GraphicsScene::updateOrdinalsAfterDrag.
void updatePointOrdinalsAfterDrag(const LineStyle &lineStyle, const Transformation &transformation)
See GraphicsScene::updateOrdinalsAfterDrag. Pretty much the same steps as Curve::updatePointOrdinals...
This class stores the GraphicsLine objects for one Curve.
void updateGraphicsLinesToMatchGraphicsPoints(const CurveStyles &curveStyles)
Calls to moveLinesWithDraggedPoint have finished so update the lines correspondingly.
QString identifier() const
Unique identifier for a specific Point.
void print() const
Debugging method for printing directly from symbolic debugger.
const LineStyle lineStyle(const QString &curveName) const
Get method for copying one line style in one step.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Graphics item for drawing a circular or polygonal Point.
void updateCurveStyles(const CurveStyles &modelCurveStyles)
Update the curve style for every curve.
Add point and line handling to generic QGraphicsScene.
void resetOnLoad()
Reset, when loading a document after the first, to same state that first document was at when loaded...
void lineMembershipPurge(const LineStyle &lineStyle)
Mark the end of addPoint calls. Remove stale lines, insert missing lines, and draw the graphics lines...
void addRemoveCurves(GraphicsScene &scene, const QStringList &curveNames)
Add new curves and remove expired curves to match the specified list.
void updateHighlightOpacity(double highlightOpacity)
Update the highlight opacity value. This may or may not affect the current display immediately depend...