Engauge Digitizer 2
Loading...
Searching...
No Matches
Signals | Public Member Functions | List of all members
SegmentLine Class Reference

This class is a special case of the standard QGraphicsLineItem for segments. More...

#include <SegmentLine.h>

Inheritance diagram for SegmentLine:
Inheritance graph
Collaboration diagram for SegmentLine:
Collaboration graph

Signals

void signalHover (bool)
 Pass hover enter/leave events to Segment that owns this.
 

Public Member Functions

 SegmentLine (QGraphicsScene &scene, const DocumentModelSegments &modelSegments, Segment *segment)
 Single constructor.
 
 ~SegmentLine ()
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event)
 Highlight this and all other SegmentLines belonging to the same Segment upon hover enter.
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event)
 Unset highlighting triggered by hover enter.
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 Create points along this curve.
 
Segmentsegment () const
 Segment that owns this line.
 
void setHover (bool hover)
 Apply/remove highlighting triggered by hover enter/leave.
 
void updateModelSegment (const DocumentModelSegments &modelSegments)
 Update this segment line with new settings.
 

Detailed Description

This class is a special case of the standard QGraphicsLineItem for segments.

Definition at line 17 of file SegmentLine.h.

Constructor & Destructor Documentation

◆ SegmentLine()

SegmentLine::SegmentLine ( QGraphicsScene & scene,
const DocumentModelSegments & modelSegments,
Segment * segment )

Single constructor.

Definition at line 17 of file SegmentLine.cpp.

19 :
20 m_modelSegments (modelSegments),
21 m_segment (segment)
22{
23 LOG4CPP_DEBUG_S ((*mainCat)) << "SegmentLine::SegmentLine"
24 << " address=0x" << std::hex << static_cast<void *> (this);
25
27
28 // Make this transparent now, but always visible so hover events work
29 scene.addItem (this);
30 setPen (QPen (Qt::transparent));
32 setVisible (true);
34 setHover (false); // Initially the cursor is not hovering over this object. Later a hover event will change this state
35 setFlags (QGraphicsItem::ItemIsFocusable);
36
37 connect (this, SIGNAL (signalHover (bool)), segment, SLOT (slotHover (bool)));
38}
@ DATA_KEY_GRAPHICS_ITEM_TYPE
‍Unique identifier for QGraphicsItem object
Definition DataKey.h:15
const int INNER_RADIUS_MIN
@ GRAPHICS_ITEM_TYPE_SEGMENT
log4cpp::Category * mainCat
Definition Logger.cpp:14
const int Z_VALUE_CURVE
Definition ZValues.cpp:10
void signalHover(bool)
Pass hover enter/leave events to Segment that owns this.
void setHover(bool hover)
Apply/remove highlighting triggered by hover enter/leave.
Segment * segment() const
Segment that owns this line.
#define LOG4CPP_DEBUG_S(logger)
Definition convenience.h:20

◆ ~SegmentLine()

SegmentLine::~SegmentLine ( )

Definition at line 40 of file SegmentLine.cpp.

41{
42 LOG4CPP_DEBUG_S ((*mainCat)) << "SegmentLine::~SegmentLine"
43 << " address=0x" << std::hex << static_cast<void *> (this);
44}

Member Function Documentation

◆ hoverEnterEvent()

void SegmentLine::hoverEnterEvent ( QGraphicsSceneHoverEvent * event)
virtual

Highlight this and all other SegmentLines belonging to the same Segment upon hover enter.

Definition at line 46 of file SegmentLine.cpp.

47{
48 LOG4CPP_INFO_S ((*mainCat)) << "SegmentLine::hoverEnterEvent";
49
50 emit (signalHover (true));
51}
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18

◆ hoverLeaveEvent()

void SegmentLine::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event)
virtual

Unset highlighting triggered by hover enter.

Definition at line 53 of file SegmentLine.cpp.

54{
55 LOG4CPP_INFO_S ((*mainCat)) << "SegmentLine::hoverLeaveEvent";
56
57 emit (signalHover (false));
58}

◆ mousePressEvent()

void SegmentLine::mousePressEvent ( QGraphicsSceneMouseEvent * event)
virtual

Create points along this curve.

Definition at line 60 of file SegmentLine.cpp.

61{
62 LOG4CPP_INFO_S ((*mainCat)) << "SegmentLine::mousePressEvent";
63
64 m_segment->forwardMousePress();
65}
void forwardMousePress()
Forward mouse press event from a component SegmentLine that was just clicked on.
Definition Segment.cpp:298

◆ segment()

Segment * SegmentLine::segment ( ) const

Segment that owns this line.

Definition at line 67 of file SegmentLine.cpp.

68{
69 return m_segment;
70}

◆ setHover()

void SegmentLine::setHover ( bool hover)

Apply/remove highlighting triggered by hover enter/leave.

Definition at line 72 of file SegmentLine.cpp.

73{
74 if (hover) {
75
76 QColor color (ColorPaletteToQColor (m_modelSegments.lineColor()));
77
78 setPen (QPen (QBrush (color),
79 m_modelSegments.lineWidth()));
80
81 } else {
82
83 setPen (QPen (Qt::transparent));
84
85 }
86}
QColor ColorPaletteToQColor(ColorPalette color)
Definition EnumsToQt.cpp:15
ColorPalette lineColor() const
Get method for line color.
double lineWidth() const
Get method for line width.

◆ signalHover

void SegmentLine::signalHover ( bool )
signal

Pass hover enter/leave events to Segment that owns this.

◆ updateModelSegment()

void SegmentLine::updateModelSegment ( const DocumentModelSegments & modelSegments)

Update this segment line with new settings.

Definition at line 88 of file SegmentLine.cpp.

89{
90 LOG4CPP_INFO_S ((*mainCat)) << "SegmentLine::updateModelSegment";
91
92 m_modelSegments = modelSegments;
93}

The documentation for this class was generated from the following files: