int _orientation,
ConnectedInterface *_refInter,
AbstractBoxItem* _owner,
- Parameters* _params){
+ Parameters* _params) {
positionRatio = _position;
orientation = _orientation;
refInter = _refInter;
painter->setPen(QPen(Qt::red,2));
}
else {
- painter->setPen(QPen(Qt::black,1));
+ if(owner->isBoxItem()) {
+ painter->setPen(QPen(Qt::black,1));
+ }
+ else if(owner->isSourceItem()) {
+ painter->setPen(QPen(Qt::darkCyan,1));
+ }
}
painter->translate(originPoint);
painter->drawPath(params->outArrow);
}
+ // paint modifier box if needed
+
+ if (refInter->getInputModifier() != NULL) {
+ painter->save();
+ painter->translate(params->arrowWidth+params->arrowLineLength,0);
+ painter->drawRect(0,-5,10,10);
+ painter->restore();
+ }
+
+
// draw names
+ if(selected) {
+ painter->setPen(QPen(Qt::red,2));
+ }
+ else {
+ painter->setPen(QPen(Qt::black,1));
+ }
// reset to normal if at west
if(orientation == Parameters::West){
if(owner->isGroupItem()){
painter->drawText(-(w+params->arrowWidth+params->arrowLineLength),-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
}
- else if(owner->isBoxItem()){
+ else if((owner->isBoxItem()) || (owner->isSourceItem())){
painter->drawText(0,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
}
}
if(owner->isGroupItem()) {
painter->drawText(params->arrowWidth+params->arrowLineLength,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
}
- else if(owner->isBoxItem()) {
+ else if((owner->isBoxItem()) || (owner->isSourceItem())){
painter->drawText(-w,-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
}
- }
+ }
+
+
painter->restore();
}
}
-QPointF InterfaceItem::getEndPointInGroup() {
- QPointF p;
+QPointF InterfaceItem::getStartPosition() {
+ QPointF p = originPoint;
+ QPointF ownerPos = owner->scenePos();
+ p += ownerPos;
+ return p;
+}
- if (owner->isGroupItem()) {
- p = originPoint;
- }
- else {
- double x = owner->x() + originPoint.x();
- double y = owner->y() + originPoint.y();
- switch(orientation){
- case Parameters::East:
- x += params->arrowWidth+params->arrowLineLength;
- break;
- case Parameters::North:
- y -= params->arrowWidth+params->arrowLineLength;
- break;
- case Parameters::West:
- x -= params->arrowWidth+params->arrowLineLength;
- break;
- case Parameters::South:
- y += params->arrowWidth+params->arrowLineLength;
- break;
- }
- p = QPointF(x,y);
+QPointF InterfaceItem::getEndPosition() {
+ QPointF p = getStartPosition();
+
+ switch(orientation){
+ case Parameters::East:
+ p.setX(p.x()+params->arrowWidth+params->arrowLineLength);
+ break;
+ case Parameters::North:
+ p.setY(p.y() - params->arrowWidth-params->arrowLineLength);
+ break;
+ case Parameters::West:
+ p.setX(p.x() - params->arrowWidth-params->arrowLineLength);
+ break;
+ case Parameters::South:
+ p.setY(p.y() + params->arrowWidth+params->arrowLineLength);
+ break;
}
-
- //cout << "iface end point in group item: " << p.x() << "," << p.y() << endl;
return p;
}
}
void InterfaceItem::removeConnectionItem(ConnectionItem* item) {
- connections.removeOne(item);
+ connections.removeAll(item);
}
QDataStream &operator <<(QDataStream &out, InterfaceItem *i) {