Exemplo n.º 1
0
void BI_StrokeText::removeFromBoard() {
  if (!isAddedToBoard()) {
    throw LogicError(__FILE__, __LINE__);
  }
  BI_Base::removeFromBoard(mGraphicsItem.data());
  mBoard.getGraphicsScene().removeItem(*mAnchorGraphicsItem);
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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();
}
Exemplo n.º 5
0
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();
}