Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
CmdMediator.cpp
1 #include "CmdAbstract.h"
2 #include "CmdFactory.h"
3 #include "CmdMediator.h"
4 #include "Document.h"
5 #include "DocumentSerialize.h"
6 #include "EngaugeAssert.h"
7 #include "Logger.h"
8 #include "LoggerUpload.h"
9 #include "MainWindow.h"
10 #include "Point.h"
11 #include <QDomNode>
12 #include <QImage>
13 #include <QUndoCommand>
14 #include <QXmlStreamReader>
15 #include <QXmlStreamWriter>
16 #include "Transformation.h"
17 #include "Xml.h"
18 
20  const QImage &image) :
21  m_document (image)
22 {
23  LOG4CPP_INFO_S ((*mainCat)) << "CmdMediator::CmdMediator image=" << image.width() << "x" << image.height ();
24 
25  connectSignals(mainWindow);
26 }
27 
29  const QString &fileName) :
30  m_document (fileName)
31 {
32  LOG4CPP_INFO_S ((*mainCat)) << "CmdMediator::CmdMediator filename=" << fileName.toLatin1().data();
33 
34  connectSignals(mainWindow);
35 }
36 
38 {
39 }
40 
41 void CmdMediator::connectSignals (MainWindow &mainWindow)
42 {
43  connect (this, SIGNAL (cleanChanged (bool)), &mainWindow, SLOT (slotCleanChanged (bool)));
44 }
45 
47 {
48  return m_document.curveAxes ();
49 }
50 
51 QStringList CmdMediator::curvesGraphsNames () const
52 {
53  return m_document.curvesGraphsNames();
54 }
55 
56 int CmdMediator::curvesGraphsNumPoints (const QString &curveName) const
57 {
58  return m_document.curvesGraphsNumPoints(curveName);
59 }
60 
62 {
63  return m_document;
64 }
65 
67 {
68  return m_document;
69 }
70 
72 {
73  return !isClean();
74 }
75 
76 void CmdMediator::iterateThroughCurvePointsAxes (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback)
77 {
78  m_document.iterateThroughCurvePointsAxes (ftorWithCallback);
79 }
80 
81 void CmdMediator::iterateThroughCurvePointsAxes (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const
82 {
83  m_document.iterateThroughCurvePointsAxes (ftorWithCallback);
84 }
85 
86 void CmdMediator::iterateThroughCurvesPointsGraphs (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback)
87 {
88  return m_document.iterateThroughCurvesPointsGraphs (ftorWithCallback);
89 }
90 
91 QPixmap CmdMediator::pixmap () const
92 {
93  ENGAUGE_ASSERT (m_document.successfulRead ());
94 
95  return m_document.pixmap ();
96 }
97 
99 {
100  return m_document.reasonForUnsuccessfulRead ();
101 }
102 
103 void CmdMediator::saveXml(QXmlStreamWriter &writer) const
104 {
105  writer.writeStartElement(DOCUMENT_SERIALIZE_CMD_MEDIATOR);
106 
107  for (int i = 0; i < index(); i++) {
108 
109  const CmdAbstract *cmd = dynamic_cast<const CmdAbstract *>(command(i));
110  cmd->saveXml (writer);
111  }
112 
113  writer.writeEndElement();
114 }
115 
117 {
118  return m_document.successfulRead();
119 }
const Curve & curveAxes() const
See Document::curveAxes.
Definition: CmdMediator.cpp:46
void saveXml(QXmlStreamWriter &writer) const
Serialize to xml.
Wrapper around QUndoCommand. This simplifies the more complicated feature set of QUndoCommand.
Definition: CmdAbstract.h:11
void iterateThroughCurvePointsAxes(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
See Curve::iterateThroughCurvePoints, for the axes curve.
Definition: Document.cpp:331
const Curve & curveAxes() const
Get method for axis curve.
Definition: Document.cpp:255
int curvesGraphsNumPoints(const QString &curveName) const
See CurvesGraphs::curvesGraphsNumPoints.
Definition: Document.cpp:298
QPixmap pixmap() const
Return the image that is being digitized.
Definition: Document.cpp:715
bool successfulRead() const
Return true if startup loading succeeded. If the loading failed then reasonForUnsuccessfulRed will ex...
Definition: Document.cpp:921
Document & document()
Provide the Document to commands, primarily for undo/redo processing.
Definition: CmdMediator.cpp:61
bool isModified() const
Dirty flag.
Definition: CmdMediator.cpp:71
~CmdMediator()
Destructor.
Definition: CmdMediator.cpp:37
QPixmap pixmap() const
See Document::pixmap.
Definition: CmdMediator.cpp:91
Storage of one imported image and the data attached to that image.
Definition: Document.h:29
Container for one set of digitized Points.
Definition: Curve.h:26
QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
Definition: Document.cpp:293
void iterateThroughCurvesPointsGraphs(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
See Curve::iterateThroughCurvePoints, for all the graphs curves.
Definition: Document.cpp:356
virtual void saveXml(QXmlStreamWriter &writer) const =0
Save commands as xml for later uploading.
void iterateThroughCurvesPointsGraphs(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
See Curve::iterateThroughCurvePoints, for all the graphs curves.
Definition: CmdMediator.cpp:86
void iterateThroughCurvePointsAxes(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
See Curve::iterateThroughCurvePoints, for the single axes curve.
Definition: CmdMediator.cpp:76
QString reasonForUnsuccessfulRead() const
Return an informative text message explaining why startup loading failed. Applies if successfulRead r...
Definition: Document.cpp:779
CmdMediator(MainWindow &mainWindow, const QImage &image)
Constructor for imported images and dragged images.
Definition: CmdMediator.cpp:19
QString reasonForUnsuccessfulRead() const
See Document::reasonForUnsuccessfulRead.
Definition: CmdMediator.cpp:98
int curvesGraphsNumPoints(const QString &curveName) const
See CurvesGraphs::curvesGraphsNumPoints.
Definition: CmdMediator.cpp:56
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition: MainWindow.h:60
QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
Definition: CmdMediator.cpp:51
bool successfulRead() const
Wrapper for Document::successfulRead.