Engauge Digitizer 2
Loading...
Searching...
No Matches
GuidelineEllipse.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 GUIDELINE_ELLIPSE_H
8#define GUIDELINE_ELLIPSE_H
9
10#include "GuidelineAbstract.h"
11#include "MainWindow.h"
12#include <QColor>
13#include <QGraphicsEllipseItem>
14
15class QMouseEvent;
16class QPainter;
17class QGraphicsScene;
18class QStyleOptionGraphicsItem;
19class QWidget;
20
22class GuidelineEllipse : public GuidelineAbstract, public QGraphicsEllipseItem
23{
24public:
26 GuidelineEllipse(QGraphicsScene &scene,
27 MainWindow &mainWindow,
28 Guidelines &guidelines,
29 GuidelineState guidelineStateInitial,
30 const QString &identifier);
32
35 virtual bool collidesWithPath (const QPainterPath &path,
36 Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
37
38 virtual bool getGraphicsItemSelected () const;
39
40 virtual bool getGraphicsItemAcceptHover () const;
41
42 virtual QGraphicsItem::GraphicsItemFlags graphicsItemFlags () const;
43
45 virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
46
48 virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
49
50 virtual QString identifier () const;
51
53 virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
54
56 virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
57
59 virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
60
62 virtual void paint(QPainter *painter,
63 const QStyleOptionGraphicsItem *option,
64 QWidget *widget = Q_NULLPTR);
65
66 virtual void removeFromScene (QGraphicsScene *scene);
67 virtual void setGraphicsItemAcceptHoverEvents (bool accept);
68 virtual void setGraphicsItemFlags (QGraphicsItem::GraphicsItemFlags flags);
69 virtual void setGraphicsItemLine (const QLineF &line);
70 virtual void setGraphicsItemPen (const QColor &color,
71 double lineWidth);
72 virtual void setGraphicsItemVisible (bool visible);
73 virtual void setGraphicsItemZValue (double z);
74 virtual void updateColor ();
75 virtual void updateGeometry (double valueGraph);
76 virtual void updateGeometry (const QPointF &posScreen);
77
78private:
80
81 MainWindow &m_mainWindow;
82
83 // Forces use of setPenColor instead of QGraphicsLineItem::setPen
84 using QGraphicsEllipseItem::setPen;
85
86};
87
88#endif // GUIDELINE_ELLIPSE_H
GuidelineState
Set of possible Guideline states. See class Guideline for more information.
QGraphicsScene & scene()
GraphicsScene that owns this class.
GuidelineAbstract(QGraphicsScene &scene)
Single constructor.
virtual void setGraphicsItemPen(const QColor &color, double lineWidth)
Wrapper for QGraphicsItem::setPen.
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Forward movements to visible Guideline.
virtual QString identifier() const
Unique identifier from QGraphicsItem.
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Cleanup after being dragged.
GuidelineEllipse(QGraphicsScene &scene, MainWindow &mainWindow, Guidelines &guidelines, GuidelineState guidelineStateInitial, const QString &identifier)
Single constructor.
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Forward press event to state machine.
virtual void setGraphicsItemFlags(QGraphicsItem::GraphicsItemFlags flags)
Wrapper for QGraphicsItem::setFlags.
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Unset highlighting triggered by hover enter.
virtual void setGraphicsItemAcceptHoverEvents(bool accept)
Wrapper for QGraphicsItem::setAcceptHoverEvents.
virtual void removeFromScene(QGraphicsScene *scene)
Make graphics item remove itself from the scene.
virtual QGraphicsItem::GraphicsItemFlags graphicsItemFlags() const
Wraps QGraphicsItem::flags.
virtual void setGraphicsItemVisible(bool visible)
Wrapper for QGraphicsItem::setVisible.
virtual void updateGeometry(double valueGraph)
Update the geometry so it passes through the specified coordinate value in graph coordinates.
virtual void setGraphicsItemZValue(double z)
Wrapper for QGraphicsItem::setZValue.
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=Q_NULLPTR)
Override painting so this disappears when selected. Selected Guidelines are never visible.
virtual void updateColor()
Force a color update.
virtual void setGraphicsItemLine(const QLineF &line)
Wrapper for QGraphicsLineItem::setLine.
virtual bool getGraphicsItemSelected() const
Wrapper for QGraphicsItem::isSelected.
virtual bool collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode=Qt::IntersectsItemShape) const
Override normal QGraphicsEllipseItem collision detection that covers ellipse boundary and entire inte...
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
Highlight this Guideline upon hover enter.
virtual bool getGraphicsItemAcceptHover() const
Return true if accepting hover events.
This class contains all Guideline objects.
Definition Guidelines.h:28
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition MainWindow.h:95