Engauge Digitizer 2
Loading...
Searching...
No Matches
Guidelines.h
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2019 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 GUIDELINES_H
8#define GUIDELINES_H
9
10#include "ColorPalette.h"
11#include "CoordsType.h"
12#include "GuidelineState.h"
13#include <QList>
14#include <QString>
15#include "Transformation.h"
16
18class GraphicsScene;
21class MainWindow;
22class QGraphicsScene;
23
25
28{
30 friend class TestGuidelines;
31
32public:
34 Guidelines(MainWindow &mainWindow);
36
38 void clear ();
39
41 ColorPalette color () const;
42
44 CoordsType coordsType () const;
45
47 GuidelineAbstract *createGuideline (const QString &identifier,
49
51 void createGuidelineR (const QString &identifier,
52 double r);
53
55 void createGuidelineR (const QString &identifier,
56 const QPointF &posScreen);
57
59 void createGuidelineT (const QString &identifier,
60 double t);
61
63 void createGuidelineT (const QString &identifier,
64 const QPointF &posScreen);
65
67 void createGuidelineX (const QString &identifier,
68 double x);
69
71 void createGuidelineX (const QString &identifier,
72 const QPointF &posScreen);
73
75 void createGuidelineY (const QString &identifier,
76 double y);
77
79 void createGuidelineY (const QString &identifier,
80 const QPointF &posScreen);
81
85 double newValue,
87
89 void handleActiveChange (bool active);
90
93 bool locked);
94
96 void initialize (GraphicsScene &scene);
97
100
102 void moveGuidelineXT (const QString &identifier,
103 double valueAfter);
104
106 void moveGuidelineYR (const QString &identifier,
107 double valueAfter);
108
111 void removeGuideline (const QString &identifier);
112
116
118 QString stateDump () const;
119
122
124 void updateColor ();
125
128
129private:
130 Guidelines();
131
132 GuidelineContainerPrivate::iterator findIdentifierXT (const QString &identifier);
133 GuidelineContainerPrivate::iterator findIdentifierYR (const QString &identifier);
134
136 const GuidelineContainerPrivate &guidelineContainerPrivateXT () const;
137 const GuidelineContainerPrivate &guidelineContainerPrivateYR () const;
138
140 void registerGuidelineXT (GuidelineAbstract *guideline);
141 void registerGuidelineYR (GuidelineAbstract *guideline);
142
143 GuidelineAbstract *unregisterGuideline (const QString &identifier);
144
145 // Save for easy removal later
146 GuidelineContainerPrivate m_guidelineContainerXT;
147 GuidelineContainerPrivate m_guidelineContainerYR;
148
149 MainWindow &m_mainWindow;
150
151 GuidelineFactory *m_guidelineFactory;
152};
153
154#endif // GUIDELINES_H
ColorPalette
CoordsType
Definition CoordsType.h:12
const int INNER_RADIUS_MIN
GuidelineState
Set of possible Guideline states. See class Guideline for more information.
QList< GuidelineAbstract * > GuidelineContainerPrivate
Definition Guidelines.h:24
Model for managing the coordinate values corresponding Guidelines.
Add point and line handling to generic QGraphicsScene.
This class is a special case of the standard QGraphicsLineItem for guidelines, and serves as the base...
Factory for generating Guideline objects.
This class contains all Guideline objects.
Definition Guidelines.h:28
void createGuidelineY(const QString &identifier, double y)
Factory method for creating a new GUIDELINE_STATE_DEPLOYED_CONSTANT_Y_ACTIVE.
void createGuidelineR(const QString &identifier, double r)
Factory method for creating a new GUIDELINE_STATE_DEPLOYED_CONSTANT_R_ACTIVE.
void createReplacementGuideline(const QString &identifierReplaced, double newValue, GuidelineState guidelineStateForReplacement)
Factory method for creating a new replacement Guideline, which replaces one handle and one visible Gu...
void setModelGuidelines(CoordsType coordsType, const DocumentModelGuidelines &modelGuidelines)
Load Guidelines from Document.
void clear()
Remove guidelines since the current Document is about to be closed.
CoordsType coordsType() const
Return cartesian or polar.
void createGuidelineT(const QString &identifier, double t)
Factory method for creating a new GUIDELINE_STATE_DEPLOYED_CONSTANT_T_ACTIVE.
GuidelineAbstract * createGuideline(const QString &identifier, GuidelineState stateInitial)
Factory method for creating a new Guideline.
void moveGuidelineYR(const QString &identifier, double valueAfter)
Move an Y/R guideline from one value to another. Closest value wins.
ColorPalette color() const
Color to be used for guidelines.
Transformation transformation() const
Return copy of transformation owned by MainWindow.
void handleGuidelineMode(bool visible, bool locked)
User toggled guideline mode.
void removeGuideline(const QString &identifier)
Remove an X/T or Y/R guideline.
DocumentModelGuidelines modelGuidelines() const
Return complete set of guidelines information for Document.
void updateWithLatestTransformation()
Update transformation. This is called after a command has been executed.
void moveGuidelineXT(const QString &identifier, double valueAfter)
Move an X/T guideline from one value to another. Closest value wins.
void initialize(GraphicsScene &scene)
Initialize Guideline factory.
void createGuidelineX(const QString &identifier, double x)
Factory method for creating a new GUIDELINE_STATE_DEPLOYED_CONSTANT_X_ACTIVE.
void handleActiveChange(bool active)
DigitizeState change so active status may (or may not) be toggled.
QString stateDump() const
States listed as a string for debugging only.
void updateColor()
Force a color update.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition MainWindow.h:96
Unit test of guidelines.
Affine transformation between screen and graph coordinates, based on digitized axis points.