SI_SymbolPin::SI_SymbolPin(SI_Symbol& symbol, const Uuid& pinUuid) : SI_Base(), mCircuit(symbol.getSchematic().getProject().getCircuit()), mSymbol(symbol), mSymbolPin(nullptr), mComponentSignal(nullptr), mPinSignalMapItem(nullptr), mComponentSignalInstance(nullptr), mAddedToSchematic(false), mRegisteredNetPoint(nullptr), mGraphicsItem(nullptr) { // read attributes mSymbolPin = mSymbol.getLibSymbol().getPinByUuid(pinUuid); if (!mSymbolPin) { throw RuntimeError(__FILE__, __LINE__, pinUuid.toStr(), QString(tr("Invalid symbol pin UUID: \"%1\"")).arg(pinUuid.toStr())); } mPinSignalMapItem = mSymbol.getCompSymbVarItem().getPinSignalMapItemOfPin(pinUuid); if (!mPinSignalMapItem) { throw RuntimeError(__FILE__, __LINE__, QString(), QString(tr("Pin \"%1\" not found in pin-signal-map of symbol instance \"%2\".")) .arg(pinUuid.toStr(), symbol.getUuid().toStr())); } Uuid cmpSignalUuid = mPinSignalMapItem->getSignalUuid(); mComponentSignalInstance = mSymbol.getComponentInstance().getSignalInstance(cmpSignalUuid); mComponentSignal = mSymbol.getComponentInstance().getLibComponent().getSignalByUuid(cmpSignalUuid); mGraphicsItem = new SGI_SymbolPin(*this); updatePosition(); // create ERC messages mErcMsgUnconnectedRequiredPin.reset(new ErcMsg(mCircuit.getProject(), *this, QString("%1/%2").arg(mSymbol.getUuid().toStr()).arg(mSymbolPin->getUuid().toStr()), "UnconnectedRequiredPin", ErcMsg::ErcMsgType_t::SchematicError)); updateErcMessages(); }
SGI_Symbol::SGI_Symbol(SI_Symbol& symbol) noexcept : SGI_Base(), mSymbol(symbol), mLibSymbol(symbol.getLibSymbol()) { setZValue(Schematic::ZValue_Symbols); mFont = qApp->getDefaultSansSerifFont(); updateCacheAndRepaint(); }
SGI_Symbol::SGI_Symbol(SI_Symbol& symbol) noexcept : SGI_Base(), mSymbol(symbol), mLibSymbol(symbol.getLibSymbol()) { setZValue(Schematic::ZValue_Symbols); mFont.setStyleStrategy(QFont::StyleStrategy(QFont::OpenGLCompatible | QFont::PreferQuality)); mFont.setStyleHint(QFont::SansSerif); mFont.setFamily("Nimbus Sans L"); updateCacheAndRepaint(); }
CmdSymbolInstanceAdd::CmdSymbolInstanceAdd(SI_Symbol& symbol, UndoCommand* parent) throw (Exception) : UndoCommand(tr("Add symbol instance"), parent), mSchematic(symbol.getSchematic()), mSymbol(&symbol) { }
CmdSymbolInstanceEdit::CmdSymbolInstanceEdit(SI_Symbol& symbol) noexcept : UndoCommand(tr("Edit symbol instance")), mSymbol(symbol), mOldPos(symbol.getPosition()), mNewPos(mOldPos), mOldRotation(symbol.getRotation()), mNewRotation(mOldRotation) { }