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
00019 DigitizeStateCurve::DigitizeStateCurve (DigitizeStateContext &context) :
00020 DigitizeStateAbstractBase (context)
00021 {
00022 }
00023
00024 DigitizeStateCurve::~DigitizeStateCurve ()
00025 {
00026 }
00027
00028 QString DigitizeStateCurve::activeCurve () const
00029 {
00030 return context().mainWindow().selectedGraphCurve();
00031 }
00032
00033 void DigitizeStateCurve::begin (CmdMediator *cmdMediator,
00034 DigitizeState )
00035 {
00036 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::begin";
00037
00038 setCursor(cmdMediator);
00039 context().setDragMode(QGraphicsView::NoDrag);
00040 context().mainWindow().updateViewsOfSettings(activeCurve ());
00041 }
00042
00043 QCursor DigitizeStateCurve::cursor(CmdMediator *cmdMediator) const
00044 {
00045 LOG4CPP_DEBUG_S ((*mainCat)) << "DigitizeStateCurve::cursor";
00046
00047 CursorFactory cursorFactory;
00048 QCursor cursor = cursorFactory.generate (cmdMediator->document().modelDigitizeCurve());
00049
00050 return cursor;
00051 }
00052
00053 void DigitizeStateCurve::end ()
00054 {
00055 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::end";
00056 }
00057
00058 void DigitizeStateCurve::handleCurveChange(CmdMediator * )
00059 {
00060 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleCurveChange";
00061 }
00062
00063 void DigitizeStateCurve::handleKeyPress (CmdMediator * ,
00064 Qt::Key key,
00065 bool )
00066 {
00067 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleKeyPress"
00068 << " key=" << QKeySequence (key).toString ().toLatin1 ().data ();
00069 }
00070
00071 void DigitizeStateCurve::handleMouseMove (CmdMediator * ,
00072 QPointF )
00073 {
00074
00075 }
00076
00077 void DigitizeStateCurve::handleMousePress (CmdMediator * ,
00078 QPointF )
00079 {
00080 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleMousePress";
00081 }
00082
00083 void DigitizeStateCurve::handleMouseRelease (CmdMediator *cmdMediator,
00084 QPointF posScreen)
00085 {
00086 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::handleMouseRelease";
00087
00088
00089 OrdinalGenerator ordinalGenerator;
00090 Document &document = cmdMediator->document ();
00091 const Transformation &transformation = context ().mainWindow ().transformation();
00092 QUndoCommand *cmd = new CmdAddPointGraph (context ().mainWindow(),
00093 document,
00094 context ().mainWindow().selectedGraphCurve(),
00095 posScreen,
00096 ordinalGenerator.generateCurvePointOrdinal(document,
00097 transformation,
00098 posScreen,
00099 activeCurve ()));
00100 context().appendNewCmd(cmdMediator,
00101 cmd);
00102 }
00103
00104 QString DigitizeStateCurve::state() const
00105 {
00106 return "DigitizeStateCurve";
00107 }
00108
00109 void DigitizeStateCurve::updateModelDigitizeCurve (CmdMediator *cmdMediator,
00110 const DocumentModelDigitizeCurve & )
00111 {
00112 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::updateModelDigitizeCurve";
00113
00114 setCursor(cmdMediator);
00115 }
00116
00117 void DigitizeStateCurve::updateModelSegments(const DocumentModelSegments & )
00118 {
00119 LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateCurve::updateModelSegments";
00120 }