00001
00002
00003
00004
00005
00006
00007 #include "CmdAddPointGraph.h"
00008 #include "CmdMediator.h"
00009 #include "CursorFactory.h"
00010 #include "DigitizeStateContext.h"
00011 #include "DigitizeStateCurve.h"
00012 #include "Logger.h"
00013 #include "MainWindow.h"
00014 #include "OrdinalGenerator.h"
00015 #include <QCursor>
00016 #include <QGraphicsScene>
00017 #include <QImage>
00018 #include <QSize>
00019 #include "Transformation.h"
00020
00021 DigitizeStateCurve::DigitizeStateCurve (DigitizeStateContext &context) :
00022 DigitizeStateAbstractBase (context)
00023 {
00024 }
00025
00026 DigitizeStateCurve::~DigitizeStateCurve ()
00027 {
00028 }
00029
00030 QString DigitizeStateCurve::activeCurve () const
00031 {
00032 return context().mainWindow().selectedGraphCurve();
00033 }
00034
00035 void DigitizeStateCurve::begin (CmdMediator *cmdMediator,
00036 DigitizeState )
00037 {
00038 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::begin";
00039
00040 setCursor(cmdMediator);
00041 context().setDragMode(QGraphicsView::NoDrag);
00042 context().mainWindow().updateViewsOfSettings(activeCurve ());
00043 }
00044
00045 bool DigitizeStateCurve::canPaste (const Transformation &transformation,
00046 const QSize &size) const
00047 {
00048 return canPasteProtected (transformation,
00049 size);
00050 }
00051
00052 QCursor DigitizeStateCurve::cursor(CmdMediator *cmdMediator) const
00053 {
00054 LOG4CPP_DEBUG_S ((*mainCat)) << "DigitizeStateCurve::cursor";
00055
00056 CursorFactory cursorFactory;
00057 QCursor cursor = cursorFactory.generate (cmdMediator->document().modelDigitizeCurve());
00058
00059 return cursor;
00060 }
00061
00062 void DigitizeStateCurve::end ()
00063 {
00064 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::end";
00065 }
00066
00067 void DigitizeStateCurve::handleContextMenuEventAxis (CmdMediator * ,
00068 const QString &pointIdentifier)
00069 {
00070 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleContextMenuEventAxis "
00071 << " point=" << pointIdentifier.toLatin1 ().data ();
00072 }
00073
00074 void DigitizeStateCurve::handleContextMenuEventGraph (CmdMediator * ,
00075 const QStringList &pointIdentifiers)
00076 {
00077 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve ::handleContextMenuEventGraph "
00078 << "points=" << pointIdentifiers.join(",").toLatin1 ().data ();
00079 }
00080
00081 void DigitizeStateCurve::handleCurveChange(CmdMediator * )
00082 {
00083 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleCurveChange";
00084 }
00085
00086 void DigitizeStateCurve::handleKeyPress (CmdMediator * ,
00087 Qt::Key key,
00088 bool )
00089 {
00090 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleKeyPress"
00091 << " key=" << QKeySequence (key).toString ().toLatin1 ().data ();
00092 }
00093
00094 void DigitizeStateCurve::handleMouseMove (CmdMediator * ,
00095 QPointF )
00096 {
00097
00098 }
00099
00100 void DigitizeStateCurve::handleMousePress (CmdMediator * ,
00101 QPointF )
00102 {
00103 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleMousePress";
00104 }
00105
00106 void DigitizeStateCurve::handleMouseRelease (CmdMediator *cmdMediator,
00107 QPointF posScreen)
00108 {
00109 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleMouseRelease";
00110
00111
00112 OrdinalGenerator ordinalGenerator;
00113 Document &document = cmdMediator->document ();
00114 const Transformation &transformation = context ().mainWindow ().transformation();
00115 QUndoCommand *cmd = new CmdAddPointGraph (context ().mainWindow(),
00116 document,
00117 context ().mainWindow().selectedGraphCurve(),
00118 posScreen,
00119 ordinalGenerator.generateCurvePointOrdinal(document,
00120 transformation,
00121 posScreen,
00122 activeCurve ()));
00123 context().appendNewCmd(cmdMediator,
00124 cmd);
00125 }
00126
00127 QString DigitizeStateCurve::state() const
00128 {
00129 return "DigitizeStateCurve";
00130 }
00131
00132 void DigitizeStateCurve::updateAfterPointAddition ()
00133 {
00134 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::updateAfterPointAddition";
00135 }
00136
00137 void DigitizeStateCurve::updateModelDigitizeCurve (CmdMediator *cmdMediator,
00138 const DocumentModelDigitizeCurve & )
00139 {
00140 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::updateModelDigitizeCurve";
00141
00142 setCursor(cmdMediator);
00143 }
00144
00145 void DigitizeStateCurve::updateModelSegments(const DocumentModelSegments & )
00146 {
00147 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::updateModelSegments";
00148 }