Example #1
0
void PortHandler::connectTemporaryRemovedLinksToPort(const IdList &temporaryRemovedLinks, const QString &direction)
{
	for (const Id &edgeId : temporaryRemovedLinks) {
		EdgeElement *edge = dynamic_cast<EdgeElement *>(
				static_cast<EditorViewScene *>(mNode->scene())->getElem(edgeId)
				);

		if (edge == nullptr) {
			continue;
		}

		if (direction == "from") {
			const QPointF startPos = edge->mapFromItem(mNode
					, nearestPort(edge->mapToScene(edge->line().first()), edge->fromPortTypes()));
			edge->placeStartTo(startPos);
		} else {
			const QPointF endPos = edge->mapFromItem(mNode
					, nearestPort(edge->mapToScene(edge->line().last()), edge->toPortTypes()));
			edge->placeEndTo(endPos);
		}

		edge->connectToPort();
	}
}