void BI_StrokeText::removeFromBoard() { if (!isAddedToBoard()) { throw LogicError(__FILE__, __LINE__); } BI_Base::removeFromBoard(mGraphicsItem.data()); mBoard.getGraphicsScene().removeItem(*mAnchorGraphicsItem); }
void BI_Via::unregisterNetPoint(BI_NetPoint& netpoint) throw (Exception) { if ((!isAddedToBoard()) || (getNetPointOfLayer(netpoint.getLayer().getId()) != &netpoint)) { throw LogicError(__FILE__, __LINE__); } mRegisteredNetPoints.remove(netpoint.getLayer().getId()); netpoint.updateLines(); mGraphicsItem->updateCacheAndRepaint(); }
void BI_Via::removeFromBoard(GraphicsScene& scene) throw (Exception) { if ((!isAddedToBoard()) || isUsed()) { throw LogicError(__FILE__, __LINE__); } if (mNetSignal) { mNetSignal->unregisterBoardVia(*this); // can throw } BI_Base::removeFromBoard(scene, *mGraphicsItem); }
void BI_Via::registerNetPoint(BI_NetPoint& netpoint) throw (Exception) { if ((!isAddedToBoard()) || (mRegisteredNetPoints.contains(netpoint.getLayer().getId())) || (netpoint.getBoard() != mBoard) || (&netpoint.getNetSignal() != mNetSignal)) { throw LogicError(__FILE__, __LINE__); } mRegisteredNetPoints.insert(netpoint.getLayer().getId(), &netpoint); netpoint.updateLines(); mGraphicsItem->updateCacheAndRepaint(); }
void BI_Via::setNetSignal(NetSignal* netsignal) throw (Exception) { if (netsignal == mNetSignal) { return; } if ((isUsed()) || (netsignal && (netsignal->getCircuit() != getCircuit()))) { throw LogicError(__FILE__, __LINE__); } if (isAddedToBoard()) { ScopeGuardList sgl; if (mNetSignal) { mNetSignal->unregisterBoardVia(*this); // can throw sgl.add([&](){mNetSignal->registerBoardVia(*this);}); } if (netsignal) { netsignal->registerBoardVia(*this); // can throw sgl.add([&](){netsignal->unregisterBoardVia(*this);}); } sgl.dismiss(); } mNetSignal = netsignal; mGraphicsItem->updateCacheAndRepaint(); }