Engauge Digitizer 2
Loading...
Searching...
No Matches
DigitizeStateSegment.h
1/******************************************************************************************************
2 * (C) 2014 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_SEGMENT_H
8#define DIGITIZE_STATE_SEGMENT_H
9
10#include "DigitizeStateAbstractBase.h"
11#include <QList>
12#include <QObject>
13
14class Segment;
15
17class DigitizeStateSegment : public QObject, public DigitizeStateAbstractBase
18{
19 Q_OBJECT;
20
21public:
24 virtual ~DigitizeStateSegment();
25
26 virtual QString activeCurve () const;
27 virtual void begin(CmdMediator *cmdMediator,
28 DigitizeState previousState);
29 virtual QCursor cursor (CmdMediator *cmdMediator) const;
30 virtual void end();
31 virtual void handleCurveChange(CmdMediator *cmdMediator);
32 virtual void handleKeyPress (CmdMediator *cmdMediator,
33 Qt::Key key,
34 bool atLeastOneSelectedItem);
35 virtual void handleMouseMove (CmdMediator *cmdMediator,
36 QPointF posScreen);
37 virtual void handleMousePress (CmdMediator *cmdMediator,
38 QPointF posScreen);
39 virtual void handleMouseRelease (CmdMediator *cmdMediator,
40 QPointF posScreen);
41 virtual QString state() const;
42 virtual void updateModelDigitizeCurve (CmdMediator *cmdMediator,
43 const DocumentModelDigitizeCurve &modelDigitizeCurve);
44 virtual void updateModelSegments(const DocumentModelSegments &modelSegments);
45
46public slots:
48 void slotMouseClickOnSegment(QPointF);
49
50private:
52
53 // Identify which Segment owns the SegmentLine that was clicked on
54 Segment *segmentFromSegmentStart (const QPointF &posSegmentStart) const;
55
56 QList<Segment*> m_segments;
57 CmdMediator *m_cmdMediator;
58};
59
60#endif // DIGITIZE_STATE_SEGMENT_H
Command queue stack.
Definition CmdMediator.h:24
Base class for all digitizing states. This serves as an interface to DigitizeStateContext.
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...
Digitizing state for creating multiple Points along a highlighted segment.
virtual QString state() const
State name for debugging.
virtual void handleMousePress(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse press that was intercepted earlier.
virtual void begin(CmdMediator *cmdMediator, DigitizeState previousState)
Method that is called at the exact moment a state is entered.
virtual QString activeCurve() const
Name of the active Curve. This can include AXIS_CURVE_NAME.
virtual void handleKeyPress(CmdMediator *cmdMediator, Qt::Key key, bool atLeastOneSelectedItem)
Handle a key press that was intercepted earlier.
void slotMouseClickOnSegment(QPointF)
Receive signal from Segment that has been clicked on. The CmdMediator from the begin method will be u...
virtual void handleCurveChange(CmdMediator *cmdMediator)
Handle the selection of a new curve. At a minimum, DigitizeStateSegment will generate a new set of Se...
virtual QCursor cursor(CmdMediator *cmdMediator) const
Returns the state-specific cursor shape.
virtual void updateModelDigitizeCurve(CmdMediator *cmdMediator, const DocumentModelDigitizeCurve &modelDigitizeCurve)
Update the digitize curve settings.
virtual void end()
Method that is called at the exact moment a state is exited. Typically called just before begin for t...
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 handleMouseRelease(CmdMediator *cmdMediator, QPointF posScreen)
Handle a mouse release that was intercepted earlier.
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Model for DlgSettingsSegments and CmdSettingsSegments.
Selectable piecewise-defined line that follows a filtered line in the image.
Definition Segment.h:22