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(); }
bool Dip::changePinLabels(bool singleRow, bool sip) { if (m_viewID != ViewLayer::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); } QString chipLabel = modelPart()->localProp("chip label").toString(); if (!chipLabel.isEmpty()) { svg =TextUtils::replaceTextElement(svg, "label", chipLabel); } QTransform transform = untransform(); resetLayerKin(svg); resetConnectors(); retransform(transform); return true; }
void Perfboard::setProp(const QString & prop, const QString & value) { if (prop.compare("size") != 0) { Capacitor::setProp(prop, value); return; } switch (this->m_viewID) { case ViewLayer::BreadboardView: if (value.compare(m_size) != 0) { QString temp = value; QString svg = makeBreadboardSvg(temp); reloadRenderer(svg, false); //DebugDialog::debug(svg); } break; default: break; } m_size = value; modelPart()->setLocalProp("size", value); if (m_partLabel) m_partLabel->displayTextsIf(); }
void Perfboard::changeBoardSize() { QString newSize = QString("%1.%2").arg(m_xEdit->text()).arg(m_yEdit->text()); m_propsMap.insert("size", newSize); InfoGraphicsView * infoGraphicsView = InfoGraphicsView::getInfoGraphicsView(this); if (infoGraphicsView != NULL) { infoGraphicsView->swap(modelPart()->properties().value("family"), "size", m_propsMap, this); } }
void Hole::setHoleSize(QString newSize, bool force) { //DebugDialog::debug(QString("old holesize %1").arg(viewID()) + holeSize(), sceneBoundingRect()); //foreach (QGraphicsItem * childItem, childItems()) { // DebugDialog::debug(QString(" child"), childItem->sceneBoundingRect()); //} if (PaletteItem::setHoleSize(newSize, force, m_holeSettings)) { setBoth(m_holeSettings.holeDiameter, m_holeSettings.ringThickness); modelPart()->setLocalProp("hole size", newSize); if (m_partLabel) m_partLabel->displayTextsIf(); } //DebugDialog::debug(QString("new holesize %1 ").arg(viewID()) + holeSize(), sceneBoundingRect()); //foreach (QGraphicsItem * childItem, childItems()) { // DebugDialog::debug(QString(" child"), childItem->sceneBoundingRect()); //} }
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)); }
QStringList Dip::collectValues(const QString & family, const QString & prop, QString & value) { if (prop.compare("pins", Qt::CaseInsensitive) == 0) { QStringList values; value = modelPart()->properties().value("pins"); if (isDIP()) { for (int i = MinDipPins; i <= MaxDipPins; i += 2) { values << QString::number(i); } } else { for (int i = MinSipPins; i <= MaxSipPins; i++) { values << QString::number(i); } } return values; } return MysteryPart::collectValues(family, prop, value); }
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(); }
QStringList Board::collectValues(const QString & family, const QString & prop, QString & value) { if (prop.compare("layers", Qt::CaseInsensitive) == 0) { QString realValue = modelPart()->localProp("layers").toString(); if (!realValue.isEmpty()) { value = realValue; } QStringList result; if (OneLayerTranslated.isEmpty()) { OneLayerTranslated = tr("one layer (single-sided)"); } if (TwoLayersTranslated.isEmpty()) { TwoLayersTranslated = tr("two layers (double-sided)"); } result.append(OneLayerTranslated); result.append(TwoLayersTranslated); if (value == "1") { value = OneLayerTranslated; } else if (value == "2") { value = TwoLayersTranslated; } return result; } QStringList result = PaletteItem::collectValues(family, prop, value); if (prop.compare("shape", Qt::CaseInsensitive) == 0 && isBoard(this) && !this->moduleID().contains(ModuleIDNames::BoardLogoImageModuleIDName)) { result.removeAll("Custom Shape"); } return result; }
bool Dip::otherPropsChange(const QMap<QString, QString> & propsMap) { QString layout = modelPart()->properties().value("package", ""); return (layout.compare(propsMap.value("package", "")) != 0); }
bool Dip::isDIP() { QString package = modelPart()->properties().value("package", ""); if (package.indexOf("dip", 0, Qt::CaseInsensitive) >= 0) return true; if (package.indexOf("sip", 0, Qt::CaseInsensitive) >= 0) return false; return family().contains("generic ic", Qt::CaseInsensitive); }
bool Dip::isDIP() { QString package = modelPart()->properties().value("package", ""); return (package.indexOf("DIP", 0, Qt::CaseInsensitive) >= 0); }