Beispiel #1
0
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 SchematicTextLayerKinPaletteItem::transformItem(const QTransform & currTransf, bool includeRatsnest) {
    Q_UNUSED(currTransf);
    Q_UNUSED(includeRatsnest);

    if (m_textThings.count() == 0) {
        initTextThings();
    }

    double rotation;
    QTransform chiefTransform = layerKinChief()->transform();      // assume chief already has rotation
    bool isFlipped = GraphicsUtils::isFlipped(chiefTransform.toAffine(), rotation);
    QString svg;
    if (isFlipped) {
        svg = makeFlipTextSvg();
    }

    if (svg.isEmpty()) {
        svg = this->property("textSvg").toByteArray();
    }

    if (rotation >= 135 && rotation <= 225) {
        svg = vflip(svg, isFlipped);
    }

    reloadRenderer(svg, true);

    QPointF p = layerKinChief()->sceneBoundingRect().topLeft();
    QTransform transform;
    QRectF bounds = boundingRect();
    transform.translate(bounds.width() / 2, bounds.height() / 2);
    transform.rotate(rotation);
    transform.translate(bounds.width() / -2, bounds.height() / -2);
    this->setTransform(transform);

    //QMatrix m1 = chiefTransform.toAffine();
    //layerKinChief()->debugInfo("chief " + TextUtils::svgMatrix(m1));

    //m1 = transform.toAffine();
    //debugInfo("\t " + TextUtils::svgMatrix(m1));
}