QElectroTech  0.70
Signals | Public Member Functions | Protected Attributes | Properties | Private Member Functions | List of all members
AbstractPartEllipse Class Reference

The AbstractPartEllipse class This is the base class for all ellipse based item like ellipse, circle, arc. This class only provide common method for edit the ellipse like rect that contain the ellipse. All coordinates is in item coordinate, except pos(), center(), centerX() and centerY() which are in parent coordinate (or scene if no parent). More...

#include <abstractpartellipse.h>

Signals

void rectChanged ()
 
void startAngleChanged ()
 
void spanAngleChanged ()
 

Public Member Functions

 AbstractPartEllipse (QETElementEditor *editor, QGraphicsItem *parent=nullptr)
 AbstractPartEllipse::AbstractPartEllipse Constructor. More...
 
 ~AbstractPartEllipse () override
 AbstractPartEllipse::~AbstractPartEllipse Destructor. More...
 
void startUserTransformation (const QRectF &) override
 AbstractPartEllipse::startUserTransformation Start the user-induced transformation, provided this primitive is contained within the initial_selection_rect bounding rectangle. More...
 
void handleUserTransformation (const QRectF &, const QRectF &) override
 AbstractPartEllipse::handleUserTransformation Handle the user-induced transformation from initial_selection_rect to new_selection_rect. More...
 
QRectF boundingRect () const override
 AbstractPartEllipse::boundingRect Bounding rectangle this part can fit into. More...
 
QRectF sceneGeometricRect () const override
 AbstractPartEllipse::sceneGeometricRect. More...
 
virtual QPointF sceneTopLeft () const
 AbstractPartEllipse::sceneTopLeft. More...
 
QRectF rect () const
 
virtual void setRect (const QRectF &rect)
 AbstractPartEllipse::setRect Sets the item's ellipse geometry to rect. The rectangle's left edge defines the left edge of the ellipse, and the rectangle's top edge describes the top of the ellipse The height and width of the rectangle describe the height and width of the ellipse. More...
 
bool isUseless () const override
 AbstractPartEllipse::isUseless. More...
 
int startAngle () const
 
virtual void setStartAngle (const int &start_angle)
 AbstractPartEllipse::setStartAngle Sets the start angle for an ellipse segment to angle, which is in 16ths of a degree. This angle is used together with spanAngle() for representing an ellipse segment (a pie). By default, the start angle is 0. More...
 
int spanAngle () const
 
virtual void setSpanAngle (const int &span_angle)
 AbstractPartEllipse::setSpanAngle Returns the span angle of an ellipse segment in 16ths of a degree. This angle is used together with startAngle() for representing an ellipse segment (a pie). By default, this function returns 5760 (360 * 16, a full ellipse). More...
 
- Public Member Functions inherited from CustomElementGraphicPart
 CustomElementGraphicPart (QETElementEditor *editor, QGraphicsItem *parent=nullptr)
 CustomElementGraphicPart::CustomElementGraphicPart Default constructor. By default, item is selectable, send geometry change (Qt > 4.6), accept mouse left button and accept hover event. More...
 
 ~CustomElementGraphicPart () override
 CustomElementGraphicPart::~CustomElementGraphicPart Destructor. More...
 
LineStyle lineStyle () const
 
void setLineStyle (const LineStyle ls)
 CustomElementGraphicPart::setLineStyle Set line style to ls. More...
 
LineWeight lineWeight () const
 
void setLineWeight (const LineWeight lw)
 CustomElementGraphicPart::setLineWeight Set line weight to lw. More...
 
qreal penWeight () const
 CustomElementGraphicPart::penWeight. More...
 
Filling filling () const
 
void setFilling (const Filling f)
 CustomElementGraphicPart::setFilling Set filling to f. More...
 
Color color () const
 
void setColor (const Color c)
 CustomElementGraphicPart::setColor Set color to c. More...
 
bool antialiased () const
 
void setAntialiased (const bool b)
 CustomElementGraphicPart::setAntialiased Set antialias to b. More...
 
void setProperty (const char *name, const QVariant &value) override
 
QVariant property (const char *name) const override
 
virtual QPainterPath shadowShape () const =0
 
- Public Member Functions inherited from CustomElementPart
 CustomElementPart (QETElementEditor *editor)
 
virtual ~CustomElementPart ()
 Destructor. More...
 
virtual void fromXml (const QDomElement &)=0
 
virtual const QDomElement toXml (QDomDocument &) const =0
 
virtual QETElementEditorelementEditor () const
 
virtual void updateCurrentPartEditor () const
 
virtual ElementSceneelementScene () const
 
virtual QUndoStack & undoStack () const
 
virtual QString name () const =0
 
virtual QString xmlName () const =0
 
virtual QGraphicsItem * toItem ()
 
virtual QET::ScalingMethod preferredScalingMethod () const
 

Protected Attributes

QList< QPointF > saved_points_
 
QRectF m_rect
 
qreal m_start_angle
 
qreal m_span_angle
 
QVector< QetGraphicsHandlerItem * > m_handler_vector
 
- Protected Attributes inherited from CustomElementGraphicPart
bool m_hovered
 

Properties

int startAngle
 
int spanAngle
 
QRectF rect
 AbstractPartEllipse::rect Returns the item's ellipse geometry as a QRectF. More...
 
- Properties inherited from CustomElementGraphicPart
LineStyle line_style
 
LineWeight line_weight
 
Filling filling
 
Color color
 
bool antialias
 

Private Member Functions

 AbstractPartEllipse (const AbstractPartEllipse &)
 

Additional Inherited Members

- Public Types inherited from CustomElementGraphicPart
enum  LineStyle { NormalStyle, DashedStyle, DottedStyle, DashdottedStyle }
 
enum  LineWeight {
  NoneWeight, ThinWeight, NormalWeight, UltraWeight,
  BigWeight
}
 
enum  Filling {
  NoneFilling, BlackFilling, WhiteFilling, GreenFilling,
  RedFilling, BlueFilling, GrayFilling, BrunFilling,
  YellowFilling, CyanFilling, MagentaFilling, LightgrayFilling,
  OrangeFilling, PurpleFilling, HorFilling, VerFilling,
  BdiagFilling, FdiagFilling
}
 
enum  Color {
  BlackColor, WhiteColor, GreenColor, RedColor,
  BlueColor, GrayColor, BrunColor, YellowColor,
  CyanColor, MagentaColor, LightgrayColor, OrangeColor,
  PurpleColor, NoneColor
}
 
- Static Public Member Functions inherited from CustomElementGraphicPart
static void drawCross (const QPointF &center, QPainter *painter)
 CustomElementGraphicPart::drawCross Draw a cross at pos center. More...
 
- Protected Member Functions inherited from CustomElementGraphicPart
void stylesToXml (QDomElement &) const
 CustomElementGraphicPart::stylesToXml Write the curent style to xml element. The style are stored like this: name-of-style:value;name-of-style:value Each style separate by ; and name-style/value are separate by : More...
 
void stylesFromXml (const QDomElement &)
 CustomElementGraphicPart::stylesFromXml Read the style used by this, from a xml element. More...
 
void resetStyles ()
 CustomElementGraphicPart::resetStyles Reset the curent style to default, same style of default constructor. More...
 
void applyStylesToQPainter (QPainter &) const
 CustomElementGraphicPart::applyStylesToQPainter Apply the current style to the QPainter. More...
 
void drawShadowShape (QPainter *painter)
 CustomElementGraphicPart::drawShadowShape Draw a transparent blue shadow arround the shape of this item. The QPainterPathStroker used to draw shadows have a width of SHADOWS_HEIGHT Be carefull if penWeight of this item is to 0 the outline of strock is bigger of 0.5. More...
 
QVariant itemChange (GraphicsItemChange change, const QVariant &value) override
 CustomElementGraphicPart::itemChange Reimplemented from QGraphicsObject. If the item position change call updateCurrentPartEditor() the change is always send to QGraphicsObject. More...
 
void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
 CustomElementGraphicPart::hoverEnterEvent Reimplemented from QGraphicsObject. Set m_hovered to true. More...
 
void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
 CustomElementGraphicPart::hoverLeaveEvent Reimplemented from QGraphicsObject. Set m_hovered to false. More...
 
void mousePressEvent (QGraphicsSceneMouseEvent *event) override
 
void mouseMoveEvent (QGraphicsSceneMouseEvent *event) override
 
void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override
 
- Protected Member Functions inherited from CustomElementPart
QList< QPointF > mapPoints (const QRectF &, const QRectF &, const QList< QPointF > &)
 

Detailed Description

The AbstractPartEllipse class This is the base class for all ellipse based item like ellipse, circle, arc. This class only provide common method for edit the ellipse like rect that contain the ellipse. All coordinates is in item coordinate, except pos(), center(), centerX() and centerY() which are in parent coordinate (or scene if no parent).

In several points, this class is a copy of QGraphicsEllipseItem with some change, (the use of Q_PROPERTY) to be easily used with Element editor.

Definition at line 35 of file abstractpartellipse.h.

Constructor & Destructor Documentation

◆ AbstractPartEllipse() [1/2]

AbstractPartEllipse::AbstractPartEllipse ( QETElementEditor editor,
QGraphicsItem *  parent = nullptr 
)

AbstractPartEllipse::AbstractPartEllipse Constructor.

Parameters
editor: QETElementEditor of this part
parent: parent item

Definition at line 26 of file abstractpartellipse.cpp.

◆ ~AbstractPartEllipse()

AbstractPartEllipse::~AbstractPartEllipse ( )
override

AbstractPartEllipse::~AbstractPartEllipse Destructor.

Definition at line 37 of file abstractpartellipse.cpp.

◆ AbstractPartEllipse() [2/2]

AbstractPartEllipse::AbstractPartEllipse ( const AbstractPartEllipse )
private

Member Function Documentation

◆ boundingRect()

QRectF AbstractPartEllipse::boundingRect ( ) const
override

AbstractPartEllipse::boundingRect Bounding rectangle this part can fit into.

Returns

Definition at line 70 of file abstractpartellipse.cpp.

References m_rect, CustomElementGraphicPart::penWeight(), and SHADOWS_HEIGHT.

Referenced by sceneGeometricRect().

◆ handleUserTransformation()

void AbstractPartEllipse::handleUserTransformation ( const QRectF &  initial_selection_rect,
const QRectF &  new_selection_rect 
)
overridevirtual

AbstractPartEllipse::handleUserTransformation Handle the user-induced transformation from initial_selection_rect to new_selection_rect.

Parameters
initial_selection_rect
new_selection_rect

Implements CustomElementPart.

Definition at line 59 of file abstractpartellipse.cpp.

References CustomElementPart::mapPoints(), saved_points_, and setRect().

◆ isUseless()

bool AbstractPartEllipse::isUseless ( ) const
overridevirtual

AbstractPartEllipse::isUseless.

Returns
true if this part is irrelevant and does not deserve to be Retained / registered. An ellipse is relevant when is rect is not null.

Implements CustomElementPart.

Definition at line 130 of file abstractpartellipse.cpp.

References rect().

◆ rect()

QRectF AbstractPartEllipse::rect ( ) const

◆ rectChanged

void AbstractPartEllipse::rectChanged ( )
signal

◆ sceneGeometricRect()

QRectF AbstractPartEllipse::sceneGeometricRect ( ) const
overridevirtual

AbstractPartEllipse::sceneGeometricRect.

Returns
the minimum, margin-less rectangle this part can fit into in scene coordinates. It is different from boundingRect() because it is not supposed to imply any margin, and it is different from shape because it is a regular rectangle, not a complex shape.

Implements CustomElementPart.

Definition at line 88 of file abstractpartellipse.cpp.

References boundingRect(), and rect().

◆ sceneTopLeft()

QPointF AbstractPartEllipse::sceneTopLeft ( ) const
virtual

AbstractPartEllipse::sceneTopLeft.

Returns
return the top left of rectangle, in scene coordinate

Definition at line 96 of file abstractpartellipse.cpp.

References rect().

Referenced by PartArc::toXml(), and PartEllipse::toXml().

◆ setRect()

void AbstractPartEllipse::setRect ( const QRectF &  rect)
virtual

AbstractPartEllipse::setRect Sets the item's ellipse geometry to rect. The rectangle's left edge defines the left edge of the ellipse, and the rectangle's top edge describes the top of the ellipse The height and width of the rectangle describe the height and width of the ellipse.

Parameters
rect

Reimplemented in PartArc, and PartEllipse.

Definition at line 116 of file abstractpartellipse.cpp.

References m_rect, rect(), and rectChanged().

Referenced by handleUserTransformation(), PartEllipse::setRect(), and PartArc::setRect().

◆ setSpanAngle()

void AbstractPartEllipse::setSpanAngle ( const int &  span_angle)
virtual

AbstractPartEllipse::setSpanAngle Returns the span angle of an ellipse segment in 16ths of a degree. This angle is used together with startAngle() for representing an ellipse segment (a pie). By default, this function returns 5760 (360 * 16, a full ellipse).

Parameters
span_angle

Reimplemented in PartArc.

Definition at line 156 of file abstractpartellipse.cpp.

References m_span_angle, and spanAngleChanged().

Referenced by PartArc::setSpanAngle().

◆ setStartAngle()

void AbstractPartEllipse::setStartAngle ( const int &  start_angle)
virtual

AbstractPartEllipse::setStartAngle Sets the start angle for an ellipse segment to angle, which is in 16ths of a degree. This angle is used together with spanAngle() for representing an ellipse segment (a pie). By default, the start angle is 0.

Parameters
start_angle

Reimplemented in PartArc.

Definition at line 141 of file abstractpartellipse.cpp.

References m_start_angle, and startAngleChanged().

Referenced by PartArc::setStartAngle().

◆ spanAngle()

int AbstractPartEllipse::spanAngle ( ) const
inline

Definition at line 72 of file abstractpartellipse.h.

References m_span_angle.

◆ spanAngleChanged

void AbstractPartEllipse::spanAngleChanged ( )
signal

Referenced by ArcEditor::setPart(), and setSpanAngle().

◆ startAngle()

int AbstractPartEllipse::startAngle ( ) const
inline

Definition at line 69 of file abstractpartellipse.h.

References m_start_angle.

◆ startAngleChanged

void AbstractPartEllipse::startAngleChanged ( )
signal

◆ startUserTransformation()

void AbstractPartEllipse::startUserTransformation ( const QRectF &  initial_selection_rect)
overridevirtual

AbstractPartEllipse::startUserTransformation Start the user-induced transformation, provided this primitive is contained within the initial_selection_rect bounding rectangle.

Parameters
initial_selection_rect

Implements CustomElementPart.

Definition at line 45 of file abstractpartellipse.cpp.

References rect(), and saved_points_.

Member Data Documentation

◆ m_handler_vector

QVector<QetGraphicsHandlerItem *> AbstractPartEllipse::m_handler_vector
protected

◆ m_rect

QRectF AbstractPartEllipse::m_rect
protected

◆ m_span_angle

qreal AbstractPartEllipse::m_span_angle
protected

◆ m_start_angle

qreal AbstractPartEllipse::m_start_angle
protected

◆ saved_points_

QList<QPointF> AbstractPartEllipse::saved_points_
protected

Definition at line 76 of file abstractpartellipse.h.

Referenced by handleUserTransformation(), and startUserTransformation().

Property Documentation

◆ rect

QRectF AbstractPartEllipse::rect
readwrite

AbstractPartEllipse::rect Returns the item's ellipse geometry as a QRectF.

Definition at line 40 of file abstractpartellipse.h.

Referenced by ESEventAddArc::mousePressEvent().

◆ spanAngle

int AbstractPartEllipse::spanAngle
readwrite

Definition at line 39 of file abstractpartellipse.h.

◆ startAngle

int AbstractPartEllipse::startAngle
readwrite

Definition at line 38 of file abstractpartellipse.h.


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