void Resistor::setResistance(QString resistance, QString pinSpacing, bool force) { QString tolerance = prop("tolerance"); if (resistance.endsWith(OhmSymbol)) { resistance.chop(1); } switch (this->m_viewIdentifier) { case ViewIdentifierClass::BreadboardView: if (force || resistance.compare(m_ohms) != 0) { QString svg = makeSvg(resistance, m_viewLayerID); //DebugDialog::debug(svg); loadExtraRenderer(svg.toUtf8()); } break; case ViewIdentifierClass::PCBView: if (force || pinSpacing.compare(m_pinSpacing) != 0) { InfoGraphicsView * infoGraphicsView = InfoGraphicsView::getInfoGraphicsView(this); if (infoGraphicsView == NULL) break; if (moduleID().compare(ModuleIDNames::ResistorModuleIDName) != 0) break; QDomElement element = LayerAttributes::getSvgElementLayers(modelPart()->domDocument(), m_viewIdentifier); if (element.isNull()) break; // hack the dom element and call setUpImage FSvgRenderer::removeFromHash(moduleID(), ""); QString filename = PinSpacings.value(pinSpacing, ""); if (filename.isEmpty()) break; element.setAttribute("image", filename); m_changingPinSpacing = true; resetImage(infoGraphicsView); m_changingPinSpacing = false; updateConnections(); } break; default: break; } m_ohms = resistance; m_pinSpacing = pinSpacing; modelPart()->setProp("resistance", resistance); modelPart()->setProp("pin spacing", pinSpacing); modelPart()->setProp("tolerance", tolerance); updateResistances(m_ohms); if (m_partLabel) m_partLabel->displayTextsIf(); }
void Ruler::resizeMM(double magnitude, double unitsFlag, const LayerHash & viewLayers) { // note this really isn't resizeMM but resizeUnits Q_UNUSED(viewLayers); double w = TextUtils::convertToInches(prop("width")); QString units((unitsFlag == IndexCm) ? "cm" : "in"); double newW = TextUtils::convertToInches(QString::number(magnitude) + units); if (w == newW) return; QString s = makeSvg(newW); bool result = loadExtraRenderer(s.toUtf8(), false); if (result) { modelPart()->setProp("width", QVariant(QString::number(magnitude) + units)); } // DebugDialog::debug(QString("fast load result %1 %2").arg(result).arg(s)); }
bool Dip::changePinLabels(bool singleRow, bool sip) { if (m_viewIdentifier != ViewIdentifierClass::SchematicView) return true; bool hasLocal = false; QStringList labels = getPinLabels(hasLocal); if (labels.count() == 0) return true; QString svg; if (singleRow) { svg = MysteryPart::makeSchematicSvg(labels, sip); } else { svg = Dip::makeSchematicSvg(labels); } loadExtraRenderer(svg); return true; }
void Perfboard::setProp(const QString & prop, const QString & value) { if (prop.compare("size") != 0) { Capacitor::setProp(prop, value); return; } switch (this->m_viewIdentifier) { case ViewIdentifierClass::BreadboardView: if (value.compare(m_size) != 0) { QString svg = makeBreadboardSvg(value); loadExtraRenderer(svg); //DebugDialog::debug(svg); } break; default: break; } m_size = value; modelPart()->setProp("size", value); if (m_partLabel) m_partLabel->displayTextsIf(); }