19 portAvailable =
false;
26 this->parent = parent;
29 QFontMetrics fontMetric(
font);
30#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
31 int textWidth = fontMetric.horizontalAdvance(
itemName);
33 int textWidth = fontMetric.width(
itemName);
36 prepareGeometryChange();
41 setFlag(ItemIsMovable,!isInApp);
42 setFlag(ItemIsSelectable,
true);
43 setFlag(ItemSendsGeometryChanges,
true);
46 auto* effect =
new QGraphicsDropShadowEffect();
47 effect->setColor(QColor(80,80,80,80));
48 effect->setBlurRadius(5);
49 setGraphicsEffect(effect);
55 lineEditWidget =
new QGraphicsProxyWidget(
this);
56 auto* lineEdit =
new QLineEdit();
58 QObject::connect(lineEdit,
SIGNAL(returnPressed()),
signalHandler(),SLOT(onEditingFinished()));
60 lineEditWidget->setWidget(lineEdit);
62 lineEditWidget->setVisible(
true);
64 lineEditWidget->setVisible(
false);
66 QRectF geo = lineEditWidget->geometry();
67 geo.setWidth(textWidth);
68 lineEditWidget->setGeometry(geo);
69 lineEditWidget->setPos(-textWidth/2,-lineEditWidget->geometry().height()/2);
94 QBrush availableBrush;
96 availableBrush = QBrush(QColor(
"#BF0303"));
98 availableBrush = QBrush(QColor(
"#00E400"));
103 painter->setPen(QPen(availableBrush,
BORDERWIDTH,Qt::DashLine));
115 painter->setBrush(QBrush(QColor(220,220,220)));
117 painter->setBrush(QBrush(QColor(245,245,245)));
119 painter->drawPath(path);
122 if(!lineEditWidget->isVisible()){
123 painter->setPen(QPen(QBrush(QColor(Qt::black)),1));
128 painter->setPen(QPen(QBrush(QColor(Qt::black)),1));
142 QString text = ((QLineEdit*)lineEditWidget->widget())->text();
144 for (
int i=0;i<scene()->items().count();i++){
145 QGraphicsItem *it = scene()->items().at(i);
148 ((QLineEdit*)lineEditWidget->widget())->setStyleSheet(
"QLineEdit { background-color: red;}");
149 ((QLineEdit*)lineEditWidget->widget())->setToolTip(tr(
"Duplicate Entry"));
159 ((QLineEdit*)lineEditWidget->widget())->setStyleSheet(
"QLineEdit {background-color: white;}");
160 ((QLineEdit*)lineEditWidget->widget())->setToolTip(
"");
163 lineEditWidget->setVisible(
false);
165 QFontMetrics fontMetric(
font);
166#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
167 int textWidth = fontMetric.horizontalAdvance(
itemName);
169 int textWidth = fontMetric.width(
itemName);
172 prepareGeometryChange();
177 QRectF geo = lineEditWidget->geometry();
178 geo.setWidth(textWidth);
179 lineEditWidget->setGeometry(geo);
180 lineEditWidget->setPos(-textWidth/2,-lineEditWidget->geometry().height()/2);
185 updateConnectionsFrom(this->
itemName);