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,
177 LOG4CPP_DEBUG_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateAfterCommand"
178 <<
" point=" << point.
identifier().toLatin1().data()
179 <<
" curveCount=" << m_graphicsLinesForCurve.count();
181 ENGAUGE_ASSERT (m_graphicsLinesForCurve.contains (curveName));
182 m_graphicsLinesForCurve [curveName]->updateAfterCommand (scene,
189 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateCurveStyles";
191 GraphicsLinesContainer::const_iterator itr;
192 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
194 QString curveName = itr.key();
196 m_graphicsLinesForCurve [curveName]->updateCurveStyle (modelCurveStyles.
curveStyle (curveName));
202 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updateGraphicsLinesToMatchGraphicsPoints";
204 GraphicsLinesContainer::const_iterator itr;
205 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
207 QString curveName = itr.key();
210 if (curveName != AXIS_CURVE_NAME) {
212 m_graphicsLinesForCurve [curveName]->updateGraphicsLinesToMatchGraphicsPoints(curveStyles.
lineStyle (curveName));
220 LOG4CPP_INFO_S ((*mainCat)) <<
"GraphicsLinesForCurves::updatePointOrdinalsAfterDrag";
222 GraphicsLinesContainer::const_iterator itr;
223 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
225 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...
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.
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 print() const
Debugging method for printing directly from symbolic debugger.
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.
void removeTemporaryPointIfExists()
Remove temporary point if it exists.
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
static QString temporaryPointIdentifier()
Point identifier for temporary point that is used by DigitzeStateAxis.
QString identifier() const
Unique identifier for a specific Point.
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...
const LineStyle lineStyle(const QString &curveName) const
Get method for copying one line style in one step.
This class stores the GraphicsLine objects for one Curve.
void updateGraphicsLinesToMatchGraphicsPoints(const CurveStyles &curveStyles)
Calls to moveLinesWithDraggedPoint have finished so update the lines correspondingly.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void updateAfterCommand(GraphicsScene &scene, const CurveStyles &curveStyles, const QString &curveName, const Point &point)
Update the GraphicsScene with the specified Point from the Document. If it does not exist yet in the ...
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.
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
void updateCurveStyles(const CurveStyles &modelCurveStyles)
Update the curve style for every curve.
QPointF pos() const
Proxy method for QGraphicsItem::pos.
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.