00001
00002
00003
00004
00005
00006
00007 #ifndef GRAPHICS_LINES_FOR_CURVES_H
00008 #define GRAPHICS_LINES_FOR_CURVES_H
00009
00010 #include <QHash>
00011
00012 class CurveStyles;
00013 class GraphicsLinesForCurve;
00014 class GraphicsPoint;
00015 class GraphicsScene;
00016 class Point;
00017 class QGraphicsItem;
00018 class QPointF;
00019 class QTextStream;
00020 class Transformation;
00021
00022 typedef QHash<QString, GraphicsLinesForCurve*> GraphicsLinesContainer;
00023
00025 class GraphicsLinesForCurves
00026 {
00027 public:
00029 GraphicsLinesForCurves();
00030
00033 void addPoint (const QString &curveName,
00034 const QString &pointIdentifier,
00035 double ordinal,
00036 GraphicsPoint &point);
00037
00039 void addRemoveCurves (GraphicsScene &scene,
00040 const QStringList &curveNames);
00041
00043 void lineMembershipPurge (const CurveStyles &curveStyles);
00044
00046 void lineMembershipReset ();
00047
00049 void print () const;
00050
00052 void printStream (QString indentation,
00053 QTextStream &str) const;
00054
00056 void removePoint (const QString &identifier);
00057
00060 void removeTemporaryPointIfExists ();
00061
00063 void resetOnLoad();
00064
00066 void updateAfterCommand (GraphicsScene &scene,
00067 const CurveStyles &curveStyles,
00068 const QString &curveName,
00069 const Point &point);
00070
00072 void updateCurveStyles (const CurveStyles &modelCurveStyles);
00073
00075 void updateGraphicsLinesToMatchGraphicsPoints (const CurveStyles &curveStyles);
00076
00078 void updatePointOrdinalsAfterDrag (const CurveStyles &curveStyles,
00079 const Transformation &transformation);
00080
00081 private:
00082
00083 GraphicsLinesContainer m_graphicsLinesForCurve;
00084 };
00085
00086 #endif // GRAPHICS_LINES_FOR_CURVES_H