Engauge Digitizer  2
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. More...
 

Public Member Functions

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

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));
31  setZValue (Z_VALUE_CURVE);
32  setVisible (true);
33  setAcceptHoverEvents (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 }
void signalHover(bool)
Pass hover enter/leave events to Segment that owns this.
Unique identifier for QGraphicsItem object
Definition: DataKey.h:15
Segment * segment() const
Segment that owns this line.
Definition: SegmentLine.cpp:67
const int Z_VALUE_CURVE
Definition: ZValues.cpp:10
log4cpp::Category * mainCat
Definition: Logger.cpp:14
void setHover(bool hover)
Apply/remove highlighting triggered by hover enter/leave.
Definition: SegmentLine.cpp:72
#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 }
log4cpp::Category * mainCat
Definition: Logger.cpp:14
#define LOG4CPP_DEBUG_S(logger)
Definition: convenience.h:20

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 }
void signalHover(bool)
Pass hover enter/leave events to Segment that owns this.
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
log4cpp::Category * mainCat
Definition: Logger.cpp:14

◆ 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 }
void signalHover(bool)
Pass hover enter/leave events to Segment that owns this.
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
log4cpp::Category * mainCat
Definition: Logger.cpp:14

◆ 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 }
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
void forwardMousePress()
Forward mouse press event from a component SegmentLine that was just clicked on.
Definition: Segment.cpp:298
log4cpp::Category * mainCat
Definition: Logger.cpp:14

◆ 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 }
double lineWidth() const
Get method for line width.
QColor ColorPaletteToQColor(ColorPalette color)
Definition: EnumsToQt.cpp:15
ColorPalette lineColor() const
Get method for line color.

◆ 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 }
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
log4cpp::Category * mainCat
Definition: Logger.cpp:14

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