Engauge Digitizer 2
Loading...
Searching...
No Matches
DigitizeStateScale.h
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2017 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
7#ifndef DIGITIZE_STATE_SCALE_H
8#define DIGITIZE_STATE_SCALE_H
9
11#include <QObject>
12
13class GraphicsPoint;
14class MainWindow;
15class QGraphicsLineItem;
16class QPointF;
17
24class DigitizeStateScale : public QObject, public DigitizeStateAbstractBase
25{
26public:
29 virtual ~DigitizeStateScale();
30
31 virtual QString activeCurve () const;
32 virtual void begin(CmdMediator *cmdMediator,
33 DigitizeState previousState);
34 virtual bool canPaste (const Transformation &transformation,
35 const QSize &viewSize) const;
36 virtual QCursor cursor (CmdMediator *cmdMediator) const;
37 virtual void end();
38 virtual bool guidelinesAreSelectable () const;
39 virtual void handleContextMenuEventAxis (CmdMediator *cmdMediator,
40 const QString &pointIdentifier);
41 virtual void handleContextMenuEventGraph (CmdMediator *cmdMediator,
42 const QStringList &pointIdentifiers);
43 virtual void handleCurveChange(CmdMediator *cmdMediator);
44 virtual void handleKeyPress (CmdMediator *cmdMediator,
45 Qt::Key key,
46 bool atLeastOneSelectedItem);
47 virtual void handleMouseMove (CmdMediator *cmdMediator,
48 QPointF posScreen);
49 virtual void handleMousePress (CmdMediator *cmdMediator,
50 QPointF posScreen);
51 virtual void handleMouseRelease (CmdMediator *cmdMediator,
52 QPointF posScreen);
53 virtual QString state() const;
54 virtual void updateAfterPointAddition ();
55 virtual void updateModelDigitizeCurve (CmdMediator *cmdMediator,
56 const DocumentModelDigitizeCurve &modelDigitizeCurve);
57 virtual void updateModelSegments(const DocumentModelSegments &modelSegments);
58
59private:
61
62 void removeTemporaryPointsAndLine();
63 void updateLineGeometry ();
64
65 QString m_pointIdentifier0;
66 QString m_pointIdentifier1;
67 GraphicsPoint *m_temporaryPoint0;
68 GraphicsPoint *m_temporaryPoint1;
69
70 QGraphicsLineItem *m_line;
71};
72
73#endif // DIGITIZE_STATE_SCALE_H
DigitizeState
Set of possible states of Digitize toolbar.
Command queue stack.
Definition CmdMediator.h:24
DigitizeStateAbstractBase(DigitizeStateContext &context)
Single constructor.
DigitizeStateContext & context()
Reference to the DigitizeStateContext that contains all the DigitizeStateAbstractBase subclasses,...
Container for all DigitizeStateAbstractBase subclasses. This functions as the context class in a stan...
virtual bool guidelinesAreSelectable() const
Enable/disable guidelines according to state.
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 handleContextMenuEventAxis(CmdMediator *cmdMediator, const QString &pointIdentifier)
Handle a right click, on an axis point, that was intercepted earlier.
virtual void begin(CmdMediator *cmdMediator, DigitizeState previousState)
Method that is called at the exact moment a state is entered.
virtual void end()
Method that is called at the exact moment a state is exited. Typically called just before begin for t...
virtual void handleContextMenuEventGraph(CmdMediator *cmdMediator, const QStringList &pointIdentifiers)
Handle a right click, on a graph point, that was intercepted earlier.
virtual QString activeCurve() const
Name of the active Curve. This can include AXIS_CURVE_NAME.
virtual void handleMouseRelease(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse release that was intercepted earlier.
virtual void updateAfterPointAddition()
Update graphics attributes after possible new points. This is useful for highlight opacity.
virtual bool canPaste(const Transformation &transformation, const QSize &viewSize) const
Return true if there is good data in the clipboard for pasting, and that is compatible with the curre...
virtual void updateModelSegments(const DocumentModelSegments &modelSegments)
Update the segments given the new settings.
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...
virtual void updateModelDigitizeCurve(CmdMediator *cmdMediator, const DocumentModelDigitizeCurve &modelDigitizeCurve)
Update the digitize curve settings.
virtual QCursor cursor(CmdMediator *cmdMediator) const
Returns the state-specific cursor shape.
DigitizeStateScale(DigitizeStateContext &context)
Single constructor.
virtual void handleMousePress(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse press that was intercepted earlier.
virtual void handleKeyPress(CmdMediator *cmdMediator, Qt::Key key, bool atLeastOneSelectedItem)
Handle a key press that was intercepted earlier.
virtual QString state() const
State name for debugging.
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Model for DlgSettingsSegments and CmdSettingsSegments.
Graphics item for drawing a circular or polygonal Point.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition MainWindow.h:95
Affine transformation between screen and graph coordinates, based on digitized axis points.