Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
Guideline
GuidelineFactory.cpp
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
#include "
GraphicsScene.h
"
8
#include "
GuidelineAbstract.h
"
9
#include "
GuidelineEllipse.h
"
10
#include "
GuidelineFactory.h
"
11
#include "
GuidelineLine.h
"
12
#include "
Guidelines.h
"
13
#include "
Logger.h
"
14
#include "
MainWindow.h
"
15
#include <QGraphicsScene>
16
17
GuidelineFactory::GuidelineFactory
(
GraphicsScene
*sceneMain) :
18
m_sceneMain (sceneMain)
19
{
20
createEllipseMap ();
21
}
22
23
GuidelineFactory::~GuidelineFactory
()
24
{
25
}
26
27
GuidelineAbstract
*
GuidelineFactory::createGuideline
(
Guidelines
&guidelines,
28
GuidelineState
stateInitial,
29
MainWindow
&mainWindow,
30
const
QString &identifier)
31
{
32
qCDebug(ENGAUGE_LOG) <<
"GuidelineFactory::createGuideline identifier="
33
<< identifier.toLatin1().data();
34
35
// Main scene or one of the guideline scenes?
36
QGraphicsScene *scene = m_sceneMain;
37
38
// Line or ellipse?
39
GuidelineAbstract
*guideline =
nullptr
;
40
41
if
(m_mapStatesWithEllipse.contains (stateInitial)) {
42
43
guideline =
new
GuidelineEllipse
(*scene,
44
mainWindow,
45
guidelines,
46
stateInitial,
47
identifier);
48
49
}
else
{
50
51
guideline =
new
GuidelineLine
(*scene,
52
mainWindow,
53
guidelines,
54
stateInitial,
55
identifier);
56
}
57
58
QObject::connect (guideline, SIGNAL (signalGuidelineDragged (QString,
double
,
bool
,
GuidelineState
)),
59
&mainWindow, SLOT (slotGuidelineDragged (QString,
double
,
bool
,
GuidelineState
)));
60
61
return
guideline;
62
}
63
64
void
GuidelineFactory::createEllipseMap ()
65
{
66
// All other states get a line instead of an ellipse
67
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT
] =
true
;
68
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_APPEARING
] =
true
;
69
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_HOVER
] =
true
;
70
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_HIDE
] =
true
;
71
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_LOCK
] =
true
;
72
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_EDIT
] =
true
;
73
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_HIDE
] =
true
;
74
m_mapStatesWithEllipse [
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_LOCK
] =
true
;
75
}
GraphicsScene.h
GuidelineAbstract.h
GuidelineEllipse.h
GuidelineFactory.h
GuidelineLine.h
GuidelineState
GuidelineState
Set of possible Guideline states. See class Guideline for more information.
Definition
GuidelineState.h:13
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_APPEARING
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_APPEARING
Definition
GuidelineState.h:15
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT
Definition
GuidelineState.h:14
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_HOVER
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_EDIT_HOVER
Definition
GuidelineState.h:16
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_LOCK
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_LOCK
Definition
GuidelineState.h:21
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_HIDE
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_HIDE
Definition
GuidelineState.h:17
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_LOCK
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_SELECT_LOCK
Definition
GuidelineState.h:18
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_HIDE
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_HIDE
Definition
GuidelineState.h:20
GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_EDIT
@ GUIDELINE_STATE_DEPLOYED_CONSTANT_R_UNSELECT_EDIT
Definition
GuidelineState.h:19
Guidelines.h
Logger.h
MainWindow.h
GraphicsScene
Add point and line handling to generic QGraphicsScene.
Definition
GraphicsScene.h:37
GuidelineAbstract
This class is a special case of the standard QGraphicsLineItem for guidelines, and serves as the base...
Definition
GuidelineAbstract.h:69
GuidelineEllipse
Ellipse version of GuidelineAbstract.
Definition
GuidelineEllipse.h:23
GuidelineFactory::~GuidelineFactory
virtual ~GuidelineFactory()
Definition
GuidelineFactory.cpp:23
GuidelineFactory::createGuideline
GuidelineAbstract * createGuideline(Guidelines &guidelines, GuidelineState stateInitial, MainWindow &mainWindow, const QString &identifier)
Definition
GuidelineFactory.cpp:27
GuidelineFactory::GuidelineFactory
GuidelineFactory(GraphicsScene *sceneMain)
Single constructor.
Definition
GuidelineFactory.cpp:17
GuidelineLine
Line version of GuidelineAbstract.
Definition
GuidelineLine.h:23
Guidelines
This class contains all Guideline objects.
Definition
Guidelines.h:28
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition
MainWindow.h:95
Generated on
for Engauge Digitizer by
1.17.0