Version: 9.16.0
YACS::HMI::SceneCtrlPortItem Class Reference

#include <SceneCtrlPortItem.hxx>

Inheritance diagram for YACS::HMI::SceneCtrlPortItem:
Collaboration diagram for YACS::HMI::SceneCtrlPortItem:

Public Member Functions

 SceneCtrlPortItem (QGraphicsScene *scene, SceneItem *parent, QString label)
 
virtual ~SceneCtrlPortItem ()
 
virtual void setText (QString label)
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 
virtual SceneNodeItemgetParentNode ()
 
SubjectNodegetSubjectNode ()
 
- Public Member Functions inherited from YACS::HMI::SceneItem
 SceneItem (QGraphicsScene *scene, SceneItem *parent, QString label)
 
virtual ~SceneItem ()
 
virtual QRectF boundingRect () const
 
virtual QRectF childrenBoundingRect () const
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 
virtual void setTopLeft (QPointF topLeft)
 
virtual void checkGeometryChange ()
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
void setParent (SceneItem *parent)
 
virtual QString getToolTip ()
 
void setEventPos (QPointF point)
 
virtual void updateChildItems ()
 
virtual void updateLinks ()
 
virtual void shrinkExpandLink (bool se)
 
virtual void shrinkExpandRecursive (bool isExpanding, bool fromHere, ShrinkMode theShrinkMode)
 
bool isAncestorShrinked ()
 
- Public Member Functions inherited from YACS::HMI::AbstractSceneItem
 AbstractSceneItem (QGraphicsScene *scene, SceneItem *parent, QString label)
 
virtual ~AbstractSceneItem ()
 
virtual QRectF boundingRect () const =0
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)=0
 
virtual void setTopLeft (QPointF topLeft)=0
 
int getLevel ()
 
void setLevel ()
 
virtual void checkGeometryChange ()=0
 
virtual void reorganize ()
 
virtual QString getLabel ()
 
virtual void addHeader ()
 
virtual void addProgressItem ()
 
virtual qreal getHeaderBottom ()
 
qreal getWidth ()
 
qreal getHeight ()
 
virtual void setWidth (qreal width)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void setHeight (qreal height)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)=0
 
virtual void activateSelection (bool selected)
 
virtual void setGeometryOptimization (bool optimize)
 
SceneItemgetParent ()
 
- Public Member Functions inherited from YACS::HMI::ScenePortItem
 ScenePortItem (QString label)
 
virtual ~ScenePortItem ()
 
virtual void setText (QString label)=0
 

Protected Member Functions

virtual QString getMimeFormat ()
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 
- Protected Member Functions inherited from YACS::HMI::SceneItem
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event)
 
virtual void hoverMoveEvent (QGraphicsSceneHoverEvent *event)
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event)
 
virtual QColor getPenColor ()
 
virtual QColor getBrushColor ()
 
QColor hoverColor (QColor origColor)
 
- Protected Member Functions inherited from YACS::HMI::AbstractSceneItem
virtual QRectF childBoundingRect (AbstractSceneItem *child) const
 

Protected Attributes

bool _draging
 
bool _dragModifier
 
- Protected Attributes inherited from YACS::HMI::SceneItem
bool _hover
 
bool _ancestorShrinked
 
QPointF _eventPos
 
- Protected Attributes inherited from YACS::HMI::AbstractSceneItem
SceneItem_parent
 
YACS::HMI::Scene_scene
 
QString _label
 
int _level
 
qreal _width
 
qreal _height
 
qreal _incHeight
 
QColor _penColor
 
QColor _brushColor
 
QColor _hiPenColor
 
QColor _hiBrushColor
 
bool _hasHeader
 
bool _optimize
 
bool _dragable
 
enum Qt::MouseButton _dragButton
 
- Protected Attributes inherited from YACS::HMI::ScenePortItem
SceneTextItem_text
 

Additional Inherited Members

- Public Attributes inherited from YACS::HMI::SceneItem
bool _blocX
 
bool _blocY
 

Detailed Description

Definition at line 33 of file SceneCtrlPortItem.hxx.

Constructor & Destructor Documentation

◆ SceneCtrlPortItem()

SceneCtrlPortItem::SceneCtrlPortItem ( QGraphicsScene scene,
SceneItem parent,
QString  label 
)

Definition at line 49 of file SceneCtrlPortItem.cxx.

51 : SceneItem(scene, parent, label), ScenePortItem(label)
52{
53 setText(label);
60}
static QColor CtrlPort_hiBrush
Definition: Resource.hxx:288
static int CtrlPort_Width
Definition: Resource.hxx:303
static int CtrlPort_Height
Definition: Resource.hxx:304
static QColor CtrlPort_pen
Definition: Resource.hxx:289
static QColor CtrlPort_hiPen
Definition: Resource.hxx:290
static QColor CtrlPort_brush
Definition: Resource.hxx:287
virtual void setText(QString label)
SceneItem(QGraphicsScene *scene, SceneItem *parent, QString label)
Definition: SceneItem.cxx:191
ScenePortItem(QString label)

References YACS::HMI::AbstractSceneItem::_brushColor, YACS::HMI::AbstractSceneItem::_height, YACS::HMI::AbstractSceneItem::_hiBrushColor, YACS::HMI::AbstractSceneItem::_hiPenColor, YACS::HMI::AbstractSceneItem::_penColor, YACS::HMI::AbstractSceneItem::_width, YACS::HMI::Resource::CtrlPort_brush, YACS::HMI::Resource::CtrlPort_Height, YACS::HMI::Resource::CtrlPort_hiBrush, YACS::HMI::Resource::CtrlPort_hiPen, YACS::HMI::Resource::CtrlPort_pen, YACS::HMI::Resource::CtrlPort_Width, and setText().

◆ ~SceneCtrlPortItem()

SceneCtrlPortItem::~SceneCtrlPortItem ( )
virtual

Definition at line 62 of file SceneCtrlPortItem.cxx.

63{
64}

Member Function Documentation

◆ getMimeFormat()

QString SceneCtrlPortItem::getMimeFormat ( )
protectedvirtual

Reimplemented in YACS::HMI::SceneCtrlOutPortItem.

Definition at line 106 of file SceneCtrlPortItem.cxx.

107{
108 return "yacs/subjectGate";
109}

Referenced by mouseMoveEvent().

◆ getParentNode()

SceneNodeItem * SceneCtrlPortItem::getParentNode ( )
virtual

◆ getSubjectNode()

SubjectNode * SceneCtrlPortItem::getSubjectNode ( )

Definition at line 99 of file SceneCtrlPortItem.cxx.

100{
101 SceneNodeItem* nodeItem = getParentNode();
102 if (!nodeItem) return 0;
103 return dynamic_cast<SubjectNode*>(nodeItem->getSubject());
104}
virtual SceneNodeItem * getParentNode()

References getParentNode(), and YACS::HMI::SceneObserverItem::getSubject().

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ mouseMoveEvent()

void SceneCtrlPortItem::mouseMoveEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

creation of mime data if drag detected. setData mime type must be coherent with SchemaModel::mimeTypes to allow drop on port item in tree view

Definition at line 132 of file SceneCtrlPortItem.cxx.

133{
134 if (_draging)
135 {
136 //DEBTRACE("_draging");
137 if (QLineF(event->screenPos(),
138 event->buttonDownScreenPos(_dragButton)).length()
139 < QApplication::startDragDistance())
140 {
141 return;
142 }
143 DEBTRACE("in drag");
144 QDrag *drag = new QDrag(event->widget());
145 ItemMimeData *mime = new ItemMimeData;
146 drag->setMimeData(mime);
147 mime->setSubject(getSubjectNode());
148 mime->setData(getMimeFormat(), "_subject");
149
150 QPixmap pixmap(34, 34);
151 pixmap.fill(Qt::white);
152
153 QPainter painter(&pixmap);
154 painter.translate(15, 15);
155 painter.setRenderHint(QPainter::Antialiasing);
156 paint(&painter, 0, 0);
157 painter.end();
158
159 pixmap.setMask(pixmap.createHeuristicMask());
160
161 drag->setPixmap(pixmap);
162 drag->setHotSpot(QPoint(15, 20));
163
164 drag->exec();
165 setCursor(Qt::ArrowCursor);
166 _draging = false;
167 _dragModifier= false;
168 }
169}
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31
enum Qt::MouseButton _dragButton
Definition: SceneItem.hxx:111
virtual void setSubject(Subject *sub)
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)

References YACS::HMI::AbstractSceneItem::_dragButton, _draging, _dragModifier, DEBTRACE, getMimeFormat(), getSubjectNode(), paint(), and YACS::HMI::ItemMimeData::setSubject().

◆ mousePressEvent()

void SceneCtrlPortItem::mousePressEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Reimplemented from YACS::HMI::SceneItem.

Definition at line 111 of file SceneCtrlPortItem.cxx.

112{
113 DEBTRACE("SceneCtrlPortItem::mousePressEvent " << _label.toStdString()
114 << " " << acceptedMouseButtons ());
115 if (!_scene->isZooming())
116 {
117 getSubjectNode()->select(true);
118 if (_dragable && (event->button() == _dragButton) && QtGuiContext::getQtCurrent()->isEdition())
119 {
120 setCursor(Qt::ClosedHandCursor);
121 _draging = true;
122 _dragModifier= event->modifiers() & Qt::ControlModifier;
123 }
124 }
125}
YACS::HMI::Scene * _scene
Definition: SceneItem.hxx:98
static QtGuiContext * getQtCurrent()
bool isZooming()
Definition: Scene.cxx:64
virtual void select(bool isSelected)

References YACS::HMI::AbstractSceneItem::_dragable, YACS::HMI::AbstractSceneItem::_dragButton, _draging, _dragModifier, YACS::HMI::AbstractSceneItem::_label, YACS::HMI::AbstractSceneItem::_scene, DEBTRACE, YACS::HMI::QtGuiContext::getQtCurrent(), getSubjectNode(), YACS::HMI::QtGuiContext::isEdition(), YACS::HMI::Scene::isZooming(), and YACS::HMI::Subject::select().

◆ mouseReleaseEvent()

void SceneCtrlPortItem::mouseReleaseEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Definition at line 171 of file SceneCtrlPortItem.cxx.

172{
173 if (_draging)
174 {
175 setCursor(Qt::ArrowCursor);
176 }
177 _draging = false;
178 _dragModifier= false;
179}

References _draging, and _dragModifier.

◆ paint()

void SceneCtrlPortItem::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  option,
QWidget widget 
)
virtual

Reimplemented from YACS::HMI::SceneItem.

Definition at line 66 of file SceneCtrlPortItem.cxx.

69{
70 //DEBTRACE("ScenePortItem::paint");
71 painter->save();
72
73 QPen pen(getPenColor());
74 pen.setWidth(Resource::Thickness);
75 painter->setPen(pen);
77 painter->setBrush(hd->getValidColor());
79
80 painter->restore();
81}
static int Thickness
Definition: Resource.hxx:308
static int Radius
Definition: Resource.hxx:320
virtual QColor getPenColor()

References YACS::HMI::AbstractSceneItem::_parent, YACS::HMI::Resource::CtrlPort_Height, YACS::HMI::Resource::CtrlPort_Width, YACS::HMI::SceneItem::getPenColor(), YACS::HMI::SceneHeaderNodeItem::getValidColor(), YACS::HMI::Resource::Radius, and YACS::HMI::Resource::Thickness.

Referenced by mouseMoveEvent().

◆ setText()

void SceneCtrlPortItem::setText ( QString  label)
virtual

Implements YACS::HMI::ScenePortItem.

Definition at line 83 of file SceneCtrlPortItem.cxx.

84{
85 if (!_text)
87 this,
88 label, true );
89}

References YACS::HMI::AbstractSceneItem::_scene, and YACS::HMI::ScenePortItem::_text.

Referenced by SceneCtrlPortItem().

Member Data Documentation

◆ _draging

bool YACS::HMI::SceneCtrlPortItem::_draging
protected

Definition at line 51 of file SceneCtrlPortItem.hxx.

Referenced by mouseMoveEvent(), mousePressEvent(), and mouseReleaseEvent().

◆ _dragModifier

bool YACS::HMI::SceneCtrlPortItem::_dragModifier
protected

Definition at line 52 of file SceneCtrlPortItem.hxx.

Referenced by mouseMoveEvent(), mousePressEvent(), and mouseReleaseEvent().


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