ItemBase * Hole::setBothSvg(const QString & holeDiameter, const QString & ringThickness) { QString svg = makeSvg(holeDiameter, ringThickness, m_viewLayerID, true); resetRenderer(svg); //DebugDialog::debug("both"); //DebugDialog::debug(svg); QString setColor; QStringList noIDs; QString osvg; ItemBase * otherLayer = NULL; foreach (ItemBase * layerKin, m_layerKin) { if (layerKin->hasNonConnectors()) { otherLayer = layerKin; break; } } if (otherLayer) { osvg = makeSvg(holeDiameter, ringThickness, otherLayer->viewLayerID(), true); //DebugDialog::debug(osvg); otherLayer->resetRenderer(osvg); } //DebugDialog::debug("other"); return otherLayer; }
QString Ruler::retrieveSvg(ViewLayer::ViewLayerID viewLayerID, QHash<QString, QString> & svgHash, bool blackOnly, double dpi) { double w = TextUtils::convertToInches(m_modelPart->prop("width").toString()); if (w != 0) { QString xml; switch (viewLayerID) { case ViewLayer::BreadboardRuler: case ViewLayer::SchematicRuler: case ViewLayer::PcbRuler: xml = makeSvg(w); break; default: break; } if (!xml.isEmpty()) { QString xmlName = ViewLayer::viewLayerXmlNameFromID(viewLayerID); SvgFileSplitter splitter; bool result = splitter.splitString(xml, xmlName); if (!result) { return ""; } result = splitter.normalize(dpi, xmlName, blackOnly); if (!result) { return ""; } return splitter.elementString(xmlName); } } return PaletteItemBase::retrieveSvg(viewLayerID, svgHash, blackOnly, dpi); }
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 = resetRenderer(s); if (result) { modelPart()->setLocalProp("width", QVariant(QString::number(magnitude) + units)); } // DebugDialog::debug(QString("fast load result %1 %2").arg(result).arg(s)); }
QString Ruler::retrieveSvg(ViewLayer::ViewLayerID viewLayerID, QHash<QString, QString> & svgHash, bool blackOnly, double dpi) { double w = TextUtils::convertToInches(m_modelPart->localProp("width").toString()); if (w != 0) { QString xml; switch (viewLayerID) { case ViewLayer::BreadboardRuler: case ViewLayer::SchematicRuler: case ViewLayer::PcbRuler: xml = makeSvg(w); break; default: break; } if (!xml.isEmpty()) { return PaletteItemBase::normalizeSvg(xml, viewLayerID, blackOnly, dpi); } } return PaletteItemBase::retrieveSvg(viewLayerID, svgHash, blackOnly, dpi); }
QString Resistor::retrieveSvg(ViewLayer::ViewLayerID viewLayerID, QHash<QString, QString> & svgHash, bool blackOnly, double dpi) { switch (viewLayerID) { case ViewLayer::Breadboard: case ViewLayer::Icon: break; default: return Capacitor::retrieveSvg(viewLayerID, svgHash, blackOnly, dpi); } QString svg = makeSvg(m_ohms, viewLayerID); QString xmlName = ViewLayer::viewLayerXmlNameFromID(viewLayerID); SvgFileSplitter splitter; bool result = splitter.splitString(svg, xmlName); if (!result) { return ""; } result = splitter.normalize(dpi, xmlName, blackOnly); if (!result) { return ""; } return splitter.elementString(xmlName); }