20 portAvailable =
false;
25 this->parent = parent;
28 QFontMetrics fontMetric(
font);
29#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
30 int textWidth = fontMetric.horizontalAdvance(
itemName);
32 int textWidth = fontMetric.width(
itemName);
35 prepareGeometryChange();
42 setFlag(ItemIsMovable,!isInApp);
43 setFlag(ItemIsSelectable,
true);
44 setFlag(ItemSendsGeometryChanges,!isInApp);
47 auto* effect =
new QGraphicsDropShadowEffect();
48 effect->setColor(QColor(80,80,80,80));
49 effect->setBlurRadius(5);
50 setGraphicsEffect(effect);
56 lineEditWidget =
new QGraphicsProxyWidget(
this);
57 auto* lineEdit =
new QLineEdit();
59 QObject::connect(lineEdit,
SIGNAL(returnPressed()),
signalHandler(),SLOT(onEditingFinished()));
61 lineEditWidget->setWidget(lineEdit);
63 lineEditWidget->setVisible(
true);
65 lineEditWidget->setVisible(
false);
67 QRectF geo = lineEditWidget->geometry();
68 geo.setWidth(textWidth);
69 lineEditWidget->setGeometry(geo);
70 lineEditWidget->setPos(-textWidth/2,-lineEditWidget->geometry().height()/2);
92 QBrush availableBrush;
94 availableBrush = QBrush(QColor(
"#BF0303"));
96 availableBrush = QBrush(QColor(
"#00E400"));
101 painter->setPen(QPen(availableBrush,
BORDERWIDTH,Qt::DashLine));
111 painter->setBrush(QBrush(QColor(220,220,220)));
113 painter->setBrush(QBrush(QColor(245,245,245)));
115 painter->drawPath(path);
118 if(!lineEditWidget->isVisible()){
119 painter->setPen(QPen(QBrush(QColor(Qt::black)),1));
123 painter->setPen(QPen(QBrush(QColor(Qt::black)),1));
138 QString text = ((QLineEdit*)lineEditWidget->widget())->text();
140 for (
int i=0;i<scene()->items().count();i++){
141 QGraphicsItem *it = scene()->items().at(i);
144 ((QLineEdit*)lineEditWidget->widget())->setStyleSheet(
"QLineEdit { background-color: red;}");
145 ((QLineEdit*)lineEditWidget->widget())->setToolTip(tr(
"Duplicate Entry"));
155 ((QLineEdit*)lineEditWidget->widget())->setStyleSheet(
"QLineEdit { background-color: white;}");
156 ((QLineEdit*)lineEditWidget->widget())->setToolTip(
"");
159 lineEditWidget->setVisible(
false);
161 QFontMetrics fontMetric(
font);
162#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
163 int textWidth = fontMetric.horizontalAdvance(
itemName);
165 int textWidth = fontMetric.width(
itemName);
168 prepareGeometryChange();
173 QRectF geo = lineEditWidget->geometry();
174 geo.setWidth(textWidth);
175 lineEditWidget->setGeometry(geo);
176 lineEditWidget->setPos(-textWidth/2,-lineEditWidget->geometry().height()/2);
180 updateConnectionsTo(this->
itemName);