7 #include "CmdAddPointAxis.h" 8 #include "CmdMediator.h" 9 #include "CursorFactory.h" 10 #include "DigitizeStateAxis.h" 11 #include "DigitizeStateContext.h" 12 #include "DlgEditPoint.h" 14 #include "GraphicsScene.h" 15 #include "GraphicsView.h" 17 #include "MainWindow.h" 18 #include "PointStyle.h" 21 #include <QMessageBox> 29 DigitizeStateAxis::~DigitizeStateAxis ()
35 return AXIS_CURVE_NAME;
41 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::begin";
48 void DigitizeStateAxis::createTemporaryPoint (
CmdMediator *cmdMediator,
49 const QPointF &posScreen)
51 LOG4CPP_DEBUG_S ((*mainCat)) <<
"DigitizeStateAxis::createTemporaryPoint";
66 LOG4CPP_DEBUG_S ((*mainCat)) <<
"DigitizeStateAxis::cursor";
76 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::end";
81 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::handleCurveChange";
88 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::handleKeyPress" 89 <<
" key=" << QKeySequence (key).toString ().toLatin1 ().data ();
101 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::handleMousePress";
107 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::handleMouseRelease";
109 if (
context().mainWindow().transformIsDefined()) {
111 QMessageBox::warning (0,
112 QObject::tr (
"Engauge Digitizer"),
113 QObject::tr (
"Three axis points have been defined, and no more are needed or allowed."));
117 createTemporaryPoint (cmdMediator,
128 int rtn = dlg->exec ();
131 QPointF posGraph = dlg->
posGraph (isXOnly);
137 if (rtn == QDialog::Accepted) {
142 QString errorMessage;
153 QMessageBox::warning (0,
154 QObject::tr (
"Engauge Digitizer"),
176 return "DigitizeStateAxis";
182 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::updateModelDigitizeCurve";
189 LOG4CPP_INFO_S ((*mainCat)) <<
"DigitizeStateAxis::updateModelSegments";
DocumentAxesPointsRequired documentAxesPointsRequired() const
Get method for DocumentAxesPointsRequired.
virtual void updateModelSegments(const DocumentModelSegments &modelSegments)
Update the segments given the new settings.
void removePoint(const QString &identifier)
Remove specified point. This aborts if the point does not exist.
Transformation transformation() const
Return read-only copy of transformation.
void setDragMode(QGraphicsView::DragMode dragMode)
Set QGraphicsView drag mode (in m_view). Called from DigitizeStateAbstractBase subclasses.
Create standard cross cursor, or custom cursor, according to settings.
void updateViewsOfSettings(const QString &activeCurve)
Update curve-specific view of settings. Private version gets active curve name from DigitizeStateCont...
DocumentModelCoords modelCoords() const
Get method for DocumentModelCoords.
QPointF posGraph(bool &isXOnly) const
Return the graph coordinates position specified by the user. Only applies if dialog was accepted...
PointStyle pointStyle() const
Get method for PointStyle.
virtual void handleMousePress(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse press that was intercepted earlier.
DigitizeStateContext & context()
Reference to the DigitizeStateContext that contains all the DigitizeStateAbstractBase subclasses...
void checkAddPointAxis(const QPointF &posScreen, const QPointF &posGraph, bool &isError, QString &errorMessage, bool isXOnly)
Check before calling addPointAxis. Also returns the next available ordinal number (to prevent clashes...
virtual QString activeCurve() const
Name of the active Curve. This can include AXIS_CURVE_NAME.
MainWindow & mainWindow()
Reference to the MainWindow, without const.
static QString temporaryPointIdentifier()
Point identifier for temporary point that is used by DigitzeStateAxis.
virtual void handleMouseMove(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse move. This is part of an experiment to see if augmenting the cursor in Point Match mod...
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Details for a specific Point.
GraphicsScene & scene()
Scene container for the QImage and QGraphicsItems.
void setCursor(CmdMediator *cmdMediator)
Update the cursor according to the current state.
virtual QString state() const
State name for debugging.
Container for all DigitizeStateAbstractBase subclasses. This functions as the context class in a stan...
void appendNewCmd(CmdMediator *cmdMediator, QUndoCommand *cmd)
Append just-created QUndoCommand to command stack. This is called from DigitizeStateAbstractBase subc...
Command for adding one axis point.
DocumentModelDigitizeCurve modelDigitizeCurve() const
Get method for DocumentModelDigitizeCurve.
virtual void handleKeyPress(CmdMediator *cmdMediator, Qt::Key key, bool atLeastOneSelectedItem)
Handle a key press that was intercepted earlier.
virtual void updateModelDigitizeCurve(CmdMediator *cmdMediator, const DocumentModelDigitizeCurve &modelDigitizeCurve)
Update the digitize curve settings.
Storage of one imported image and the data attached to that image.
Container for one set of digitized Points.
Graphics item for drawing a circular or polygonal Point.
virtual QCursor cursor(CmdMediator *cmdMediator) const
Returns the state-specific cursor shape.
Dialog box for editing the information of one axis point.
virtual void handleMouseRelease(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse release that was intercepted earlier.
int nextOrdinalForCurve(const QString &curveName) const
Default next ordinal value for specified curve.
void addTemporaryPoint(const QString &identifier, GraphicsPoint *point)
Add one temporary point to m_graphicsLinesForCurves. Non-temporary points are handled by the updateLi...
Model for DlgSettingsSegments and CmdSettingsSegments.
CurveStyle curveStyle() const
Return the curve style.
GraphicsPoint * createPoint(const QString &identifier, const PointStyle &pointStyle, const QPointF &posScreen)
Create one QGraphicsItem-based object that represents one Point. It is NOT added to m_graphicsLinesFo...
Base class for all digitizing states. This serves as an interface to DigitizeStateContext.
virtual void handleCurveChange(CmdMediator *cmdMediator)
Handle the selection of a new curve. At a minimum, DigitizeStateSegment will generate a new set of Se...
virtual void begin(CmdMediator *cmdMediator, DigitizeState previousState)
Method that is called at the exact moment a state is entered.
DigitizeStateAxis(DigitizeStateContext &context)
Single constructor.
QCursor generate(const DocumentModelDigitizeCurve &modelDigitizeCurve) const
Factory method to generate standard or custom cursor.
MainWindowModel modelMainWindow() const
Get method for main window model.
virtual void end()
Method that is called at the exact moment a state is exited. Typically called just before begin for t...